PREME/G/MU807011
052109448739866714455964832931560631767750073673092423622183434131996284067808788574718062566601823694387821773476567898663628239880806626890347367383883040477564376477958221035263666363837102923599647436444604218893025385198853196216235711519239250918927090758914520294369358288844631036658490762787255139431179432378427900329107700169390879565019841921609875784899667665476238862434530536833175247802720109483026525018663431677811022447610267532781351579602631409200880310357122929336317610950347789214391630992109498501330877033226359464097213877153826427468164959857734867418207492896712426485560351062517446620995740876038793789097588723133685031719266236874480486841852243206456293446286544515897577352533401712890580104725310775577767887497523377861348385446927667474405477311541017486218692026496316950251111091375488175193168761325723389662818597595014306392869496825195452435636781821281129567427523619349604338309545625768896876189799444762399417683785334522206050824633079748982209282961346815446884974335438805225971525190457708836242319421198020521744320465465076519520201164910974689166984452697171426001216952605409792713397025896985256580169746327219597738317383979625221369270403502344743990335834226748901391937752318640922189428247860119918414084481179573662950537481792151441519133825135474187690674312323191961428216433299878456925444436852514625256105360951738224096979133828125959180707133045120667722137934148415267238399460266388113309529612095550018602297148937002559910954263129894141613503340479201334507815103985530318105628355760457560172455098200277242585977127148571140422701458104947879175778036254461693398136853486517280648055952821309549020992869757897901155287590645902729921039396969005108864953282190385371597241730419276996855921217058656839899702686206229911882117366901946945793046591798039283937296396307294727928611341859125373328861570394597110245977506536778321329998012340619489218676994626508998269942935294365572637836821292596253498131608252063425547334188970321872461190944941690766650896877056544193305523028539706220290423843302325764521608716542180782383664611956175099410637425852206469791134094461275264502000261099999120921921293455582778575011471678863432396215092028001580361852289894127466739849892890995087195705352021003533300175881199347151726190933538146224435501027749613443863077140735402335844348499853265933754218036380758144033652572697057494633538693783954111460921807924776381861618459379088052915407059616723015764674330683115310690923725023053170747924962137111750336900733674815846146976822966433817232727395270548529826201190683624164248156665139652882269221884700344485382357331441882879161643339676529992268280342550166135060390513722441413390828806291435566266534908610590090966323223310577345023406190728737591520600130361367460691062518990981396778582521492425417304730051065947036989493727833388638824115851188435704764214894225616522677582841077309152964149957201503862048907484599075867238772635680638676917447404428035677980870968755136609523948959408676740129613396097481395162750406010435275539913798720259557676383357947660912035857142426667377986542144904747563426865364356209005671309027746599868140947691707008764497634100390297618966915186301623458000751011742226736327355295966655671976714500120535869782830925828247684755637079876910188659350985805972047175168601507963091752055812893360754797403348235624339873779216469495740475805443811180829220681807796444383791816107939541972474604749885182851696390176001369491070865374241618807048643459433802871622608086982699792041175924669937693463402294800694999316894374639972200102346875282341853785712598743312882892438839992602760528930175439735498718799031789973410430132897917093577713050815892537092630514878024524626377381873634134528685983790772395268115704025848750043483691862452924019542358914589012599405585184623215626024649399461417139500648382115077896408987404190352861811771565620919422718032076092150217941849892042414741026680017635510567105941061640121928288054691034015833798240264473349266129792965205859980875467312091465807097163381852563723735394156317903408536226530088350258415196628990761255316179918234060732049600003190068113768922419436947752678859667407538871450988362525432392944855174425229059635147529308589908364149467613855314594507174260946403387518702651124303639102214293921582301778491398941104125860516674576621201766450416291729441427753931967217437450331466483680375463716920475105734924593193426919550301117429218941793111398779183736195044018654496530250869164750543413501164258464092063324598133278128335078664412928931386778885560647771282365220934118067323218755957121950465080188574741154816493675171753967852731019888485412604460344974751512170687987055791793768122668854529417857828239528714161230203270419526115812377617677418881020851756968639564464036038359915179091282475590240892235194925584740537736869992548686459441618141594554603497885341939626056684278549635090120025168639388822551581501748272988176321675303141647199931545078992646206745689592640300459200058832531001490951729272542291118495774513312403884786418119547753904260102013510309068672937944660203491550594347865492861091949225541108852215011911788105479937777090613598316846526255776125394161898365864129679819476242864742962267335176678723746228358557908830011382626447167359544378050980289087109501185166759369458723917327086286887610716781441707961731154880830329128859812923950486794082056044199698680682260935510298280620576968343542294441011240598284977114345007612935263060151648102968112943801231549854297694062972732055402005361527648763017786899449825689299049099689046415108523148031960281000459466520443636167482413710127796586503565352539614499288997754410678116020157657185677970983597103181789425179544250750902751538209491964931579348477923018828087298534306336197560807101481092785089027351826487448813286328296612277345100875426649983608333778231554412028310110687105672011315743535261208887793720581627361716355190383752003028811984164703603858462780642556418735744432115207982038733070020980546019261192461254752551505351289536354823713729517543004350518816140831105615909413034788789824623582442147591735893599661528586490164592676377526916301383752990471565397786876642884413381658494662151803733554990766694926945991247733416771059132682096248388011837882075560168506514592147785907806853137382928378253728262718463441246999438950692833769442271446696096945571825933075055353145689270377291575644325646857153486198513884323689183483668484447999987563956975735857581486200308708911888401486020275579443216571233778460019352733338056140688927818012297532638386735901145787662719893532357658772298895103877403125405495038195316361854185888303486842453266224232541250578647157988124886656889754368003078513882950082793824938387035585037662396543797142243435527803550427109048954610605912441404947975532101453458225537825816470257986534492814845234021099707348290246470739759591142882803628885850459195289105261680810540157388403426197956538771010532038224090473043370764354639863918493877080047266601271221267377163161699661237485284493480687186811014014435671352736832004326284693813165413402085480303277510309348979761991846031836667321691325375606503454668835447909021966044691340975973104707074261316544164370621040660141698219376737488299187361764944976343269558762299262130919294586162184749428345604657019424033985322131401682897112047918862975075426021014458766794153021666188141235222094121237226119009505158712883311470326147965426372175668513333045100269716527088118152610379627020488266899882892007584274543530152535917014166280714113010702185066428327716014489750050851739224753001213904867269632324219785670583130906145795898478551257079214971039626459035440429859306984369590406342813328649889402641005256563278371870259058029422177361643342427819278346998265384476156821611360390198394570416583069802813199381517660542569940633426561100651054424062797534470083647031121078769690867761042861909364640207469046853769920261249199931655073189379425144395724862455789187710458073252391890405820443456286430938074859394454954185708529320936232055592963002965615335652644297147476170422102702075352344768409823513812042663408334021362320179357074540349687314336148277916553827678287731391739056099138061558736605397662886265828164574100400890627560713801775867224662109412200606332644507232389279980991468764984123755203374068611706888528067784738752948360727059346677495388214536891523088799089187691347883583701047916180015100100304426731117754381074068417089685981388479218253974436200663240000942271252453754947271295224604628144080126234174323699762116755015108080972837655655310332578858754761758818163326081458733386539536213888451951851866636778845540933754880259406989697607765363985465239609358149360417046889095370119388297014436023595270202929040667101761640925893138252089532288537051741207085188228969699660103582450041108791193597870955460752959859327614609168745351998442244957966684494827239049653499702694584217425796438229889548139054319174573811870275676155347233400149517832380868719890508646938931416951953277518850981172615217907457052383179297694160932051213954480182292318744280220173672577296149540743943323132858952635184782618677203759543833532132431361174102251703184520228720422626269676039647976306911008443276193457719839682689308192191360755148493069042997194980940371353807625045701054833485514377736849586450605480052734899788738447780443631128930705771553627803518000360458198247305057078677653158660658104182191746823763545947654931812674322275925515359927947794340877143861972014034313361296223094702810882614712638513821254330323168819685596842733402494808004487669521128492168997767117976571047888816160720014263451195367574565423555899850905267329547392174633441410622791754181873034558819231921006896914605502862538574266330726349645581890589394226881087370844712891590775564957242609824750498936809155801802718198082742559742468662125071121660310293047545533295089286728306108470966927487899315783948585318555332152006145206749674681064765721914027221339388617298486654417952884291577598504741470333372943938521070157628830801439657792748232054555266338172296499132622594245873385072884248667531738021626205896296158073775028824652334581945104978564191264933242618515423743194384803746011031331370360227362152488378518598894218054359176994354436054846436187171237410806543602316785049763413115596670767779657287901374920174220166098197139953110154573728534139807495704654778460783154543192639055127291344351817693119820013644137787903944632395859257489410145650336231702707386274457533805865211932241545293212880927279026709764957470361833469151102443445190962380448586282691443066583795017742405342917101584387070801065215970070771556061024690915808524982352531862057227269408374613379076650337063259927334099847302871568530499508620316028924596070907035128157790589638820410917765066056249639745858775516023305572306821272744491593470876963620212994241667826107137760569151499973155846102122010864063846593704516676983571013496268338042184058090748190015496208239505436347550924358239033250847577070678690668794838393307215673581997419948534649405592911734640095100517789927500510445651554228562704466656669654881422077615313995519367996310242963369746132533056030900533525111760774686473158919130523979607903846493067386476963087092341958466087794398356896234077209481423869304348594992637681911724666711678896881966660101909800231518295375325472846249812602046825485604593128430076803519666278613437123135812110887424995705517575133536140244406590638426791614735526867348608640311939705894994284514162256835579678305448482264399867543540919870218627703697805013809930139735782256741835658017742592678132304868475897977810216957967180657119187775617815049278619880077972136260583055160143357228880276380956225997100350028163933333494717212254915725128645332011641463558545797413324037960753891270256877703377487383935292225659518191427608379860786485775712678658668958052454186284962773571508326416013080850279628377235570646692131629622540680400966359501942486954522971672539166422456090263529824202088088551077747351134094941634219947990121509878493567219857799577698636749428807958140316324776795011836021244058120627014070174696845765039470946498109442438343164477760384763477084148983984175441743755414580613454842794134333498433298450150669897575033788745689635136405190603793362944718654209796435628493017228517143820336088269855777833042209615941168059430438557394583111588284328418091315024601843052333547715958188278434564187843442670921244072713067392939385382696300285965639096502849551352469630771450117729180195715272536677877549072743591418112628317660727455012615324525328573672488054343924384476007075820155285376062308735217911578227157447774681108778154321225702400547036512777441682970527070368694783046420539293104259723605105239246080471987449150266713679798519905837281588517630686275936325006908628749580355588643644879234387007752967879455561805621264727448869275286297026813927368805417750701930266541703717189516694238383393452033648651135268784835662020193884337821998357555502416933989348588168426196187474503317533514569324477940516624741528360460917500019569321205593623395159610648813096714468610908252380540828777304212499113370697778957770107528751429204049950847211571202795844477665916518948174386515274559886773896659771949131473144606217436310036206193523281194857018341984062276760472961352710612800121200936636242887661974279179738684213008835194142831630921255753400931081965184513363102974734626004368409296091949113691380358092070455530831530755640557684396381248868769544699198316120838181578035361707096459721277412975912106240311729459183491057903032593029095688220328091074063144406370725240329242173369042158852507750780529097443948083107092895913346985134051404011175196720211207594207125167398362547678455261340462681737962711071914986312783145616601889367568492350008729580869847692028182714274599632567913944699762938877345378221319449496960799488812203464513320531188880237458588295648294616629907068581097087758440798089983764652688373201976156612791798071743337361223096439572932885482948000504627732237236685809437542107994666431387224482533600142179041556477968825182180606712262513026233929972355892621445185487344221357272528080016779220748830014213676583123844049338317457238011761984583527289320965206793481981260779174934762357266906262110816339705670703464772669580865808534720887514264192317987087500262044547119285317353002017617811554562622833870533005822739475955469602590974150503353548031709559289097513442081491517228660705499242129683010217739942683006915870146589647766134613099196908284849369498735670959539681223899135703232785967949983545070705133288013304465091295739396098448516882977464211053775943662641705729217104578778808806065142892440098441297112411258136350365177459052945122104806734260792533879953765352314314747026719395738608847267562442514764357928275568546486124439066198480307988292273587363105281207205053187345550926959656079714655296203148616808000453424674945835600052258059735925338856495269178296127988341187105805180099063808829122014773335936229098701506568682707870630931792444033228974460467521965010075044506754768138298035610754983111146955842034436806126542157271190005634083748689159352015147713144984924725940483761842419024652973212082724195489145341107980229843624690183813512152212639936939057456494065219611235642434170523292543286846366479025996709302206542405476247516167982200263891049744852989179588817516515187817163093168835366259209145288048752114714360653776794263068385671112897366934371316269224938688199815863940768379225385458677517580058312209791961039861294317437203726138733346752025009166537659277955794284235872421588007585820853580205889909742971651773350538698368899490451576863219508067240184000083884513678669126058986923719345069994274641839259382518734137131033716082102294397157188105994389973324445038469286859419342854331262579080730597649965956884033344066816543985528701962626152735889522424291536541582698869203947727494056913992637117646418679505829229673819068176043859350818793232955274847191573335444450465774932844202734225954671202986090154866926364501424038181158718409798620221800667780673028736140352973160767641133541381315838629840869542805875703890136128312857963208351611588959254290676147876687692216748102935975389548179725184798770791200733499510433252479493457411651517535439836710954247787751229943440199288657983855914057534218745492304736822280291858081671607907840865047192514725652645489176661197573824271649474877537953896409119766214695780719484454801845374661189400853753195358498731540052885751647200723003803986183691101429482732608352897202798643704908020622661057944541533960360631622411446882564103134434952352350882455605909163476214708801318678160387445496481386943214404251950976759580694904178375412021333201308123809603531590036783929068845174453153413866688565665065222060054890883805653439386469160649896091591040115505395614869473267644116941640265704934362869703993359726656505977025168492930722827370379700819123838412433886496937271536672013658904952459496453196499702085683928296480279499187925035536061204985231995147231811421965241853543784572537152320019673324213973951015843769495730448668640281032540007501789931856608788156557839381355095764612196798189791490391919718038756933533160752269532544010974943118097524452064550825173687309156388333314148638982372698504218547254848236560601339901656981802158255062841739285040174388116594502806423747342067250138828249675928442257970668054783382803711342143650059720404250966262428393312751027146131266692399328184059069727864133310974003473097064564042287106070625714139165782065307938778304810391158702947891152013076715441927703550450217437237401666038598097700619601769612396131317404485574299758580816667844711858694826899591061524457990986496748155715702652409101311296248605604888104802583062440448550022797535933410896773255015768994049662238198091220370255841005717203991512006269841220889176307056659446835888756403266880311413238437066973729262529617763127689081165476604979802546907446626595887906615514846249840559773316219644842315983684109112808181731990965410577570132410890256143091252431714277408908255878742176266928642902940158327374705758104372659831486118197742483798304404325930006302894177123104952412515154689129385729103179452707677168426964273193141018997022867680755174293772057500645056774096898538209821132403049564541234128482421656396405974544888829263661198222731973949322115343650368685126348676824604281406181221174038918033655843310790175003915238191198849776422701677277357459683798642624200173328130896170828950125480495938098055994150906937550583393177313319867425973097414437303134394842504699964011628368899864847022932269749562839150111315491305816099831300263306332014942636358099221027052284257774787739620477787593518512862467137892746034744892431750816733797764385019211049926369939313569600976676375531646715184029247539778566642999095645334945643425815898522162480319650073353412055048213241409797799002615094690173928986504832827400645184561271222344068226259838135619563848895330897521019305902159435288167598076038575882766849174728786988700075760520427167922509251638102316583033380905971729142004590094573723024642590146610981831447119199102466386674325951683861398506551210027857642362125178898631314818893757720545045432870791390917817704196323620519290927324170303476177250721603947647315251108917783798053922901499687810919912299983002961578346656222439417204346696800823722207400265943399107508006088768535160226474797967235072498913820838389832300877422057322560685549987214963692515211346103314516856512626589563976013808684151128775938335914870341270276257098856049175172483188819839169386342183132150192700574288936234751839183326706659343342139265824942168380974616260584049958145119551055259182995268288954797434698389106106143372360437360943217427551913874197646472919193745447037462981395718230032121715738071396979503009112274687824158900169123586436396029046475565653039631212284475524559745489761739142515845018261649410361772342982735090882323946103375086902369856657477355563506214957719878836878371427492737266452499682538640148652685387366254512353448717252061145422226924025535417621794503053939543601001187785183576286917652038681533272145371977854645123386112121551489656618600434254996508397590629639776972277716187782181553889392653966093232745163166423275448275788762070522228179267989036224889377342442357925067763860929695697415733323484033401612031731654003916113416177089298229555410317520886682723749266893860700626166466499485031107402753556605162154334080366270791758500299126316386092741675203051765431130557902978814449443630915361220685991849131164956088645181833837858172369244849098513175948586613631472514849992106091032789867095016803098149566926210568791475351809256455531592679235472653919984598503346800122783567849363646188836321697081659869837412247215014633003123925326076435866501696442870991094681360646171389162586360513771408814642779797489442993849849089995285967371053029608538378087145780697934824465720268369386023601673019801178654106771778347735977283368318897207857780104084836441769881720823212511873802028663297238524456265651736998701220005100901404393436408377386081563561311617623110191001330945343710047671775265264198952958753084274200038538641859926794962706553487809672026891348661563731237165321337950976045029981441366204747753817467765960472036434396156898485192629959746931791978295753590443821325746555406381681653108336833398018667137696589730447280533506805662552140809408295475100549866323004651662123929679210716461503740259202667191996755443432120842773117128467674149841439053057590671220786368176778924381787035397767726805934059237206433301237222764518349738482933478321662198037543491988387413436970728407360507990536731209969336525773458986909122962133310387270855984875125476181498486158140620426671264252220230320802438067655589248882251032221936379750356649687475141441550074894224364543482632475713631953948843726402690846141020933126585321973545586434626144017524393696543598669128933747748324612901769406348115837133233504390327278096478667041241561414535128319304326350682664295974159169976273336979978470285378566604440908036999955780108237877110533530778794539099856024064964385599852341821533142180820570301987232029497021393212329331906343212653472004651896324725524048158224001196883837119778318633116938528673633827943851963795545428665191475329376205617791498458079023423570401885226349886778817400601283890073652120279816286678602961359505176439507100768886514409217467594016189433683461724126566894319847364555185729608395966981977720379403636574539768489204253676814396892591211211165796329642762882159725647419491764039432782951217465249337880483977761022524356271267004925408512389423740888057121604904633182076414761697275515609854862180943696109023924187827364133932152764474632546370996544124870145526762725640060769844292479664670657389167627416351129920472825486518695274154396899459504630676375261200399850410518474960824808750515131774658131519928515577302810531193565439533174804185752890809970902677846916720625299569715624926688015076931458129463714434956822302230641982177928220942347909821068119309680486105277359101182992874269476311551518904146263914247282765894612933469709870530165585778361332536384645637115119771440839209817634531994654557551998189858049709191735945414211719122063858201384130040041678472686273161407673613202690360009950945011260309507170279907875230570700296982346292769138371470214055928039459176486560691857141406799308813928878107513221737338327660332749973022509406275882972869540418824080143128695928608879392303336246048072479316476527613056260880900464034684951018826406501512015099361209307810789389401418220686609686522329798798948906279997272558193393000484381426121849791744511899158709563628948615244822700145970312975322658950671928460142610279333688840985630985300236416393339284568421116192256264583445684978115904903227481457322229029143278365063891834833185996775988624659852785576592753631633184003291262572602009069209835161695709153267251456039518990336529925675780402902132524340905874221062525785100066391320048314374077438806205472617677690622549962601960444940527467555825911462749246867819073724846984126168027640337779525255743928801734777395543917546853738288236443297931372079382271270489627798669580584646526846086034656065326818897245656634847144109269381637540408166040441882461130128984797127791706290680633161060181518742170212875287093352073575386456604549189806574971871876508032761202774075329222940930474349704275941156061220775927294103420989919534641877699928961859326538761198247744524868445793345209595303892378048250862561965860755151140696727836829187643972789930892058993143322873335987441284264258433801718986292736639983642473955888476805954294657084575491140998167387398691467331502428183558384205998960276690266245211587600328916412755603007505724887848205564210445730623367346183237916215920145301645762715510785939934921045623285836938479983713137064907862702749841058272272484134765570724460366271629524634618554005526008944809201281284955744492494659549240778822024749991808744627238998907011933750044914647001486100274395175320092364925906510566391985250226749720071219732933347878208892472446045126243885007133458919338895583498555449702029290943856774483987891682598764111801148123514115612406385155915144509218470789348871937633596469992754367338769005022287923493440007382972055376976512691748252919906065721586753341632564009102709481156570056110289315538475741997040016289898930638125773442559708992964377214177807197531215552868541128470482655609206189850490448315526206025911582413719837587978179345198792786570985757568846615723631652761985659455229871441532717318813827108069336791849981515810857222509836716469003603228839460482456176297730613195528212909210521111369821546361804220854229378457431835455670539655700476882095708182890327700828575549036990052989274852739445063864339363503142321334377790697019962720276595675682497398291037731322808069384584091598346506080090053352951688549246802135024305347062034432005885491723609365846804782039699878829785362325141631359986643781276798538238256403676984337700039105633128541167397910614568293542745822069953333676584452707619153011839751953717859165819282602581060750365389881495839483071271461223488673274719727050647744157333416104053621607832296920744230541718724589059517315595619904317291069351533082403655729221753923067986756141888911552127144569500741094175863378635603975047933883632406098022059850453726948955417252141852983903334985212176795763906426451614980232694842613567434689269732946268762334255719873464773156946992917497824293918358445048346776090123253329757034929822658185408409987410749580023486414670972149462762472235601467468403217030211691754845181166391659067456427606462495324289336716283004033992297930804551154831250116880605945081092820788197999160383321817496124070470366410798314388606035885880048018128541952210918935935235107879578752599842999560859214400281739563798359641548537456328412990257902934817167515765512575300226335814056566474029402091001998284572528879674341315347714498968759608557800427331940509176485219733688808441853104173452886791687513315480189129560670699173983278032887024057700029313962831389783766692933702000630936025574164680613390103371090403511966446555991268119692034588670199459793125606681372499691967491095141875183650363933709711710464991737342027997340724857892545246708025267459498108345738296163253742781214904019362218254385330150582121393023494971417114527643014051233376974523875867348461447335921888359897990745460661705449451590218116736652329034613185471117638611822555054158784584467651142297942692633998291335042145951685656045262328741557989896675570778330551203814222819979919488311184998568109799118299597571646131927938608904022159399221303300706844274835684370714683240524612704344742963679794837654987492746000803141714836913282602419612164525451541885692758786965216818859811297254391960287897028446569768188454443449210969284611209053587379391939094541200520595673092780500795746531679126514603936310620511539481834387404069117193761204380353336813298225822287948724368489780045765284313406029642542309754752759435801090246482120098118706723790279332269824092796483907776380093592693188683439616895936072235103747193553672924490235574051618103482249641594487564044149837420281995618435498492080709985408156079367393571389154567671678330244344577303300353354516305528292739360063445561743100317840750513661180152835485205182775109210375786430842042486354596343767579804526893722465707024004383943625058925152395622549604874284801146730506701709299896387923419203179894092832960375411115783962303233099883033802007499951438535336536281565702544845367523163324162359401621248358698442118884814508878759604851232590317129298399815882325731456253860680313463069600196811584579464066314988399115928473462235095173133101747389062996554402881360780719872194742671541044110070709309361138404842233096860165215425015321723167982108495952536866857362047544201024634609044663496004869488605282726357763505826074920103966571673861254549568803644125761896306030991262242814013039698724828103419445697964270864644445850375161484673365231884564944938969057984991294328316634462971582370037918833615145485244775777795792201222104982015375810830935817362675049238968667302390330967926010437918414292060294036002857242443880144795944512498082427555873411741307543093867837029738779346069519739664904214824790788582069887514020115039801152239115206642679843133973896795858514681838459053850970226897370407754342825889059150122524090785076816423368353619874341164071553075454859216532093604367907195415882146755802220419511016965709983489399753925072987933451537344153934512442868238433063082430030379780916445140254213128700933802582328849970431115526622017766217917315703282904825738468580120866764129366691902625207252082835248345052340304258433195512247950746102097462219902300020305219226823433036788268966948570235518798805445572975420284567601263679073683685416950612766583167667023728563506984334675951734409800952123801754748455756041967871559570793314704661920100423081944988768721295819778407277243590128404896218421890369375976844306408050242008388121520366498585663898378918271136985302434247704042959989587463707961487130160547502561509970988226749156486580836052839578411913151864025304848823750685712676517580181655050641040626658904260017503293605798847355769524592748909144845496528665239312194915326839906337926492832062115671610175303786011746944276592202476005003131306549463152111436874265273262400500323085534795410250692401757422017601033976150325493435429054741890695903050951631009299607888967234336847561507093073265547850931743182077362399996186939809710154469896317758923898397176610193519141493588520421074512621415212360155336444735593052646234811908516877004950106449680444237927368189122344936364264163203050391224612930412374238448193939432007967505654073636199040833639581700013757381473076126556117106678839988040652750411691648096531044004032165020437958230438980862433339456162270107124561904917467073834099554398093690377121039376279886370100591606679180761800548179211961069479976146685056947870009689300043884296908282498375901697789601341953164600947578267617640972071375477059576352680503559109312740839203227696111422415418923974329629564190920635390254292833447049153882121595129055235446008553564145345053432537667716572287173083473284330225236473782166198017488631216158234223407624401064555099014225848373769009632609895370909573163588555463560467742032962162921059676421739155670647038103638790489553264056861823908901749331037807892569568031549978115520747171426773472075870666656853146939553600806156132376237301331777903324416933047235140137579140060398794292498975118011871368122901670404610850205619195587154225283116143461299153971916128519189427990628122345143314449543699850610659695899080917073212151002001501323868370704863408007001104263305187700718655341289125609117785615404134766234188778818308191288326515798915556449453124038330085637906015305822005759014303364215223516049490439845651871470456918995048185669372547291664307425859217564797205475550400358033386373396607185893304896722976231208666939724469145726038540178692966294727708823644027906062993358394447413699338493924603871975525812649133121389078637978596199049609508526096948099052999761815343805270750838521857761269195485837632222929959220335120910766402779833571288848435498211104827852539023672933999455718775338766419604461635260135980505412037382744625853566300973691744502865261360455051757891431693510532458216091886192483099839008559725548066086978785969767310256305302535541549213486441861655263042487887398858641211849490254392951815521960872941844844881798511202810551706885927922814169069787608304108083826610282085535833371358226662513949528968581246654403817558659207174780677882357754464547241574201238049087015190815664246634402589308718980094767368127063115889037851419536783410969613965193903644656040804236569000032974789258169871974783330054034096413084571541320254710156018574178517444799204929328943885321994995675152906740478715485710448992615817917476757058355266960771382564832226158216047006517075138590781249070694310583132370627751982210911354320783082618540996641966449268909629295023233566882498206505289763469860013662690502136927820789155419091137720963208425870229519105992828904740221013292241662249540098036186814841069359464030507777417999290296975666408388013809185983454503721628744923034114679346438490680435283178453158206696895474680951888328882020359995712671081954260660313628587915735248957416006284623541081394141333306465589375143288218232337023271011236493262427185159429320192758451470022623959064682176359774517812725699565061342227344369614487242357461297623524683089636662646188991981470198914484904078617172438121502888080656811430993632779046580540572227311899262235301204849451900760914213619029988186226927454487084578352662384655864586871621469927102675842926683062211141607656481746749677876152688016887022228895307014411377706672166228610688767230963763029594986832023028643927951300046816672219322367328913445311646628006840561278993275081581856828384078526925715541933730846881434410346884033196617036048003876600403235493075630125038772288348341656858712781136831670016475380359837036010163292057471691937634312850734597844413476874721445470834605613761553903223019042466448013822468694717044407283876843217713604490193578693306464460212934261254299915907028358859597372213829101962215426165242153331101151211494426326206276989589700431787912081059096209847661714872875260694129952618434698608560405381686219200260566926296466654015712293257870895494728146214872217722093882449510439770451713449131251227515918821741423224719885511397487010754640961710544097172899756462892185584233097018850840223883564492232834552894532380223594741302488221465728005748455847065206384465669591260239740502938636039223453960854533874543121205339442762013134138060736174590730500927344476328361980199681533622353205840103205333453856218645381800711300519986324899756759392332787328219241532765119371724697006229255786253773885543349212679513573281862878394988028138572116823991188446114134057000620699462722257300077625961185544868670923373474588880360320710510147736470724348319984323605446592741782025633960578343678636882258462678650400997769225075084573468161670383766099976655522314718296129442858197004121420316983415939195879567357473929785411201457249337316070137618980097130625227333747038539145528371963042876444865143541226985554272240882766298542497647374309254020867290822225537454670649390194947036430608410194657194230095750248817469572577673645141861961940667161680098135960227150824124147015171168361044145076481914487430053688084519775088821469251829922625396677981242333451482633702969052085303073077816905384633172598623576341246020001764519199264997189353270164233369124815862542898819671260769686209223992032375367680056408548764161206084369665225310452166071354265150556998403758926405009516963506064473008059927323752841065885613514327016865865033314319518903604836751404121706434441232239665411181869099454670794149653003319410333910505406374878658171162367250635996288563756384156431237724521889976943953579454071422527429793942936000061605227049680536779890694075931149193329319058810997647895481025776707318028984781793502163476322667576274205618381144321313179815840106889919097886652208458772959344654028353599966945388289701657494462553113942049722230189186856336422696493848139024533870624737328483274064262807496666403483234397769337341011318700372843736419595010788518207855552319096151473491569692652892740885644773786408951505381496359985746087633323808896139062045360714912234251511078585898183981902056927168307752785831787202203229262273603620176504898425682535465555674501360967904928668638468564035588781606650440424125219538954283480548065248075012228434657754307440000256447419899398314841849917192570734042683903263406240057093648556118806996606626239956074213006261623519708305670879385681067113939508564294859589464650458906050517309321451148944134665120471525873600372934421559697476002537991450792150965895386835101630997974184553648055452339801291777759561924265977459815088220553771969577584856480366588817840139579135099995379070667582398311520714750347402805276884100721531630301760838708245223946043102999836115570829908418780955425863576476141720175989820646780123203638543324684875574743237332467594509560925950541043908693876156228509889707765675359646971936721011693149810361837302799734896708985526441305674854907452484967315156200552409959849501645533663436113658699602528179119887263004760961695909717133154568436876449630237975296692856915246347687167043956702826762289006328604451352737275856235101350008340494089258756196182875531180851032262313203758502540172036129785129722739889967617189778227835321807713660444012758526919094726106850841041471128199149135797855240663178411694694316013619470123634015885091416894077912616620867037959573314763498361951192471807376072505411207488487356504144020730897333999351018623178326960728837828249365954142131638036995641339239653453210644371239314631883033647153034403818036840629885510700695078565264932379649510262379204922714284337401565434910850988825346315814727462765096905972350308180627562796022010135238067546338042423670830514756963706676434766962094983885487749495745423212149834890546454996337115290498229303126560629022751988533351890857590399365044126223358685438847689587012696804530687955371565541732288945326633949803490216768666230181248566670365425166395623524052534571633964913369929909458496203362737685029812273944237528878846031160802347360171458277307691735622149312898650894105744699338903827363725111915442039002744406870786716565376846118491129368284102374696731500518066953576871348884126388306044484801376260051920212552183572519001922125431586820220489639740919691586099695635160560347127035562714311771157271790607748144679672128972772865048435530632680160326874975655139733672042059892674966881139797344781289513127860511179602176584122311828862908523461481966892525358625297111762395903047577120739800119038798688690271795354398113522746157001307117754851132797776047644746162759502783265856078557002859107276671236681944463061183931899748181686295993510717897096669946950240931722913329573321480051191241873767357622688955321777970697716137928064803436100816972706466101827982359162599786364420202856729658458145895753073488116077520612435488478728731587822349226034122508179654479731388572574376067506435224480580300852852425454772754279800041861172524848204713504075041336127955057480513424696388163220255560410496430701543644312704392693079816567227709204365709102589565933426913415890773344486687422677857716461185214111338698945006117914444259652475689508958282729586689231947603088037741302830706578548198069568499572288653653411325431318366564684458357702389332237505517461719619377358539002851231198970089068130390821746504451523495576188000935889893684945757120400235094501920298595142766170841864468207684042433075422957973872676056185931733976057946216396243868066913056453379298357189031723390670947870416987870999550065905319371842371804558453062105727227569151898456953753785592014621110751451853335843097053858994174401549218997973426162987865101000967527348771227453359249869061002434583224688164991467335870885053734806942231020376339763035012369353737813722695163727188450691272837276698450398344903555377462272263466104913604641278914710055095085380699654478200449525719642945200064426358774370780903476500841956022860784189588523113876431392278850351350685286655527072689837972427193889948634025590794194567263284368100028433401172140934437319983437763809241283536296594097195933080180010371249271696717439906322689588440105616673392301132308493065260777073070327751826159238261957579189139615240052609255292762783171831144276330711172521946067940316474467982696726735744652672584548056709926260690008914128324474430160388066506635790388516067660712530413015549535680172189709301605148021037861192432545841359540570661682120175651882582516589634566709064203801976343037083076403023030205205860592837849992895709579017859674046260880838004774793759528952920250164817093028431953448168527708225930390343806655736931861262560782195939189509250224211320743429274607379274895889828339304850379470748705922706643378243953538455770478596729479406808045649263730860434178235058833774379049417451506911718283017051819969388416945810525297396657885877420389576793386847460676841082435091979474081389939615739500210025515264538210046443244358487246080398409357051615036751228499657165744265625355103605078495652800360826406166087189950070634053785273715183963538637826384738620682748101515106201358469513851903587084240979071631051500552962926046472769491061572758828228607059639740232627169899189885054919099469626431076872388346658662643341109173391994436133361197190862442053794774791459700706835255826347671421415274281972468783758024738510694728785664601397144654909355267643626215316917895843451189811933613323969314144824964144066544771636140437693616668848131638910527568349259075890388294971291096179590892203197272723607703066735267508196564034934101237921304647931995910546773964795628372416696093441234291775005751491983737295051930156511213274546417569883833412136860414521756195015172069376788947801650939374584775603256415289944126574636950706099558689738662847710349928098895661296502668918890835017721105202813799742173304591931081116249006649990907879428876872770533170426568636888242341502128481829981927096574557649777132385672880356177545883578724692642567132337003639402706848677278426789377337852966246713679204552393611781055145824279417142623453563710086330429343634899578518678541353295631607104211094808269943030110884697136144671335730356987319233161724399156310261130542339417274044280016925431126182401201228424692669434757045506872339717473940139946685006116124849642333056317278038491633158963653184319272819375514243749347543042472608541644818024236852234841205657423658038993267701852497539039234781151954256484883838013081316272568822878124163595656754772505733888269522396898279604967836449632681166135587182565486082062816974056686018486826020554226015270820576137038061482209951217156944028513129018258359691861258567062226637800503836200910345960210756472092942789405272099800669659861174351514715944326629931913727574742351815771759223037391762253416635085500696401976249736541880641496470972039626612386699482475344723866101229907483282669375982395634010760412535227219444436321044079953090343363376911462130492330568044209846278103159679885157917815560143720254499387848600764189657634894136735941089331238542865999041325497713130258351856907677756764447149364742190411075312853308237860489041671421915805157989337300298396991535730233263222689108728736387234533892053880577920911261795389089071973456738918456696250078453083280015132847821302631174008538560410426192579732539759201908698902186723123687756510757759890745790527604871913230547059638772702706514864120586627856888979822278517050888795665192420447806263078636726818202527264646699948363177885385975969117926012522147608709516657800043134852151500049349987318335791848654107654702547084386806836459767571996739396485122332623207717791312672793524662917536188955171056818949347511850364866494692574684853271473355945328487458644437336994752247124381433181463623954150185965243815612570266153643527707034948421518178051043442002163794813461985906323045882567905877535627060777646143962162525341355999131747195307757965010797185437789100832900245737401102625118261197003857621122055705279581405279556925135370858432068470591777000722861489334796089076103860958720817497881800960965222969760314011274975723833154778720365171722520284637635149695606630065142040521446039883108185378284907919783787197945522257231901216779628940666685903725612805237063142753749368581031351813897788700564900817079146509276115030486024297530646019404140093885761030820408949470170474750318212480336271435578860080905503658076929341622071228525372053705860274673493430365202752269676284505474342426854735036641696926449972500523915620762008680489883187788522276590154786382180114544397471901051246069583092465732042588288762635177913962626571072057715115426306012892777265110434123974607306461407684976499921433573745055790472695496180763171873257872497768225081497997351425124734026900420688265597643263956224708281292625961888988126648347115173622959665822002560270818247090796928221806876182304172686129331934649054711105468718303278342686301260479977499173955809989841198081849739468765681165617277080189962942150928778059699252957586045900824311407285822059750800119668888647384316127710580982289558982536669061726669319213374855557305524073682127180427791223964902352775722090652590201801157883986826715137190195381253272061975815556979728153912665653059335231476708397571020088675285909684412964334019118055689354577995954751607333907674371969768793071070742973500214119882347953236517105346949616797926566536335426106042649151955917972866932741335169282325655482003389469032932386212818367706168854984277878159652774045580488019356480536672719643650719026060498050068511082675491972116924913162378695420978309626755804077042403164151874090997143321535116770720211581867812773371890472858523310855400419349510826683443582988374463907394589936140710562548073744568206206325975652641620435903845807036384163977755181031168439159215928698340313167418565922658350941941646719876262784378746265701218377777752907515661165937895554901711128182760497785831362360816793863399565942376807026807668480189670985055089240717265990263794209313591043492565983148430042092890856420832609225161708518867284043866596214416685300424537095883164840897732351497639448204060737475315727890507244415580994497872751413420040846751146825161255772548201325292046652038844924241447988753732382809804605347255212860416408745381870276504664098766809834164727104748237368915845633926794482562908399839819113953955849206875941605409033515859735249084325036718755923634272069743732582355747921182201293495708578776507911769821273755410958789621981512040779485184807209094546814898513387166048382601057832062789922275963089606211572237923110401827951726015942851804263846041256150876698727276301916239450869669797304842839371668550713940171159643773748639943339040436046597424926941104886515232401493357517431953332986335059456503793523315756462442556088660340889222267456341077852139281453368201427787299924349659616187675844761872789194018570955275101286307841415778128012321543555092821203052031489703935002520599777254050299627414730590590262296213471405113510902368532933385780129404853942827954020608927482931977207850299624600797738419974223316404292967241210959014983684544904590676735487814187057372293574169565964715905594621180480884623779502996780823504364941318927704302671754504199967315169315392378746214167683471649003897371761246349144766342380476987468714982502758119177384693695209459213947155760447399988716358189986978454360398753555307033834747973833394613953907383925147297179678537825350342999862413249773013427369388973648599631415655695446551068760898779151260848607231451791295917426219891945802240818037766848970184638326892075084890341757263138644668509685997817335729361300755849618594056737870660383863197603168699305636917562035978118812047801482779549647016790597561805692848709996680839190886416562597753688176766703272042679453286057114554619057578248035670286602226505464765111436316640030761488065766256480580466619648522633426211242529791909029173524897276651395044187527547616601694994490730232371327366214931523203920639708719302271375946911102759993960244556775911256968813668328544226291339301578492116867443942204181062663514411958972265138600663174500740451199782395253061808422047218526399077849324198376767816593315843934569112153123839411877561970037238715132452930855255575160788969711927297604275545233171703767117960116551464003001438278083246355352139999374189088834706995850822952397576562489336061220988574321041815510383352584131761750318364616203731764830912694871830865490889591002963582342697840000661637290606997107306242493812401146289079165093524081446044323310077998512427406016186261197870976877495625552612674057313498286852003476117831344792134136846851395228337649684787466693587904778807195135744713735106800915361538604309220238130879948868146851685399775396414245933511659966484518292438717941339559082662135635840623175643352151440127843377453584604647970112532867316385220555954892185161599878800850729849896672318820900220627953602813072468170228228450297838465470103719917269321043106648225258166780984474948628563881491431768964356852391197746484882205623175334778191784726684856852032649303660740245359825869033584298239994871472085854187949189118053479872211191645810656069274112836212819100694393885660011076573571937815936905111777701483356360664703417178560656541050617302362549757320132983387083985207642946723748832317561763746884421084533743729077296242008545873271347672156375642096335122244209749349353002672369848604579180625641790999737305193669544064891197172856400725204497710424042907705777885045673447080559410466623259836263823090387907211829433863137029850542205548477364177322330950451356138645728442028704489383987984832419588531996984865964358186963484550552991046578693214835027348346004694888837733230336122660019181902266640129808365726108877652658181301325325212627170697046188968055644103373367316178017033410040992981349289703659023365563331909437766454197163912084051652777538972795192666339928027564679753723586475883084527349302086417629160966532799302080886667485860971900920375730398146540722506355934488109596471082945586885034701299198692018087121134072298773585245698989168806635880482294568879744065923462559548916385074212573528173941593112367853923167336190871142636742602979584406560082993030476849867452709937742062714950012838749160054806781868175017165240745000949104590532245377986393741002828416736082739334413974344178429796601854528104113955737088391729229609142097749908409791676618340591162050178572715534369360032493775070780620041758029382194050048470838001424291345585142327594210266694878477656008964235374653546765874391953199428739079371369848914060735651137909701266255622028448324555845671083428142918200603182338323860030418291263139471675841025830122460627352170422203220989797792212632844539354611648409029926274353721861380162593828773805540235347591368482750737117137935873340256627337701904998895338654397747210001744727792815592082379401608751636276460131854322851271208510878260117616465859667019589371143907850909186651900251309890505942931474113004678177102275595192199915775868708004978953705363915940910725899089314013059718834764407611491071215867695175020875699404650887221863382659290769753466358491487919312809390928905662571687609327966541566025864265185146271841244284161768581510783478186500881961799734613517646785847234071437787044798574950197431971804792592815147451181867220733313893147761667977690176452466005629671326384668913331552121474342510660728028036186874010609423242536699004608801625313002253928310024088163463736571422871820953734343812021827341847898667623365322709316779586870637752381645159262674421835709718983077009377092589562230671741263316804297006137159951915714516490550070725511238547353207241730745671362996396547991647691416509339682057854909749723988847757592473905168049625905199238627432318652592216840990302937718438217079897590123538057936067952277795675573111273065305747863161764941738220538159943625273191691356231518912088380258675702337510041160359666080961988247232665441961191012106677755116431953418788590882283876589325313922566581990585778930210522713648239795447882631397588257336471093593463706958049803418140428998846354967460381536895154702927630086683690850742139191691967360595145862026804194776563941202948140603344224219149745509241669372384370517087319742672365669325519519308696887566193805334162437799376743052723673453037393946067763425355380522753650756280172263825962109409500400122252572551290110937215679909271924550636772552171375815951058176029586600729184399566632957343533083802190315396210744440932678150208251454484028066096985875342571071942357766842136483703581910806561805357965820954894285937943786643066265958758391785530208950975408229707968517027699252218685867836002691052703390690121546270513717202325446689411626450655526702998387171647153522882213499680179685773608834641343483758101785215850003618902943968330363587105523131849180579872249249447394441012668674238593828014080902776270898942147116467977974556171393824486210490920430019905041844089890844520146714308667559513615090299637720271429220159069346787023200442810052045186800824576516321502168138808558977256044688042273395463996119144693075763012063619185306502342146217173946544853677533363052479973372467683703793221840907257585062664674984645626339069339592376448545517256815869905604943627599274349556725707821192493604387887410759795295988336580893217688736839187827021799127439737754246620196283171197138563456320871758789522386305514709740063795960874002311597447350156612084549467972888173865180278720960511254431006757629264782750862121101150182429268519224846367955281333242362267718547763384410095931418570169290850644530121824286939460866857431926939325281365513547650749755729988787378737704609642558810448416434751913528199347481504178329799882766245099307208185244172947652057069692447471961178000150064289718417596405029849354686105632705485426092038319886755544191069224268910195202657044951214960242861296641679937132523533631121603136805226051794981784627826802160290174434299609868373092042133541949468567961264169800152182730709332190771707570525292500866641737323600627067410539299689819546836919328597401123515286070890048665188309036165309056763378001738904372924084427781671908235262813240211706014549618930039036687207695336613161997047337841474842183827927440610676191709704051531783370428605328146986383944422122611491429339626441287328351897734920886143755015234476541582649568861958661559896922442704537851619990086158539138506936820565516733609194859312439921806817682293297997092000225402306411760300601333158205691314059477901211282999356581985365875324676697948213713986941296959002869203533900026757324187515090819852878575011758068251285227857378496549545482495251652420315267488409430163418255526707112893588539041855957717833176178550524335935276885394393357716769322818750537856496022488722041169909834215965667901235221171348587887947251389645125556216493450578138772901189433460992391317599856928788094235591087305792556885679255855808277035100447646596894033755305336983993342902907168007027505667089698117606457009906306320782668264822038803315652886694669447301489499136622361966904508111553398225265691301490768940889168421551162579212359248890648398049049442522417909403006096961314239641082755427566114102483156326869968069222788170429540981783045743303011854091293340008040343489359480071884920546504391075243825793429354174514732677111956212946560245746014373035080661434904012709047346918432298461070144947951130626116293800197631309214630620432966021970482136637776159338780909645647716092017053122443515711929606592157442913616189127261676162287779360674981386604795215687794300416093192054201505168976099972353324036562277574769074094403507817876663561540719880303082179613939057361222920018746231433851640717245402767421585664920165937623044282871290652659065676442415468267432450245455936641178841842590968396848314656697282147352156275670893024758406771613178909345098869598636168267073976787231597592531661112528109496279756231064475058852153275030948122590343027169339124144765918215824582746163334943058922341614057822555735940746891893325529148742098254130064656764309870618853215033954537671077156492836015640750451604820834549409421092894969796058431490383916922995616194232383877955358774200686074325072763192521246463990320309197774763142443083337799980186055054938504757731210633836231710567182821782573098150232796492724543891561298029105779330282293564166721784989010986056854467893827241171006812382093621214593603563059619908339662103638515629312921973440284672565874771341414207094252027553234529142415265866829574342790519848499339156227044715039349023918843525194796284778919154549976424758200206251761816593865004818675471418899275851765244529552537988215946371443197857267093898736570679636806537501504403424176501462114940607816190626065743799767452269329597835351753290171995918326491941696300114654467724204628431239474822455310367203204285971403665494489159660635586412275497997054763332836484641366592289012609602908391237121214125410931762323711914173875772930759508171409828993225372988579026733259910160829719473910442900985169550375468718990344634681965407816690532007967293044878967522671899309855153804934795070615498662335096833771392877900089039807870246611101224275342269098758190703009741761137754874931203480961236089416338493508190594048676964211513270053800487395771828801884560855124251756052219756566159266669536413164551307844452215098178673170642265973028493702166572420954499877746503367871335240660607125593381334211589962070315054025426557889347445681932447111488305520727665512593098755164790986811116871605155781896589836942820056589477988255148152183040364251427032195987635109085315109985800423270976382098473283120365789897799460823243879113778526144965053298169599860744151690395499479621375853212538007847119796640385454928910319537744931055645279265748692638432284063455659466834149208232637691485699341831754964879455910773338317414671788014610805808063508657481540983415070630467447989481785742444814119230547795850671721240121240733819294073473675923792600920748208935855812151712068305979608416343640046728838650012950788906285448947398490868519818127936914117716910077868738127084420216995003557331018122075927510604921572019103219067761312528588290695491015096366850192643497608545779799614838195888429513449448620715981379332804139004994054416937922822750825359378268007598715449712247970850871776964135011520293885674738918320321742438785937355574255555640936349151438336793913772955470514772012899312088980527847629739772003014797122741831627552035171971309396370080376671518567657039907155694665882379117459773156257857111821363253743123815267588124782265119235870709713746579036354491979909516904060325087923055790823900359212637881030998574800173007470782818464999762549858037291740198130629292934667067485403648958099683483308195197921831269217611914653675313455094281135212587748659142613344951139794251043478842501709146127799315415785006556667217987178171642080615744052144067835941910113189031314952446018243443908349883831247359641787261804662528303146920374819632963049333472337197158602413557599249510229273546959362812452567756827027304963161252511343015324001923958158366706946180879724528906229203363688709033864305933943799249925356509009051379976190127087460653933707152177008765993931010854735728865662210304913958156387269620389263787698635637559309613637719262564361256671324225898708716792920347004521817125748626272659280309202892768328392662603095615847533616296075109915943415674217149194545247442997709610219051841466367385789337998254178363465811614670367773311671256783518187805232585330407395179323194289168657236295678811978413850017466440453582531251752438127990573308750440271463360069420612797005721079515652531879529495515008327782608684288756412458589747730744800586801096296053608026482179557106696329068743881172269006084590862669921935397857074572029324815580803729979720965561500815437359923569302975722197184256702449577413253527533723749786140355537995080933981532488575443503075786794733088039628744210326465359946775840105931499368422223719175793485314658493072221394333635362661198166927380388517898718065881542807622798576919253275721340058581315795678098148660999613998502688978078416982170020279321458819625102151805006284713586124469509838174002496371930581716497379820988356001349375284260545494407297197419399372653446788773688207593819919049872327893030171922645524482613298833185631417607605751623856548888085686175525491900634736172742653001458083596355540744463474175599408945506159477278636027686146522514761064992795693106285698292829732451606507515301312239832008416848834004518506491372287492111344818288345308586967228497446943578626432928423484849443194435274879969648610389431001626401263664028019780642957969534318163460155474323644967387695251459490654418447638039086151585380200727545597977609232538090292305451670063338324177359487485482540277119112015511504963264978021938599118583892900306584602329523819554027966472161814276527635528010566221037296564870804457332714454752789038196548100427377367396360340291184961012447112796539085798581698414470506372945849699616387145002535242407217019800621986474436920202295590130745685966166781417181454416997277361463016275986007301508058173908995645166906289159718562185485713758330118725509547397262141634492535858040482287540765332689810800442461513790384507692657031745226067999344315201213086273860609504243248519422481587203811262937873826836361594896157811970350444922534688309828523448703606891806143378576378193470105900004341720440561396531947330323387737132481825281596918314586968554507953852404999751835310383382271890583022356903864735045327813110493330375159756104239043730180616150735449624817799279132766486109390669627735805291993548025288754391884275322100784241904490761487522858960574988535279362441668846442725164149706637592507290328357689881012038650716708738749576032126663277689525711954093646937430893823408977832360302546379442836909761975375071941088959514415935882662431960557719963830741543119893065525252747643114755492069568695320312146932413544694977339930958014373109080894276666603942237713902760960833359403627827946168448163252063342760131326532581192126137749152992847306360049602421976657273287599353246803548529245762796302186344089995977149563340273539823570916360211346210083092117218167917041726731600500566843744562829697037773884187618509254166544796442407219467069277723262563367866867566648942796048179470509352088237420753840883899393814954755318346202452031725912102543864529440970390990080160907820500217759862012013082518035339895816485757485961905959732169622753812387895579884344367989019726652674144433540129848583332541847281776320676175341476286220070191236711587178288389296854336867187992111314162237166563304824316050236009591309269170065915909424345864493054188703541771571052147160044523528082529573594025921983637131201187714173813939083892734063989761647644353225854973662627242092158619362409118591290408918069359442171425315689855887753884425493702699248940484179100765283853641287442491861989472068203107139809762286928097220067860191746389187457666735431980254672620138320854502308120065329427822951207122624923308367136648466611562931299114859018977771257920275876108609488555994124648962707589356925391463072333237331546848613302469977688841236505603304205064828702575333463300804070997863086908952211250236675550066168312151594538123474741584761500679894015814889864800901304743719221810227719129858786711265596293100640580496779364266708537856293512476642859087103157406783668008858794177987486954074423924497187137841920624842269507490042598318942593968157372813749911251608583810329350070108935254168581433686469805909878835550460651879765520596229333854501213228578518316066506760315755305864407083984838382918619539405422256166483626665911294090656482894696275927164105660425675920517614239973742707091101019107306890357387283656228397989256140790867079494381062143431462494126275859437292717654992678435128241330860543377274628828659564259211216710566641973003154688186547162331873039144940386581410528780882350073039331091797827699814678464594280607898311190025937998346501330496122595358205713060135816586674613905004538132945463633938981725226872546627988487822771554037176809154232082939182687771683696534034920840140950680697404422350013489826924678219055760260630411244592782572881325957205411045330558947499932391231471141793878947775446153655801409033732120757411173775828259353571769980460155294896826709725119060454282984955502359856042090517295267387305190455135952106755833565684414795726190178193585874875809129350936168517292597483067107226618941615427443743203160475481896197852180860897331872146446984245426890090338186849624779284950769555172767775253535063293372204621217544223567646100837769038919332810432863670869618027995076384002949073952026363666083614767558670999308363986587589587227269105958937103710208861730895711147406781055183063653222981167694676124420737687037029101306695409135978355886979270953330865442071327048920680924921873257779675631368401134660842393982164624041391186855606021838025296664517083445447091200764764360479726257320707379356702968087458257496704086926774844456012970781901691753746965361966895828981786152008666039495951933925354521844549998322465076461992766194607991051931074604276704217912827016914526376274870127966997579819567995947495991226743927138123852149780695466193341555264102660157673737941727969414025959398438168344896196967028403309452761757243161757362410134664683671904085963001096511256550526215877633977672577849251065423240126959834369773949476813488925479550065739819332433353052268943836888397460604179673654370463530168327319500729337208473968626571523030618949692433316752640980832294208405981411345179008695436153805318371282762675166167581210790403382457324640485536224374322535136814115769261988273674608808545369815734655099474767795298884850360097452673280204855117400360648882312308669492489380665935611097172672986409484809208400653429102701587787691655442800949801193550964170952871543500679106150602162152637442707145770787516308217098928166008319503697730952296296464407029095346868357115673239105536691455216163040676756494112932735673503727438133601167148674426501915454381614597961630905961909080123298496877355065653018390934010156968906793080885975118252103827585213700271073605139075481525697950218827799501720479510638042589589299880910541817415474973553099865414004114712406013633491593716797298498825253431384197085622217552272433781058757851274500477411954431386464136717981767270243953091851557511845766250331659566396246413385336054724341453780204988981140638421590703252128652593913438091302409334764656249317741730627953257409841177876460347731956084457101433777199774035250828584078083066030656775152844268130219575140575941721759963996451180673787372206806330389153592018344734703289021854274152058550545806117728342932808845591817311119368897609494499539690730279689241326713029877233727436543417625290637650309572797789372479100473396163358976894351739097342185830729648415465016510498807076162008748045766997355680637415923317339169459793631831186229304617357371759288227083574163436678839907737684572763824711421748197826018577912181281783642092317440746890946059449247988543862425321182541252808343598524808634322342277115728711024557900587901579241176445167158109038900172312547700865525625448601444300367917586573729170968499279524989519869384633352190171887298840987102424118458263637892364491046611443603971000442102597582548248984154398292425089331040970295069601987378327596623501939515260290664247580058569729506344662686380219718512655628211642454388783142202084169590864348333923967937090133189904190886469799092758011594361182100366298410779207827149865896550425404883739920199953800512296214881221532661698556720163473426510665890021709429660801580490383428232518991009608566469781775808834769699082853249683116953163280300319291908179955854602779938207721433487784199454649731714221454976696945415191500658821016948122778587153218853530404726643952949812531107209739950436910966996789906931076773885673164771828570690534379769762027493038286835874945727760996458435199038812294251121806583479147838503073232858209022175074054624779808685522175910871956910357156667518751171765278884027695732916127171894296568522087025392892767578517727767631294317288471940888427814786693880429961192373165230770365583659406201866915345323184107067618885257149983847442016930689148748885906575063156430856039728913605679540479384404452241021302080530682153022497238790257830930518173632335809645898597675842770390596779511708140262427488944010654238744803192225985166545351601951402103544613933706999649066718754242239144984844025399617041403518804248092185405662183735805181350063648891897395829495618615242371774410476999886112297260412246653014867159593296740910379967786691142448797380708217232600012610895197514993063234307596615826476036443746567218571307977207845520124502643928742560744403839510886850798476912610406062226494640287336621534382528485336949993423399740273263302036113714673015631717332076837184296073469451472561829942934159534559539960159551893473112361367373877235891725846338608840099527161609985706689722932780602896176775754428702433186056423599130909044214023044197760875307453324223804007956979251441469894670587991254754026347052883091704342111893674380613286105949406372831064615011637274213443443553716231239958851056260898420577872441812165687220851044993940854446059040104223602233090020755344708491824072685436684155468455258488000953558931074086789905225254664612752648668016180021617331568260598089727278792073637058495068962744532115077092414587598048155332773673955604266230338662159459321325796650578851274641182587448160033206550954003480489545671272731849350023858636821688995374462478955388891061607827268811695836425969097890946469692549093041892253647837090029028296564438019122033037324608191854320972831160855790614880124775797980593151398562640350576468716146877699270580209198363912872877354543987687129042407493649945531139129726772558112578211839609143447052582761855816797220857387403788317985381350785752917068247785750589265970727011938061362155423258767391013410862601264982594734483220869275190803345323552288776624039935087136223505928909760671136241799218726087093511511270239430789088103920587908786771697275974615678152713741351614921478878898146402184964084036848487618588691388291009586193552110419443289612172368999818982353609663822064503307232589620133402891467555731715869577061033442095028459333472164417000189599994254042449065242516992492901999541570179092387278045263129999080828317813345993035306350502639054500982962099391697802766645508467284396556654531786188301313604062008258852012471518299247743588423979653901721204228570687135452618475165829779875126370744760308843627960822016607400881346657092990706789822588796565178864063286451865183495213241065458149610906490156226449476302099420384413168402202879001050045747670594413448822334520113727515008526509106939480685907431222242961608250875032293457390522074361207713129537308688522944992261474534862732754110901066607610503655803661536370609916523017841828817665535532779744487397920038270843082431878896506373769165662841104487808715818504918311617507178023065438062138208319820749392444167540770262550548058355056854474392652287138240168628197584775180133407840575873978604528422833841352451977732474893008969197412565920182568345593209857965453141007663321236507804520137117196165667711050341339860219935699400458777617180021795659575800879207915737698940797277814225658730205236977804038949038156529664219133237750912564802223528380182865683638425147567869840843874865228762920082982588695756402585054801588102354989679433358121389440096162395574070851517824137637903552250135356834749722358911364321143499086718569452960456397351204182943951033751374303917741460119365527415671358001302426252953537755745650022973438812560453399843177279825694415187095784068559485270927473834231202553315346041349341076669305064107397012669261459978731803233358171316785344117615155919924244487669711432612746603379719585524459506557036095577360213555894785265942256332531907982100716354003356273696522757553166924712230660305070448906463855939669942274494110889116365611185054322875173216630700796714650895573357981660293448473064866261173141405407532961608883452589965357152303971754479595495061413192595449753178493676969250403690040051313849897169671735217637413474844651330835629795600206212995646196469726863308429107912077835529387521541233330375650984975684523922242757145786865495613314434293157101964522669591728921367281418388093435545192154348920053419512209883876539880569020577022247778347026048336567561706425404972920160438960232443664251466724566320913809712777984257911114243959006859119080120618066410176022824506125368729075714926830938814860051591200856312228385557180533941991900368588837071920237890283848309488833845287227049296951886446564845522338507375156366139510423163008618424488476510286707736331590569437396767667091806147702768841457422550844420505918971985314031237994868907007303788027385541907467728863183357466627044629321076619589878665841462128725115682682599762616746701347031383705849808967892664492523825389709050949120907269796210881626389013782997922746886668809781735870267471143129848432778459458684445255665077401397249198279072281625478601052362336384691860037343588217086153739516843790800623123889707831255425232549265628197605562923299579082662030293314277219514722010358462055279078497505595735142695882027096170158741437253038021413053131533957090739974606347727831425238622134455585568734382518898472326485555334610118229527780231797645458746785824275032556209815734505017588307144298328470323906207842822610298689217642604930678911879131506407237980784543558480438820344107519019723861098819167175739238094957294931940769628910575155061960916949123907926652986202244712397555772032584841575507632593613787741664879406134666937070019952868087013056089796845015734580956061004182573983272360878488276357287312264060389319770232724697135158624705237983869191501163278010248300651212795739900279730649113731663358127000984947146104298209885972512721003800159192921130094940213445691004571943416928442032454201927737884223295013045248613701512107767349849824142028390263852950369690864026154579819117507548195674493015080219272625082975420041604606104131294922409635720286952089919616993755383344455724235971026635601024592990664546516284815844353453453760674234706831699704643462140661021943930094309155862121526785480345414332676943801144963201835183170119040778927400584681152385223235588077082025171585360716689483708969519850886066449599559695930273122903124039756775317053321798854783129826152259392665142738518904929297776375057659642784948850153427895973063964457399445389228370319287175971442485262453716814927658091757919512050916222558374602458616032083665147432936732315539924362887924147373031864409252418558885371785965890087322228559240784988329047638280893752453376400837097485381592756023295559442800195564228783289525235737581057133698600930816168659049444302879213799306109424342553230284596826672603536677065836135901122078874885983371324788766304708299746321098069641969002593412900622413021562742438606654213514105162413950489996334137194457223940138848302334571222182683535421491663951672126113960243464720800135883784974565666800720385186641823057472146568657184983815304523286252996439442218792444609541121169311371101017280782083104617469172219596096564387653971810731786098360397919961474200818797340348456423581272356403658605863814050794101140723256460179754858958636250374553834495567216992300812980219038159737028837769350175169559859421368063081782887216327506467832960641846454753614766692076802685427760363699954880347884795228894726599774539184325127546485263282612194264897931964186697410390204019765527663268776520986295213392195033140697549541750693646780055420211206986942989114823986126432371743277117107588972472986522936764943494434174499713932821763264673683187902471529544080199908741391598424490695723422872253897515008645545093471970071251363274286415334118406371427222110507744887023511435218176202786959463748548028894291596313800959395086580590144262373360053480026079594593056658799638046378102496526183070096643874149425542059238881475230364672351610812206431317940109800852875963414332043462792069241304285845146010011436721833630336110394193995974897734830111571120520968907949554244351677062123642321197653011062292509485449431527085857717467257142194239839616118593643793775344296500060568935704119058785266945554254399919407226576176387716793324727841979460658413053513771652039609044743089398630574753166520635507593552369796481096568203285409987721232959628904055906818861772408275971924394048494357411963035279383239056367001158252761452472863225044738630650432285000000068184796106648704262858911787680708536165422415282423961479562400290016864111828374855237847335756586360064418098360086864556156374328955580578531295589878840338591042362283178907579346216929922561458821846473155596488303034912333779118102122463256272832572367982287487902723761549948510449725127259679601054383745968649604389757956513791641694162550162242231025388960544157417417557333458996755987176652838749938012285666397747417229122116533173074850243111932170359712015560072099111860605913912438175361384380088520886481640389536539383857057507295163923265010031866291313185101286225182818872644633478437256503960320662009349450190362313430797000708234194507593776846319998681241292321338181647639568367072698943969797766389531645961399394457825773165958824666325239721084737288738479982166851165540513933176392147870919587564486026456468965126018021451455796302359859950908136892970123445441855686171458685101678680129216091632104713603709812081604883971906485416971497862105068965420399845543461255227752130007822787566104223574595960350263354045842248066812318661436974579744336217355475177112176729674642053445419398978554695512830432538652173349377704264582492659435965549971660334357835880442527384811744403753624952365344661420233445892511562975860731653100430907762126572620785557435028047588253081056734853619084232507380848811257937832474534732627582019224887227867508660310874181402995196019945027934024371284575892165789829266768014639498049459543916321882236420479749007784614024942311413317849516241818036856822759190113629974924740260017719871711798865667479796501814166478184226907401043835173316058113294656628709764307770778094667657664111075577778147094718963448463608045615579325132479422394939640570303088033625227875656786929830989530624670792608908031686377974204262097337649926267463581357553415942590648673551589675960941662433851658000415986957434788601158101465226803853279377801908384719408860608925371114370338217289053242727363783596168380642105003118240113875602447833182530508042172406723084962648489680288846932586833973890419478032428839169604785426703536045563384807927182218081261568537180091154872296841475891410090735388496187832488641096157458721726531139206524269904556301837866613853626517195951652822286080124689376377105613369738014280219368527661375450147765072831539935338259654827979749841039156141309683111366519962086917670683497260091072629562778622796562033632624273346743240508384510040361406101478375839969143402984518539603507339537193742086363702654649487235219364389384149982920422885505045588788789664894547584661723278304122949041533767817011569483303217467737508657694136412999237773479150079425849339880861436057423589446997948033035946607040122733868303438002930839327047728644535044580587698737909782581163332835594813524355822919207675056877496493006813876738379930673805269637695648543692317875433162373539467573139823638365272059711747516729106548113131614205205442787256060988825612851497301488952086313523869057007155294314009050657936989414989862831489090758698970226593242036164303378589652665835855872822236529023202132925279946103234864214874459171282719277128348816464373905186534228739070765943884752721833486437760631520677946118358115398182295649063450095783161052568945866716371230663903145090065593931786312711813635378700838904537687707767921702153349015924821221530058042957782076847449084873330397656520142265035162001412483036307254367201383362211447831053391108067941079710025140010735732062284866911302959147455244926080392379186855867186137660598603281020491057767629434808388203542156422190118220735509435120639377449422561289616310046410597401096400480548752574765040013868707329627348772680966571732969497670268003129131202123970324734289759341533075147317669433822025870605848819584046953546308956088055067879681307804732458288638638266039440050455256466647787376003255129396483739988240488818287296921727436562206453999334056245800897087636407007917141524536913493972515740188194739332007189269561648003765456840959970033695988326813381258110236117879989310562305358405159109662246497665709057116305969684573505607646059950007764691194716130794815773971206095844466237344568767667377485944835631591933986512770046735326007854768378938999781195701967200060502671967220294838754359091526041235594299732585164475972639683050791351747981247803915305730324669469049645009746959494437368824580608181977823887345198086962311369896242740155249162733630984505584682064138081085294973516001902545892856107913912884558510345700076954631019864421844345199448822975275958837450856542058873092519382524765893265482429274765607637445460571835689461776570508812593106439412756711398121118389152487954923068334058564284203226937041425377824255073385518164283439234231844539022390783839851551421135984359020304920758353037576292781827936696589747469893794083362990304521555575074408817992006647027106594816507642397454895003488766007273995368269385645061377489380770506392660209831053911856479930518861121806676311739765449330576424575797553775826216573400283657853760677631852563749685369568976940619371151008059133020483097773445757815933293014107646776699182147238818451790377217138453711497286088854877927728312912610233774513649109063032047952934694196190037803165465615395239955796062838493210305289923874235567035364173500488850348786924850952734696323974619215564927759868013138656371299941627646949672565330938242422638746490364834247427390000287644663532345597452085055479462259767559708790257012126382765093684486430112935787804471909066947764887557302678724474461021714593879423454665650675651083870290944774700471897073883153327757851850365441349785994903937599232695640782412879359644624139917906260064873246673763419388991467143638252814436896108687932943434922589563561058709326103400897330064170153290736368664632183316693046939306764462947245618863682857934387450652827635316875481766286626081074526824499595777251726118528957412026637861972633111361948819745914139043878120248909412634257697585754709861478442003631470419488439302689989730609659618165687043056338804894358734260522544604815614904998273473059443038838389100848506449192241325062722036740229719279584599484275206683293245571485820996642231474044600608229589606045975346346677188029193497883898655172029608810393327535676573712595309937758073877403558806350219098061800012196533053456035286409639105907001453995225818598859048182870782439685491573972879891789367424686471917443337765275040047223695977993988945703033185578651477694766394404248107630321802580133644495331452982418007392732844639093037518265570415193366450127074277431985141054632282646566062847416557820874324823342821267753688666629262281987872773394309428686471401314526795044318241225038748130179351871728301491519056949255129842445442305384114726869726103110746676677048291205259240617178765201690657601768204901327656263977185464335384089520767959649064202308019559751480280047607478590922722404675058271127414725008671296572545287033234160226727549095739419998903963649340628925853826143299699105484954876410099383093085024812076947380271583202421642353934483128057051857630936575064780962799951680004335247291635833909265429635301776433317949961419043161170429237164734167016094821469604478537025184788279578594667071080539644271577245505280262635463602015895030928258401766801890146442591621977067729529396790555238324946159945173373112409070789107531879659457766518883159966613376366556768504236742065581322306125821142829709449552734815956400963950443173996622801374998975046868613602987184031000324410873878243430031685556862149612543941724939527859211637246639577930616037731372833722219696456654750647534211138719773437369211185340600555592178252386678694927465629074024426366950042153510224645525967569774649857581619535993470845830677640415659375441238746731366431530722713277524465965550415665940166514695524932882675902088390175186205401724931158008352984401129797420983493286627934750174954152944561338133162074866350989310031679447618869227540763308064351529196864017624143774582272745161549320992884634173319268059726892245205188942505262131986985471805523034328668521360271167817485128966756012484622923373338869112083630955291924143412582155368631344427821361218141251588510013799704052455367075712857841401787277767225917973496422316326136031156288800894490980025935397460440886707394095416234020189780346048412095892828582562360995767643677170573358358405788139378351140404856464594462090733998518616527733384650385127999244214980073864201216062557791311882569619973990210116275781134854163831985035947976536005474018426484336908500038927752394354959985809513067985104529779816282228646040154093910502760739322706868674313003745151043772707766187459103353644441918742027723850661638225808016856317315384425004984610178856792141724846523285974718221343375893615028825185312084123575115151204687239058760007430989790079318594072551499885809391305698137074773406130438796986730232221069685748088863971150407672883206643108537359270626909329931916701754128444123885780348202585606273484906860619500664309772137729137058295699676582166210690206629120430489137458654083951796173838073465727309748426172883895427986881041006463995172578440551041003290530576636577593275204198878294463244442847141588114966050495609916591519604329131589297447579309916913661334741678855871488767396059754383009230136765201210444295195450692514588759675280423620593118792481794376336421825450145565449205748673801934019480677512466593638620538727141468068574880598953661545886646763964847280102838652984320076333417338647810197565689552927689990612907265441102099553615103930547919457537226614468034413889998984567376297213018872752999681696526280956652660186865051778081121338162483184595274646847277544152856320490064783540043715058825205191160722449573204890761337172032289869459346490617985341126362491848659119643347641344243714846628838248474687922579010268916526642152911732734393524253815157361263557322524362209559588134082573969259140116620649424233535305935883324567043399132049145696741751813088857754553264775745759929480770276913554241275647653563551789678423303036188163936847065179911153953032173331394635952209393629672868187705593559346683908646372799374587967636489266737381924840207960930575297108688541896373245660851730910972240725854688180355099756386672707890890246351199845348468995527088798081632146013806871736559567787809242594687643452290036183393469004398389118507712411834863940877288216955712639285373939421932808497568820626891921611837214572922018642572121815465593232528906703278060158884592306181130420619084934682376188293967075373974488161114732201843278419303310381714077525062609697748897584497033136947368787637396001368472387809725426443447264564076072864351772250251338654575935531528929496898269576500500188528404777623701369088089547055517903144254492159799574750545700661776422448950893567442068984578669895792512445580896566093254128124455780895202007394033518626316147708806528431637986819842999257179462546314461862366326018282789492133330831710687895420593691994391483416920493950759247226539096209854927517581949078496756805630680270444096369155793051756397686537492643024573271700260287629455656117752159978013102385023419606387962969678372991327375790300575347976437734945341953734246539035298691403088110834505457835852077780741758418404493098161543601849138654157046751291854323581667174697852973369017263311814272522956536433512438435206351727338114331484012875913594513763269801063564516136377858281240734905745143252681743305953605345363583097630849376187861797397638194842254879161464341129183006077596403793546079622567175807674823027763240198306575156038018414226735696020473145674441224661188559022815198816630051918832317477946658810660521293429458569502127787684616933492577619296514832817971655079467683491254631430838932199013732669635139827151139193536969972796444302038909221350380106667782096058923428954993482419148429006634991803970449294153129741117261309436202534547351125473027577622414447900677063788693844221708634386657382736343774480279253314831488467204439350279983859933759285643894574181830932202703981996236755060734762751994620253774458268686453445718211375740612169989994369769543396432350920662838683640676850795148874522377548504990585558768055831240524952472469912562178977814805996346242297442123269880985729395506831854194821399899195877319569579373024754039608676838558780717908309166072803077765541490812714093963238075340688696633600583828960157691801652144966242985268429424906916825853845443910486266439002257630904084210624618749139734347504300840469277045583812268967770179286386370424107124665338286625641421760418328562711049093796226084176262911306495861558322991034221890455685014752178821830836518295088521059425366221557593047865734498993743768406808596547609517251324151648523772706483946630346425387984919138881278540921188764271893280014618264350453990742817223401110970036486569013784068973086779751159770129312725229475356732569056856398567915206023085640581786533185848615597305997225251927343384766692610687958736220125859369110100425571227942297423837860165763314487797742176785035013041718946635806856799646507233191134124381323863665978113322477139998814065509950895372291490966220216098349195617122965761506642536735342715122087181175634785996981376692910859502089300314040852893135312078564758408810368862884061958816977628365645285889284899265781883937652001154516319885851708646051583939472289274894920944916279356143637681519032081189910718383503737375576987975882149359121841773092018419920514400357737944871651628001289389025740203176010375948368449346825627345851273449270081038777668389035913523481338622051971055515878360821383663415178070933488052677833334637076961638480296345258542757136723147732071827303814887842937506302648559355945729837410522045555986189012356744753204492657458248890349672337455359533080586741922604653934253263465990215212356529488259373396730816583772910678461735395120162922404311863451043511348749310279321280204969512023658193689729114022054921919220242782573032711594651847845369268985570582661761911340785397839821415771639895127417057571184798164619183379085564387751108435772714987954687247175949778075123854392989362605086951158903145305326213396446445871027296954811369673074613635624592997988962331905707152737224079527427473120651662620094299913776538751251611238128946632368988226638292331383739980121075329367962374370228421785848905966361913419636989250989112284815971528179906218529462520101171369667094466120613620902292006970866420726327526880259915617229660724973271729648009176889963706535690075635333465776662177789082304855538481598690155448266598256426333265254337270603021267151527126825825349842839340838492022644769377321427542118190791640248301287293675438184035566675026675295903667097318964119767189836230960526679245775708050511345744172268715410045248563614291269651110849459785654237245321841193620421737248515560721559348245974295982735665696734974730244313438289325045646786756112697598454707781967175086154618240146250362205637597515639191750913398280260836498374144456328874802496528322312054477958245371688725501100973480472487189599322594395552471002191500353301856389710692816284294503752977190985144769942366396257544592178501329851087796195906716815701579476735503021520263525341622987482997270816602063268138290656909443264251465147262579287404158727112812843967257690057471926684188088044730899078984829217890576191186463097734800217758836291703427021458063087296101709862140139905794841934744871681782085321526890129987296573325252191929894374083456248065918154618654869399227439946438017475385598475182763542064352198751624091931823124690024140014928977592749751071696621563436456521938699034219051214145086072110866700879640150675547111813603100858310450122667547168240909438700766384521249403001390948340139113931247433677559274927804415536963960930512014176245148869568049560367436599792984122819537004222116595811281319277865987772836932650587807563894612278687201662445971379645858058244845003662855362690821570326561854367535330198244392174929969533552869895403933077961218186081136247682460175968097871271869524463815493247711168874251750264471996100599906839638120930508000495683640519323248476836486168077558685561234433656792256177888120026895380140397679884733017109528295431218147397440852248915392462959460502022128837586381963346021059797865624744006986052785958480940987021925391667266344553964861280069512637331204204690452019522772554799799780602013286024091077842092438459362602575337876109868634416181669327393007866346599787692019789136050083569896664644202418820567036287317929158172022128081377623806544107915876334808118323101676515103210658288568525613692856097617450555914821246050330148532820403216939178739426816780627644286633240524993381567632550232003054884081056174091280606730920520878760914083615457710244494596641269931003283644700593755646285874600509049247379163522614197567945722097402741978970159893097336575858961869287013880982917969518992126552241419609933572873371770819507387670872134501111939176582472923481760229511907137410366732527152953104981579396654985873333916427616906300123819331252848099475759167877205678053319824872052723300335724437185754690015743410216721419283900388372778176295618092688682662843327701131840512546147314999475325209279349031440891489870181197311698445170082668822672525039917139842004560037649468284070476361490114060961028580476643696633925342644544878453431267658393262798613428511173881734467011873440924429505949351680760146082525574848577545024475668204218452092603153820570690811854316120275573625397208258964300914969909121664018633946192569266288986049852659480747822482657742738562423116131873938473173898934017246082747536309638726887612927268895128005282057128654722733613116917626014090795416187335201644077042684774314090649555727911604409049587471485374113570967490433807056362322350634248726958547991617872382003609471801683904154805717725545233692566268802049383419011035891559494485461294399207574720392605969982178218410897530409190879485662339940949830837580780898674035769730795019331523932421177126361719978343719914061270524751925111038065531233773954236274294499498180080499551584268036285273909617200368243584888482934694769013252800306817115613634091250850064509616908488195707364210222706742676584281803696095569223333926686776346489450339787039630025780273226946194770210757171301830666644808085231477750540705858727534240440716980623419437666731669498745708084668851833577936480084521409222100958526561929158769001122618375491281107196690372187853059906370090055484748934824191122719589674192210418705084746807278920073360649145060217761093873738195614057642574838677082866844471206048661146378028897907539612788332298418629043939174752168786701985284092725906342546661296369820018405888728352676292437630489212939396203422899138525089279896984471424096308456650235001286958992576935513507207551252488821996044870145314811202514219115015984077705148587115279365345408920314126853269566789849895055861357444163106154583491873904756986624616147686362672330367796213397913064894688059777762543426331241508084963990911392402338518190190810734866583598561631652257448693478895851927074409383797559166562654581441992606490533137731602570658658464901028747837593040281337256524293520903887797090964914103359420040715573474438230422320538597117870902833266231015887155260007197056180524926659772695880841484573310681749817064448717875040637716917492457906793230246691092054684235470009190984652533699505487788388359216290104850615499517152756134865675553128875548922075066372126995211209210310878246732805843007766397323001780306049843104342914511414271172568817884227547001277036535982530299046749388953864229340765586085342136858138809000624952444097949722626691631182190081751754924420816103207376324890315901754372443310606457012421347995699493479429668567170461957858215719537342062448081887662847618616983502340396234664206944913101242307779080852968290205517736505946197525225232940054597697222873991248673789240431448537674050190937517068791329963998698320536093302315522650906397573253948269511312289027766330886876610497655859875326748692809210203429490848205961393553442056779315255534214289512041408523858662343872205329901155084068297438201549873846348106018590490222997153207998616685374086060206459941649200358876744964023633085521803875328412358404428588634380111161102353256201362488370667177710313663837129446785569914979140436596754842821893842121556572729790230956758539050408264361689471485204281852810233786780358159824652929573620188264307925984906117727982647087618086565545775524273626200201094460175221385937062115456371489136224793525598773833952184195061257358525784355637090057029187788950027080335384904892048180843586206185260810364567044589192444260963217925188768792150317277321151994774549947655400943544042398491589552915491891183033764386913482613083772014349259351024522446329881528547516055645387082375000193767003224922027362086372082820127169054729989707397537066177398201275571931457705699662201744214335987869180399602220106339472375642032699793572436525194841874670113812528596121310224089156830268957478716237137344100892436620645996567979758366362673850170168722610948278327028165373088885779968404177613341355246747361717405263205428711960845806584462501721620493006994237148361103731816367130661987762950382887355546553018271568253315177331994284453974793345159869765506777032186839317508062241612754910483042509953768522530688038123565636958295571083636956919364467254160364070647456419920077802791656665985290894208603186979917492920200728935639913140943516806745472547732256113831797705022039472799627389742760420708583561297666555873202143968192390085793294726286868626965789281748859219582934050797630482013459625313956049386203532494280149523259743181287377377199467924927737771748386560276870101182023310436230053245170315638395269281434115940105920460509289230974879011488145032437469518900102064161528901290073365471273901264736241412782648582841502140109402905701625223791390465012285771642918047241919090583424005511105269422645907602728830273249272125991633042726556989075201962538760181700121895120591994822648344776744628460731009017543714103594807544905146409669633087912558655180834455203805324503590601297053194610008255553809596483239322817822856454119035041579795930704184975041789656910325770996116895440001377880184380246021385524790310422897768324611818656749592114553646021867200204255286289334183222274339832619577454098167912778717153345954492614944818244206022433812742771299035738496061512263064545559703662624536219658702590460118377647741495008653394735884332815905381783498187221583456532778473246451431485520332357214081092339993233509682470128276694901500643974557283806008865244710567828939106290124433264058555501415207691780454539570486769901200773550487578757752746030966600957464947400957834193508354485951607275449205371483095756954450394166520603825083574037641299590273432411835055521889302063484823305857322376987028865744616227695779086191011548399589705117557773611770705224402460523589819168662200792567604830765652431596887411367948230590077951150158752651917381600680598952532740998338482034969945001401387533912360490651646475815773705895643569116430978764149011400736266498427992529228259290703689169531254371958035799877980040877234036016157328645635052856114176772953971237452678481441267173423624846158561394144435410897104179475366323200950846512306287602478358536048135527863746846387973218713306691787706670950326768717404766148837951846856872855941862070281674161596848204917319495544589888442926310545061487326355800799234153608798550984496938510889027593712428162465273061381385163431600447204400531463014231866397815936377142722428409572596495524651050534908072953559391786638640090291723996062192773009554209000321246477941391689493312063190961396353949205417440283350922208438830987824953450481021892966159410279980706936984374619891439122657925985275657735865748208605776574710194585785592769365659930810546468241127569569916664894374085767033220428529400714273133558331100136880119343474607908910429478026486160457068002219616812600686882882397484572685530597229295177646542238755133523144441842530598642913985423966536820735035536481379543049205239350203487699567788822035745096693649908524390242824562442060489760327995946187276613033521428860055014263642224067600009770612466144214554154010647086649627783446825222490689636857972705174884709427957099969622915744334436925469830278635171037476760842699614775481835766127315107806370172426137333160699904000373442816457302013517324344518852046765609672037613240298405884423910058000478191092059955406589427454891217982980920353828417609937012554187997754772602154409629450463192415799156532391182756056271547594890590475271338732173976519899591053823745815207557728657654430739221699281573082224015829059876485499767706151517452655176177613637276620054352750967230082313349506237157593056050071560823263277564070229192127110717390913689077684469292943872261141557258346996125110371577741183803172848567611867312257533687682863594306719286541490441224971123183570164006666753704452594749055999155191164069107380045894813314078189212840316522220023167597670151125981306248825394083737512627143040617629014818768469160504167740928670233095986851428855953180466094452996574523736808970163177210720719361807107743003250371668903320505350094285304160750153726647792205969062602092027863995982325201235582630870411538959282302123391031695675784720105884220202990771615125058283515861984814106176229654415977130194572738231294505113394108179165755431814816124090549038177375699351333782797341461360968109028319856597568271135236270546549064889670593256076762139838899476679497520668914745638094945009059456189641251325371571735965549451060864960591945763388193439132342189651724747456122480331797363896300023289453160163472826611634472788308805090405752963021343216801647632773031665374863017383983591839393822477296336337856224213799861110152005259154958241342474686088106720300157498162853174477052195667083045232345872085745048437274251164985348809953072523901588586977541437792394275354848317054197851494621485613790013830007732672344184802879336577288905546632525869820643476433205815727329477941908377772069548352874998289666789488412134422904579861250658736238817347236900488710677639944744240899161978666792580669536024910824791783213037057513411144956419773380503350409372895295508493772759713131890090217802427657123495827737301378766571844719731773626880153639301854775487483013961368625669438521631930160567672381150369774157459530763814430404106475982540345895535055974148792453276430729836940934227963513168323840427736063923004653615179340722136557890250000186148502493410530177016012067290833951586379996674272149099251450367876366531097120431183116728051704038093487008224154177900874965088242284777992032873445005495045481654182404589744190071330223389582708673904912030059114673813667603234488418363325613135811411852575279866816562250469236333185874422075858795124703340917205172989130820830505030518220748365846457242789962083105154921312996864366124650188062783569862637609851195429841346360208053317430784530740974315729162974965388169539863932645360227564263223315345290971877285863615699341592535245777084691878942600780140821354534510908996221750947944977039682909924561091757260271304862503239859039252241417396942200986726290059609770455145437124540151006356184771163615357941753055522790090972412739881125943118971770492375760075418219469964241521246875616898370935423924007829022768057783455366832682113052709165628121472126258378435906030902668386531679631636831279234785486761985068521685248554173868966295625216537345969493154156967315848634030349931185242098886218688141286527819387634609692965800580632349909395511138726398553720753295850507139745176673744671635427400763161654917162232993276993855305456314142830784998763051473127968360343996883079176699108790453891402064580586128851405770663182657751833555894382345562581349014952934760998598972981566518761632168135884386525857342755686163645026991357714163587270933774069620053599859057031210122944606715103764610706430641993412466693637709005314047506194557995002408664076484757966476011703624974203061956058524742338901640946584470377187244331510924257918180252670371287220059165662355212499464102677197541116727450016436121604474632173593442719761904636128500429410858094624092678275900894602367010828768133763298836788158530837429766228806856788951802278562188305732773350439483027735332190806808601415917135333679691802160158976158489509564180302417312843139655806885533678210089746732384092588809332149388906306590861006493918256303083106893766961488733305316851911256458769377889824965428710362533655348034326679026841038960662939897675344132654460561342368705722860086173749873905344581514057313190704664883028931870435282048338016302604083299732397888789099953799125500839042466339871855464122950869546526266280618134581840628871138254621375182531354263683076497599204933610952669493855764129207729640662388001287235391834429472738494206428022804866121149383343228036014169774011064220456246168992496808309372498838086549015500636746990816083297868975090706932898768692864270161806779041793292182651895713548045416252308472254505465216118492527282786394187374211138243400278004239044631550833627495433274655951797327584092336749121694386717306044760104358124179127482236034326652830070007459809494811018752415141833301763188373015199264693547818523570715503462310274254762551778136976553817535400328574156696458216747795858632147005829587397885584033658256748238337485159322011000347967714237408150818810023135789499468268070962366123824131472828533650705093937130496680791518510726097930380745383391773777833442554008655818703921226393630337835983110440612145635934054423240053827539382145157975164657299633253484062116524918227978758424601029767951410674152823430920048213596188370382007519644486201157470599982038234829708549922699843055716821330475322678251615099699622665558740867347674174390671811864963225892926194527814130723832829918493455657107804626807494028985897735695936718844844349683850111514772993450209915150665812122274700216293896044168977254362513138891785956114127557873053513367998170843018189076496278447889862943775478784480564274833573072087382779799573461108039785359393496600040333276930489100874915019015850250465150677757035142805520647481437551358268686124069082671988287450866233985222374978217379555218112312028035240314449941320436434752658038450420221293195800636990210906333934752537786572432547461301484052079408397398177148013765423938087135415971070352552304507294271676962556200163313437334324554306383246672973164453461050489796630047600781548901940394412495483294041542430604734159437250934356754452749063713952348578612639356359674071560973075089421907523151566395714529929991302313311482155107860769414526950204927990740601632525784147719282366669608403524797522446106931037541900386986695747994833737351258037143682817809659053279622107216150985683698247869192973237854592684384532197255036900101615848482847555760086569516053419513207265737456276313314068790624936421108096517577531822961585199130245219306854467289333086766501124342759910782414249398254373876687842651033941620177253092232881546738055330727220067434434451067830534176321084684152865206210785326151672870198535645035963465047861431492493898916642947860944649495963268034950757808785286394160168051143469500088122515829872651755160216920765017657343386856365559440326969385063417630243979334520817844148596607416840493660950584037246248191111997013197624948258461286729500051555048827096284621221742701671447838982939581382243382197121426944183004318886040800516456386776700705476046922007717157854098984743063372358822438335185635149201769042832074335369476657528456230460008171249598816900967378726212823625143604015769564328773432635649316694779215381613159782529707801036261602149376441119407113925412026453938145599751544880655764130580210656305984306039150213590204283606933192691120807722406077002231789537714046175839453285748905481484838586283509084158368328575383587743594048464376163097567834966197253956378414036815190778325272971863472185053107505827671287811403745033546263690856240224651339051818841111292147219757309800164747969898309846012735832039135047224382830468125665562289722640195257939593277675439878256480891642948107158006580215307401384971658789281364219135959420043640302857014477414974011747778622796260114815981901328896113202583124668769245004891867734966313598226154423522110360889233642084340089862717473282296975739654256448873394401954114701403847232563087126132444777119839105638699198761075114643014093121232875709975152080309882144520752763773663051848829453668975785827597544899849207415182118280545246201943622245804456668470628894599622612866269989719238934431066994890583451352328996684331859344002010336875031280145379022251581507790701156021227255157893970536292385242846719935328325603024243696610742195692518471664882757289239996746860546759423459028505394459771802452127614600896623023128071479150862253539444552950282543206033006438529202505502513921420169242104949463026350910341202657692616004417482726299142550661499371056330149971605580275239137175714599404157475619457517250835880981609176226174855244813323483752424143055216563722558472857401540899493276611989241027180596732503011236859703517456772756782459700880270825495113651228146323666319142524389169001487423603414343895187023894508385986543987340618625388399282054401079330602148864913152000739700250616109609186540654799922678891205834214430912315728729854425647374298247029791817807088335262194582162226077838379645363747490270935526713145056412190185320355903894967095648774077577213103327472385335178839308737230244112812814191687224293792011897213189403880003791270102856310012264034795735147682263380138968192606778213614306906159860206865533432920163101069008101513651858201468689067500836932291207128734274293266754285136265899716330401225050312389057957195164161850604084024612361617970439739756521139580166408312431505488231429218441395433537270412288695559288848348775277155046545006873003365924116114228746720398216905264885257557553960878449862805925518949393308459861527981424813820139177537559767707642391210705149397878881231918361416430413722096776227590666788787620986322699920590864637512033966592510846920107805715391957670074554719393638493941068100699880498113547238552408868466423276648250700521439969512298573767424087429621721871398749825293390241369021587066875728290872800243102849714458834596592307927995534492867522366814129144729610995485354377668381705505867300708950724805805507409953727925086657171840251732507454153391453739394845244535372727799192268659815974933784385965742256824401442823744981900792152156879145787187187815498922546124090481410127361191312240765769014716971281131431012208370976618925173008466337214423235290090503045103115381450197827770844998821929346224890158662853057284105701466009439875231834185961357277385608156071407271744563290662188119373746526434925256431410000051791003463571433766660484362070899161443000246518657383448999137986752725800545340891180829665591535484827790183039472536368654670055693725487468160066333820915628766223539303618190014051438834959081430805128148162980639165296605778479114580341736465589501131499225539437044552838281846389988480892365090769057753564968552539667719709993625523158640728170640977284013598909836815810938779897279179827476618933279486342582155045799292078745199942264811361956059619988102786021685114084976614762600506706279745071382913180711680132768744141352666612199148552983837679608253016837357293054507681147637699575088885815244395036245798887121578696085037766356886078518678824383638849182440026542566260798842806899753231313569503138061768433036522120531523090994095135341711300611538863765693020046664184701374810271196806420566145988197362785909202846752191012524919397342519664455670524624834679315586954871948252968799837596755722636964260083285987205765250760901562291173252531303528287536608649440854605146693983710192680122140112373004783915081123723845980845526286226957803926802931870802526593072820130513513419740272691888634544491430948615412708477944051329935895955595196882700658447496819398020180376604826215689998421976785571597809163007077276273882062885459806642010306603100928541488936694129271454576625544351494545301914728912495683675780047308120018002030458246229620570927262499077444515842109308928096716210913341625573584293631202451507968026547094262516108857241310353004461195766525202047628022267315288578524723283960656279321495550525181227623216641426933257991823842656388786069791360243781724044627151897764415192142289736682770176538894278982217991118243218341033671639831433938250529625685216171462803000228787802060796269728839309663338926307751855688071234732356489404570364322528459853773572844799509796456206893931998617590674900710124458686065894315005548223992260234828229501214124702836399115742506822752494587712633000323209264011316000617791675634440468145498377408793674130961912730800312538754643336339678075123642249483333721168307753851482974638544238175931748316230729381351518861079917839776348757402808321369163194393610733741195969371686595059503844660687514173765466355399931591309410980002491030815888399681082825839654530185018403136806123369970925450768989251115109822452466037766931832196120268431955496971456120298772773336791569408069440584364295179872301448158818122145636275882861457815242366483464339117418029263870806856932058882616429787515299890084194374389617348489651690975899222654031843971645232613741251802507379279648561899747330533432209146985630418380593886951743003808468497504454872897545171720194876768794835696059495503299249438505202221591107013270833898452683217575275271382513252926065491681977757771797023908266387619257697618220530262674727135017767320791559766128114259969426895646171822755730296376840757597254804751691407716257159646892322851414820820736476964630449226450309340159976229721365941898921408728642166636405916467889146665000003649158413998933610376486221163599323993094609330066144823003180483550692476209332649984304322172991269214115917174491253221136450922358888797311665902982651939866306681905865394629567248717755414019147874641968405550336242974809779445557860591180264060670929597651009373774840377321065423401599444563459948528325843097501421905439717035586999480352856912376023992257404960061337635805269085457300565083352975287377730013775597428495909969259316237901600745236729784942066821680130013949372864792421530174800838786106482783636077948043391658732612032610369814612643131402488087387175373716375228845962426113785502926282245016509893942592350780065654675715087363675072550848887563955099410130854262431980240562222422478551486859278593431735582788678125025955331474005314611948359512724362148156931548003774655327063620027439863867629582325276260287505394898106835658434714003410646228078713697866277422406759575899232219988816734497542266056696068371993623695299756864389391061113303877894463343394555279384081274271829178127900810848936463396673576704886286195125632180987526427908807127239358813370991963935576789674326813132853924388288115036952739706916632601646320826062844514935726013409803504249339616510225175698696075640112087818210087366866095398393620749249248514312678556879526492155358280185604970471750969897721851778370502710102969260944476068049861013463980462022959906484632114523750233941242866159704671363800744999717022578645130470523445479932546914420519199264802218526470861371081913984971340505544558888015282624178438772942722805547495694239898907155106123979698598590670178926354361376250434721284113927241619472919594838181566268935445682179226502617021729150358246775017526845586548935831535985630458910616351707363890856649252416349404459916773505919665464778243785343449576003533480318112940622598904954483695088355914671743903418475007314535445393034214829399900598631039812215286916049179003620806264726914048296889279121995333316627114633300308752121860822055106540142461109187542923023481535835142914528817100764419145324196378113603882243471749210480308594476411870435968229451470942700055468028160699386670448550283839078185932072301383179262642716091867643803359990801831453035158957102054903744910324789605801555733953564801301643423715274364587282186339836794973185742343244492696162841995247221857163441690637092193558397948271713315574494382766201931075116954695209552390672257702848330371731129688397040506940668849249433220876215266996873424148283241102752462874822074875731876476762951562763511039818497849489895513194427627207296126882151547625434420383559236989227176328532067412265129472926230547568014085294413468119805792810056041153933118335416441896624219785579594005299732759769631228067180985126499138981157112413950117667056809371726665243022035413124315172891570445908932345973276583555863390691748716825114828121823251585060034372738860910627751667934431463283464499155113525308195857061816723969915126222691460916550256243370738765897494055133464686551539355824999689766133262278964493868698265294882521597008030988536294316010788615781460825654749359939440836416677897976011309464495925609320483003789879242478407629007304658332560732341623387683011979025499214581170228756934352191518834979240270361452337840949015476549899291027297912299441110753381455403407637207789863454837304845017873993137509742393644411166633185112493388976547992956503791806289633859099090935368900666688201247704261652023309891256597035711947600801040910578618111838361940024091266870596275395044807491535714255096303296521379841945821089112108842077924968122232475768393959634393924343932624609209550156881360789980703857706598772589162024842377082553081029848638415465581838537608916761766800198044107173694668414576721084925099341609536225234285565580342243309565048791581624441554865458058256195869928573589314415775100835733507763755563845052269092587389901084039125725589963029718471830492835289097528035513509967721100180614460150579339461950705189354279819607870579615470196152828111012500713262522602793492745097886978726002182446991579186817769006085316558319659693276925646163537846578772623475767947721480090420195640445410710389756358051988053704716567579781167616408741066527933612855933534478798586207937731344925553875084790500515004980746785043940380247874459895315072780729509113900703652152726818965930597403750524140988827867593617893503165230509551209425051436093264806366162597161060633303821954373992604648975660678260280465855721249193982931559594891080008813515528189345615448158478526303458998551253407621504479970306912682819614293303845279112227421525141865218703645278327353727606601672021044372101438791826876239878602353855808475651447806960995690249821728150341996144726443023424849693700917004722959144300039579606970467154942007467454718290884507471825154435939625208202585226372586398893470335882908754386543957357898816593669449244344069115844835904119111170633154752986030890773566310533517099622934909543624983051238127352083720540548863614898008891266766193251435947582944124602488087195004524902534525405752958012553102233857129837535591837455937272195110211318273250882273868712214719589763676874029827466539293919983237937988005035901876500179172666027516124021674827788667151748027002405710868548794169118066517012488936399727618850504949757064035772047117827553859935868093459486989254717741908001249904029270691540717262811895147943277131496689382019869345870099923040671519322995655554753287449626062167222063965161823010824470235126216077985919768972699429314727456354096237646527759211247646943762455494098193366258745612136546191434372867058938043417443308808388096879832941279083487004078921849777061944023527570194978092979375937371466735078070800714283940788973486426304948849728789328546503808125037201012183161502867957069466345319873343070979644599065740934065265404758233716405943826069089755664600212223454819445910751455473475662288280179990033299653900450382717888629010634628769686135813885515070333596057148742391125493802628687194802867011931271647712296513183513938432323585083002098725457417118492203343547576253290135275206236142664759278979812553151957046626129181572886537442851190814605142555627249012686896601929283635013144801821414019134547482375915379729447261889342692233722243479755710267461584955213729494021006935537053719969051744185765059191358511580391628546409228705136937674860646896241313720571565210147082877921634936835670486340358380954054111820329539534056596031739517806052526693439952447651402884663894628550837484086115854663180511981418966565795016444636085114825675039476795378115651516771142477789706416483269727878159708710625178846513205486972692415767227369271882948630027926865636451567418788974418958353334541634898821478295154304690206639026929299978229450308489210086480949296392029414279267005146764192630540357682916689597447141028698752085403037686559574359610605385793140330713066326655837243726612141711813508494693610085003868781934598851863463738488718792536776643890751239390603024776443442480853529900915728713658717028400032645494687577295966746083543191640320780929229930511008249262635769271195317776962556735160999188970114546060720223476752734477416913570040496034355190842175199057898782305166965928693719703067061898975114423839342069076882001681217811124728341913920386096271406008265911629618253369620052485741197950436600015856490017367153626388897668480177807252795576660031241039292574760902730956153024550419832291581833148616125115503702642167899650047671118652177274521344228025647189819279574249437910820522521050605974121674163198843478395000722101454023303844013042721505286121519139105204532075902018969647356369316148134583892021738884371041026962726389423933397334594622585070653343454206904210012797061859981050007163207167500374882282595671370750932419396487563649888130228474127196912481615320163850799395664510303999465118833896410069566837733926546031182038873947596388583678742133426043564193275054003682836927795169038242489527910881427060596024376171825836959887872113809743209583609337176717097905836903501565139020682783712134578733323979394946658035294447493033805117885791409839261654979463819225318956329087638636498613541811185337422948033363629033738486567502047108950629341495938735500713545087245956143763575104296468171037646765803863172494526596808667453172020464291847386785360002836296952780734488567955147043494494208848844604813509716808281469210953348119932428543696068204474458018056899565670530231637679118296624762913081004147268296717173821034571683033105603777952699293750968374263300649949626900988025545994204777470687899385457829087904688277437256312896747826530040858885969074699925406081365420776902186891530134328672948544487779953751041162343361901201778596023695185533631676277384073546720620440156405052741526011754494261216579211366134775063172510459729634247846939309716474064744940455900397315690169346860529332314702841556091925537745792458790545373143435940115855133166623907864121401203642774248599548998562222879943884647022242185954515644122465005172015738073602419487288904745270879194778190932668349556983198314030159781169229922756423646726429382776125589918084434424686507152612148878856486627207611488158606758120066530587848169497519701330291714972820477679397328079536847799168243450732040853470160842980630606799897742558675053087854841595092202664412507494408816034565227009500146795341987989103815146770715854931315578283512876317626787302162531656010431039423684865179297642641950189364001613312169736250280953435123356620632247914744382025189021683323607949341501938639424002707634696365613941167381391655820138563485900194267814660558108985129775191897804593286977700811023817826438808126264566970588713096682579169574591951017513283096904055414461796274000432156459494907981136396780913869552543188202491516756135507842787878853011681455398164468393941158113200515328785985605508050102421719365243660537263280774217021109473769694200506973489086417971062719277245006462830559034904027331921071572045697651144715658284050493336484242239851200755943116761487194984915881403616289750294562018353748228435842215281953810298986680404870360972725781295267948530325119880132902428918788136892830523151246803783309105048261029720031730375446605426173224023358814756642855127018616293695163634670004444979146330230275264954902822874181433934355460054958225436110988474907648786684484210158939420874656823086458552056799874422819564895967190205291216498810132034948482626036682333739245470961944806725544884944095051458945014247710208295059237457562740596236592541846515119356662158112597528822136165699595258149376083614129825997308450622084422273428381150578762653424050027054219931087575927099106966848970668721797845305248104715694245367130300463234264677547266678828664519498770194148204461801080254174885049163478488867584662669828546002314546900783845978745879658574372936347488587924360210273809102901790995093974853677551785057541447524794269411002554384865226750625383092801881924808356485854043242417760197174806905029125827428005485715778411300378137189150440608377984536447469399835661521523871220115854008254366641292488956164333646188822030002228417700700606032186147209407963734769057847768192881904330371739573014811251365555172151689382206961236619946945951741567118248576079696003946684228016621521154751233701179664810125725210708942680398169172037409963281521844036637105325838831483710859881207719030677740501013387113327531077804722477427406188932187760827614613564190369336950685675668494687497745213957978143633976721810755330614728820718185116271992205391377568108281653531526800802555659069488563473823808289823529536692414247654365876778016866246380950313056243658655529525153286225683924911459570119676313053150519679044649504851309107953493360097234055293999522364852088587296070296551780821227425217409807506458460237037055221528019323991386890167204017780434971733990641326333533793154281846556634061860189054780815614379593268057695130318543862097130589148099190395539048275721944865355847067710326272518139980625458261970339919989305250612753664804746028302040438470701837066158577468564119841004625732890954803508857235840351520433456289468277251923286888390497768230061435183632403466873725903722843845351053751744677447184054519517759573331469742047493524309432432731656717973291527655827956760481974327273980333432367155494038852602316518346358118379195344902334817668385745544963998129019690001474803775818259868197519250677719240773314260819902704712169773932313357606009787984824840027056357908903004544414479922351020664504763062639403685782278938944004795280550688349828359287742755413982968040002908992811155015007982662627104657048542800046975967970147815973237080727031216687608126147091658868202956520674332714657432647999098477365196531472626216647241463541064422394654261896602168905150286027598379287924940885453470681491889691296160893590516291174716722741589456771291933847595945064169553386982278855637882327738134010063267059302397708623855918574570680743490901645064924358094612857973393908263977660986628913488049567426875494272799426553832729082406040532229914259229240110651521932210069335978863536187910475082024978919695781561973103511192188702384462259616014974989398548217443968721534436911288968737448882079345660455881976911417642790490910253505895363821646073489971716683744324921154852295833804545853063787008824542597692262211676242355665149939696962491287179146294006270434582912121566407137448272642908084777208234984664323090700603626722344031483278989359977488935549636124722927758944647876670895131269793093727168844106311077141562262102370167334886959839790857215058791463794236400213740871044003288170867798878938445523495843563825515854057327075036148050887621503024315812115535972029422516127094029508244990126467569371625836753761440414595650697146078884814935996367789253784902501326310552452329425157834548205217628366067111550297087910735752707581427466624196095772282340014318068289194737602721404206468238484838751728780210355878552232619098568110530699710197710044021265507121621558044705367673970797797729024796363118084112957027836185076117197916091177289542538725669825499753130052363123869611583324323722159855240992415270241691323701121859247780403971526575261115430484676024253820682473746708135348370329285716693699227023571272848416627453518356348553704546186091898402151639520302937496164735473140880064294010603398870495833616023964650207043069476031220564461925491374269623470054079104003998128363245116020617798206223077439662911711120257550062610097075306929031963080238421171758553633369891827384111822321983097330078879919217517636864925850042151328173926590319085460845362543506734577422624087388873005488041469478818990296269182850010474225184769566321168721259578834249335978201295808297551610406157737642874200424533580635453381410246511492882192836331547475061776023904201516337870173875570830292793209128565021479106336623796237273204848279441316013750544461665215762414217428698784374316522438948111212900553349793997014767697929557434183009269351494140731562473260819427402828934338771724906641564684084446953590974156471214574489290738226885547537875191856333360087453942476117286568102799688821569112363989587329100688425396596083780461577093517823336246469472744843353744913824240329338870726904964992345208136978616721953245737910561096886998361708333820167849695042594725428133583919587758738043105900873624868838781550812126683576332724908086323499532649066617646119636048154854256993059109101232731182698103063358029104950128414724235342722427307537683978880844848693624299483145571725905505671778651805995088433774356105352849603032831190877403393725951946940320807924141892468244020424705525031883197587449826028056721340040394507575314212644476338709476916847759822310992232733306864314877614895057236206625418674275175041282001766924288928911759840069219851131485794530740456150540676021910599321690955953513652464953538517658603069992559772201850251050811822885585299289962171637306372657407892511574690033527567757950463192163176520485668410109415238213560997092650777383359055721435409036950021701574832960960022553642713282216516952679713919949783157976272948072165944463688344877162575728131000631210596249222746722364829480034254560839652358254116771668412001684968477995705191915948837615180992665454351206601069644157198373491502675370877859543602227084106798770012273192361788384006404933477234711292824397592912196361849295322842901008670503014469113667258770724027103729724242136006503424995473218358497014396604423875626173918347533227133150394787077745001218379104043643353177754278566675078323710309792174592444245120865661881063138002503338304978632547663052764376456189723324511229844766633252373352577709463077856639487527223381564681025465209209123461244085340765456630883312221956676169739697046559306265485393738981943113414897848126595416340745725128389236112512738338875412253845882173201374308483246351598322221743840937515063843147102535110430598786230099779345402580331374515181902062034483153602572836592624565265853874608234548025066973421117914919164995126754146487288970688922326433469543943730778837185285817613665332750246657571608536181320030529937786989576427811244668066262248437521918568933899567904637706010957006384535794598198992664653963297533650474080111427401567098497143524809445848686339748729545985729027851008487517176941037877500179061204963662720742526926014387830981535059366296765136403886034708397778334193855103205792405386511422678816793715344869691353018058601790246571091118766306293032196171749168717473738817187216231610216918404528677342995147837754624483040301903110903007693821622700236069608332223597486889852431538943303840839548387754806602642236349620281926738226862247459431722739764908743487824910609651073135961125249318541522412345765620334566295739236737444849490152648041984614205010798020968028679263847419363143145886984109653591353981735250923160598066615835478350751139965794201402910465233773326507413528641337740955791395564683214371873049177651309416206277971080639771613744096680277891929403035328128016100132480641104860936416096456328070687652414919057645211078194518806462031535805710086740411750355844582507276532635590273867560938386856876084841037896996647594150421208468914703279035647725745341758090195045134898341744662566077396634432803318512843339601047268021413363363385396817121482850396915355802911020345857291589571016413297762867481989446325714644529644818730784874770976716797054498198737454086711143704407318271062431369954959462020788291102217060964583699397126541235808624097845083993559858031170133733010830457443506461626931595384373250870440704353327429272550100189158520246394435568832512539395343942178067492301477520897729067309106175160063014703243040286415950629930234174797488059531214493279274224574090619337760522690438600243266669230913203822010948640184037980315562910211647888138804350185484759279421619801878765911890076633693299126241130311895369071285839691947335802782022769509081306315578703927613101711006690655429912479883944035920367920576122754465515130407983040605093382884830648167764954145787537094159199899829107951596668229488796249476639984143470226423374162712991843986973301938947662055230977188101386485067319208024843386461962779012836794475765500140259340050126138088128723371654925854441578971321414412815024532779855506711983226260898053423372828401538511197255129633575076971969579611194820166535865716196546274320093252098325794126986159348705667660923624614200729555570054593999665047247038292545021408705286927551259067723042987329693539472009578530450063870306472127225143954231059652538482884586599996656989875082446282441405110636802783469422198788079792403267516350379184279656589470717631887346385036803056919011829510041005210938571932190108994601293780042944139731483996844005916915075871842802329936508037715444037914262067607381749905824067046117974096316584452919949847662842759373027356393927470380340056335342425212535548627799637812178282943674866318666616472495079750326099559513621335595244997338247524348518816647416942928470994805660030719606264933506298903834026838312607957522248921513240672805429325259718004750323681989963027959544919236633785934011978324200638228332940775628931230900647605640221161410378175552665063283981578298096479249622537973429515330615462990778505942840208360130759166815945078513868190982290277365360231205605671153419475878391777961227594072927642962817616431855237093653113756746013194587384338303182562981045700601384813654669284108602162322295320676521555584375248673484314116559878642054174013820199762962686413700634113208145503726235593743286323830613833570675469484325553063868775136076035642917608608115115633325131248761955187445209574771296568474358054748130839640337663920060250989949298221048695154473907902151291917252042501956369626761462798165011750567130208674967732421506754110673951076292143361267374037349576546478787476726676386088019275876924722495545512641030484681114165873687450492833791381392567524209421743269440683769277264215567401572939112805165781358635892085144075844794799869866026204746338082097630367565632971041241110632681915535427076618920513217691806055437631876671100546763435416546524408782319347351003140065847249998790846026719348465240134126496354971200557300081364052159866408216269015981443928610459549499269828856074797784413519525882688276113138137747527853009350187528169724583096152297807558269164012199329976998569204556922739278568234224809106634450962630549656869186135537519776935938252118745927882745796689792859249611369719271011450364258350159186579357423175839668227492491779974849011212613050619204479886717277191599446576584190841223041696436014656412827589409629033840101835875816907640223187213917756610248079286753235249354395955780729527489882036252475655928655438284425439497330303386207293782076197244960754141908921545627899017068112310249161882819449092681817891284826589433413269428190842025265283872034680409489881512424393953231204163781986323671388803520632433898299960394855667111036748524067864049950257150587634564061844988098978290307858432306234080450161283238876776771208606970555053751880867028427942890907727227838878339329449118728763394612806488197608804353240636777607789433249315889477065466645881172382444362820743030817631065807135460377214396998181275243217740824695326217121247791250297175109175359441096669456384986633249992731650830528507392484289720051707910538709179210052671409851325059760210378076538932958881228114719301076414734817832364694341733105611936176003760816560777269463851945105921325548851289265613258963338615882000067051966739198823854520081623898196221703618500568754587020135859174343219995401199607566331392299177083507074246438039934132929655158821778296725740707777985722930356894739726643689650012850382202241573246571411447605804061044816542597117318844388161776989710900857155827003331834532503880545190249037069314306314369222919467969200636178695469514126252712791495261447630735398098563118696831716643019270604204519974688969409752309043641996081018671211828445271108496000058547306078004243164758023830568798532542164123832775972725199433122750974837190744069998520510320936034831204660523824030788677593819617984003034107570879271241521726962887438120085838258864274833305154298663338097465528987785224905200284235083120012480064516118659707231127922293896138736968667265495649900340805855417281825430482383484088026465248733612070296217616246875810777127894608994649299981860422416059221366379799959711906395479639961325580970742534377286190404413925652354354739386417181133622434180763337712183845979223122176325185010254611702987445052977978541024253255100206301085385516200311056264781185755406005831049978547288738988865832338192477241442900588785570457047366228715546722489807708432756615606062238057638599012016338125174921695819256937436674571143767738017702290820153819919578201326361173960992119567536474048015633661207449569833848823125479661905211615233860949874459731143772237272652168333647426646573987217010289824079613622756848539072057710938843149880059186588479312551392551196275728411073061171884252135174038297158105186126129675003876999702015250317836303464745659559636345795271981286906965003713044379661816802154221028817889144782776666684829740961038283824753056027926042213770392773572832094265836308838092449830254683805740032677596171145586943390839552503359696360185214677931681761301047828333716483903863366542902513507295058546746375826679166961055918939131360706711070050276884591939480664749279994675652777472715302768116732557152534982834973067412771226474707746147697340448803298019541282058632198252907298784157888483066674908635907027984463846023032526685011873151177266751030386535009454465990369226053875945101894769632673542609996073297593563256039353684596288537601764092878250060075576765488478985063333511796296558232667254960220176306101387455359348285048264386435053211977588632526043184947105311298825455818072375296293700803995506455392282805813302051367318189711249556580199917258419228525939464331795447452938486032929098850149748585594835367152161603579390001990531487506468232970191937109280692353433131336199549623526054330290492965753997962548641593809146063679381098480757056040686980687325228552125106596254594196473727012016263674284481197723718966300848767601681939296592569467794953462948031156326913949982711816579205757665613547604438640095114325660353105463102858662604588972593166076125306450932369185407185935228470132964576910430898811169908631887434070140233906278350745202458783970065585709793069486872332310805933302026507939186220918342124530171340490730311816532511578923392779817841035533112763106933986264891364413646799050305728478951275155503188954180623374903596502711894215393090889652361926220039887009593830976671558930851482408484701695753209551632072930694291351957447251239652334981836382230151357289314059951444961287133076465506726832829897289077596524769774554916761007426166197820535095926265063271354681214861276867422501332632580598512699596872087114122258516653294238239414384128035112079631026533810311751531466514369508167846305370297900143678976791026830141779117487529115783548453729441789661779569629653924016480904600497246934333382699108592763486711611771129206926689125458985065998853324665015412838337815565002705593717609069543254728034909579910780852800836771076870084127347619857395106686418422723032735007326706482772168813490194016439283947692670557173839937347005104875265823914469963677293226491031212158481045486717987411279602390489167061582908613573944570325931825875107672975011377838840970470390157166250433841064959055772820331735260067999254602035508221824251964900588548246046738893530501426970301174825764226920727499632932086505974675867838597482176600590139872278828961760110964657637796535097029603432217493650906982589929298068481703223354129653699544762305094425629578844665234798134039879098966859770140583166033607061939046084083482810524724470747177683007199592801335681277874263176704902009889080280050416708429379183652751201478385811074175820598264461014602854355849220746052686891980589298941253802617610180412172368967385833277276578193330404335531469980646361395973223911298555521671566780610852863655784315835501364540137312453887719317253434353612320248629250542780119939937416721143797976018809851409939156908287053835053935046351538904236877582700427675725265136514027906442138133263666620738335051813791923231469543473275999445377920924943167119850760185002302810267980961325832072627667507050207393666142915515379976857790176261916549638414792447080842326714331583692310508918393093935149333504711853743475537092666482104369813566612701612845121766035178331891126596575796496852473373547503627632579989977288084860834322654400213309043629089638887302269799596284678726402964151589768029541300706997519860029216071624298573188057975314970014432436569718646592855279916390233090406089950372585328953916848438889669848470861151319941230355791068857630502540977747625812171766930704992020330165962883302049844916038368844680868691761468262079347993466054322558008801032960683433277644538921430663053921294733826505812317704685315739436886405780793449693064853692927042571020052738855333627603642846591418798345830911805794224633208232095494016493441722374975718559284826885333530669259818904469568086763708581047960195924293652648820378091431672923856090377849102255456679076811307975405276636859465690636819657819676701947195259039001390737505518363246384358809510032095220101516347687088801912483631108946783544987332135780804262741227448734453765200788950339106319551392527603075405820143163424604785515118486541729664850441908354658975689055180186000318480837568006847703585559397462292299239520125948812840523863379834573979918962565531990317703913090454767000561056389865819178414702882272952651365390478887201620950432482739732656495589557785644310006753753614749273650741547780577839730940099079058204805214432167519323968695053076251983246189867260882310717017026226280314297368758523562615379708686400607937321184639603778324788210592155280248302605881986688782027140190054255360261686425729698746257533186029024009485918458573006728905623905813294077468117624831960503846234038315902342239211636638076477410082921726929425475824014834656731286476810126061487498872807153148147612057276119913259688619408798063388543046254385619089636914288137109821869712688336632885318718574884458273456336428796950431340484258999329149083546358171589004545765110749737470064254310460952257708712759792546611247495580505428859836351662871282767265305571299986104438308452915446159846004315608630664446538241995499207541989731135876964234941612162688104629858924164995012218595017687274149603242469043196078326105294562118714614572869665095516519665710592855393262494238052955105920785828157546860250580720317271572136369591675499457354301263250096437933171475146286506350699155267268624841614262899423670420516844468916056789920540361713237610190858656204435254372446728785540867046914481110026589410427712470527235787153275503627295282032668499232338387862936965715101513382372387846628351722659717098430854545940289841437483932353962969789572257476883985589860030530613833490676709136457997159700312539821833415190998791134026106012948763780512031981535120466598393464197953924077694496884383790632653761367827555282625458102524899767031976281163591820236329497367994090834174192357407936728662476541413873895903354150477661483012156372318434173592316443362307864537398466719110503208250206659757839416572468520506083096468993478906234008453162903662180038586649438388392114953394316861446093188004170449414314384683725994522864650761785949078504082855445344958505892193158798088289276963132112848132290682441867894980498973615667864398446267222069966756641241353557272245856293334692845790239777494196733348041824871780860701771602778963950405439375811045246836976387195542982764558168291268818019254547008227478118659405064884526463083415863399318758583627649534588632745478903395627205304807459172658752520151150286694934178447619033591301955357157939608712760784672799824452282979143110625522460931017115454226507097623033022298648051408506011462671498668783113760395562159592558502950905855477382686283762564447596329645994931492445172119670492850241129951283674515006031507218886882559213515213884334381063319189184562819024068255371827283266027951351573165390833772045910896414572094663178639490240041448120609701299313153585014320089175985428223921504847274885640264156442597505234191610122519301564414874717084595814291262338304001843687214640672567875175033827830111061456121887592546846211272897475987828699842792020639086854589336564954400522136946576758209061613068029270240358181062766904644920398498144509147790329895137965039850707774776944555623128928376599260617226287833798304683434472008485241431418213000362744710606459260888349128777855262106803262924822679981861057500689582580963501081216142035818260289614583690807309431212388042194966116135014380641454974109213516261171998595275653887613436063795275035158479394668874465738153081228880405526509981159093155199349058856699666868389949394447433717478052335741680588832329469786308862726037213021098644306325709673989387946463219423223018866195786774362183014568859028929848478484993580666116637549530735054648111413951620385719847021737399946064328328203045322064615592810564745837312321687021737871665327909700947981660630773805932447412292326637658010575515138345250348443771648685161369990598548190719507665060341502713168743053911790904583373831739812322513311707477444699245730814607344315044173951626678774147304533912445369372208816379214205508756467690504690741243576865410589721288830202312578002012279373339922080317402763614482459941970964502086577445721977486253126463330763676394264994323152321281806931865434972102080575328387404121517265900103620702093738039791360517770326033180253640645968933729644848543982877450535895620560062985754696598848375095998017257194815048077077790313686223982018027127681932506710794452654249949966221781921694676699062305398553205692583378055910530856714017835380660351080599015452322043034682837390769364037936703494135977140131864402205650898853416213878978746777682380114173600151667245483279542528341570305939116134951014219137499985255376462147830713236499408203807528258588434120216139362735310956179180888502602219115329319586534883964227483881809849816311044901556883339778133076988784019689305695943943622290022857572197916076423919049198894447060177251873851009993506043874959263303394297273362258385559514929330262602191676067894190246705165786058101797601963797555980410321219540096785600257883738434190302937230156280527629086805532888736832135158999780805838779769569004306752527463565651628718762898547209023495212566365923959093222103581662993165787128933742576566097333554534813170720549382894957793445254778414343223470744118539276660540344044159999394399610418014855698157538974278969369655448683681303446201516930225112197089864727719571091065655632188004145479397314398902437185022150216794614543282360048543559798228214154029048616520023804606921117310338056602855153073826628032669407293792953967600847495552319358906311396778049241692168221617353336371730696782133915107517116154637012384408598651957784888411407128368204391291576408451355247745091412947651848975118598660148758139664457938590261750230083870655352546994136705295695156932788783530384294500198972513725189290946603263101928996548013566830936054575137958834979579035539066904891977311361273573603495668626001381716171670142206250471783910258512546042617533707705819394571372963521153044089446175474541951855752063116289362061250094016955460909107467471909230076676113220807794932534774428636003689440524845097719272570982686681276635426056555025839537271982788504620687652124874496412516776061038579460893317272667805848345837536726287844957725430875411851459647919604241885862534310798483407533305528717166835934883756977900354077622938201963217106240109118102763375855624914759087271070418153442906354716059554906623325721946451190885569000862421974274427912297821342205386791007292024100497023651715224997927580641557964942457113665500982192263863119545668349787696746816307464981477890036958601263392434500850677099825342320329251549451239804535482582357184565516387882989979178062173159886041206019157712594804000178554112109870459830637322616175022495591296802782788151651927875139637666409277274405802432701570759431074288298147380095335672590271138431530992860310376854445735896771517323484155561696323880304714619225857226719806593533671015498904535378497569403986260571081351601556835684823965695220596571853676796125982880027290297921332795556850105746458832998143109216166757735298148816813774525353931566601718754856968232832411213432556236193541733389230666365911231441453790894116921827064830666665085680257129206069578195803193121601809414686853185011062164946530135228162151528967683295652808605333053761821677828862317658095316027273946865718925728962692959522834952162952517813593020981303610565672176883365110816866993995866750096323659423885171068994159141373007380533781730141343437916761032701355087412001227097978209806124686747351777438980887188121725110312212784161587977022337433939629913746185626082674742944867081137414428668099480696191648523544975054798637203116464136649359135722062103052863175345793873301857569809664265998622226300687337500018137616063136265123656722512816515118318086249806393560662353267376423816210361700513261686543534106809092030394018641317762950518500034965336212261711144237330362489458056665715520176600517243094360511853823946501588879223363944356890009597986635634372357312378705993828517067409340063209387638147215666637375031686767185287787220291476112651580640428538161139463115322279516125321922532514273894574315253215375034838614169290167448284781429281262302957568617709692507193332101838147186163129659526654589690706933826453229034540166082233788460544352332119956468102320513855509531368604257314985835150485429548503285579219752345143218454402640572215588344028660455999328206160696903458504820349816513387170247354286407292594750923246762581190676536203057985178003660901907898624656688210148833384935820749869342279671349194372826199364920528181857887465873375282546497766667335793884430451250507088893285781638386460087167730705761596519826014749138154632175514367852044642595125284168866695980084113604140093633197683480617794406635572672851618301018424577288667070478493137808998715666508918166516546032688581228902876559564340493230077137152957190158088291307135101376630452797826790208189262989730334940562854279736828749664427107007631471434941232141379385772370652568355705542533177273913756863936034427421700321681212192492608426877240711038046481351754392986573281430216363356763730889481139899487275066977703238014619929209523860864105769567198908064755109873553421948400246969819697623384768710057620617486653572409826171438337149443030289456395971346562451530940290259699659525895178753439451511440255229271691436168108564196663345171263725668809477711345182381609328228050401355132141653354000772856074831329659485188666316717049548729465272359070238177279870658034274886890466674382959174842073842152705787164867463555987540046166898749560662586042341737133072868175569091799922176051644107067812747269347174148685776266017986601403052221824834869597954387843778351646395583111674958763544652729949612110376109349560920759739568088776762654072807648773888587199948825094700141479197358091988133928141299580654129523065491105151021032959770319486763673168213879379739405745912527125145136891915835343073763025064356363290178196984058898620096419207812522482394718680178305267888337843758502773241791999092904200672829075659295956688682102800259055633797780100493441517986511871424351704218200724563135173297858336569190786910137359828891772201419795891337777409176778239107406168089287426095642515386303325259721605910112913080929213738950104301896530377978970143423506183808323723139854889798551419445432716127922409151027165820722208066035291851428229649760040338506640155490325230088686153261597957824654523550579571631231065933545877311729078849182254872894766636748944213202148827328094608306943593447470436089373055310152297240644860551548620300469604475759435490383368809494284368090346610619487546592183404991967127863905330641824911050096453306486195191536179969862408973100545147146794251667010525833175901849695905314300515351199175345961562885552462510417024068932571862578093096790662377540180730640007701345173444860542726661732228530614852563075342764837625557701204652366570150450839369832670717568767082695034710403430606979562210077349277149724495415222494174570365019245365636322141557201928955766804480028888760914153925871217770658621384601595432168572267666017767380369667945074591173295908133394904740550152616778159719399251768661838850757443637863291300070741086564685141008863817359586981402752965967507314086628229055961930885203375584125029602185700560044132254925377865226465564502655008023426611254705832327412605071093348317359775345650233556755863794898043925394144878889845885936770503296684028929806503629700595492250349366105826762119822767052191099477662141993485453348712805872980451004973245396568681528323596719679311111969958642156319730094116979031929338530618507894613500184984610235236307247952270054543469315768170447136745194072667413093242717230940430786979015035508615462618436980923183155245478380437661633373136775622450593806989719557354970279650873275990455287221553098525381330492428510630532480518628724683665463288843556575914251830362226963218831504757722474500391211216199537696396006736806510054151314282818055010080619387179878392803333524267165081067184831868962560649726622602980647579982103702204402263674628282811007851491920631553235468026897790651600276698307222995398361331428085027886579784660347132897303642368326791270786179209946839848900084306821466244969176670289017003386483814946936116520629848704018365485874495366294661366279710072465284895094068348258564245527914886603517999724807081939023227777087586173522733861480906447719482057683705133446060528164503289825302018114252669723579284732382820018031359756767987792107700693108413103016089432544814019792325755620872815521596169062141087684299409995210854773049736770177598867486606807142511319210411806206498103517230542619352997335122714417156052111265966822567033200736496956303659084171964918459756425722095598731488309882969647178015934417165637482748845670107194068428135888822845970619832216831364951647471600248057739956089068418385939509202282693970312502833425914880679263026552232940669334138222903383865309550478891873348890121192359687448356279345013503900223378141184917029042021654978286287000283261047021243364835474952219656423236021218184922175605028200960643822311536605574972816221397187463712042831245311625888763438459765469359578701844387595904560403243330253765934171002443310287830586643078669487521279447284014494468247514127286818184525609646624522885558703487693966966029290777501101371111761110322338640868379560104415784910516733075409375469471594786075559824508352525982029762459875765952777737688663634792769244551222340151607294273423766418890826243617651717090499707410398608843624177125580097719386236387826766667683441655235365834556752715761445970683087392310463980469810370225264238474660389115807301314038397380460150651546156053907121136457208535550699136069467342464594024735858757954301888871764453066344681077373537692544865038027870684867411864407326719159405623576672506667587647061087142097260238615153233354380312333094225145060813532309714912631862523572893037652581709956404598196369362738524983821655266441354424916892346460827545615313294600386372128393209251622953028329697961043246583382796271510991180073357211778684111239788347038043845976196391488289310551657880729217703711871228496362663552697715785472523256117973076364237615956174401260133080423057332273546561597703055264836052676824357672274060449106087402465808565918561860384610777959213227554570284847668285821755125914298079383868008983245233425164315742208237274135975778338169837504528193825838246235956826497473873015012158148924899499924047196453215004782498809346111600582157613677712557937793738786428529384906867669219570561898888930902173507238212018541567632515700787012199755109285272045569676033102709151520370738856036844021039564651695328019586486276887550023282029969189268127446438864402342611896625769821328296290616431102849221770658890047582788797736605895246070955872140217392959062332663988295861859944433504858421273784071177777675156165162079591908526741730150879479321643586624139759585176402365781755335863426846853846584621744197614429756879732531241392717112956848361167951039161907613749683589863111404178334338514149132953616140777875554524553343758022917171221876541800627316141589763594195156777034553896367254123168051000505290739262750148730504873811109823564645491222992765711419164126231607995588295157411080832515527020666936961558293921433417790552371553636329294297015688435319882277839736202794609546079150940977902515788032393344692108220044173327322046409351963141536642799414592387490603893611703728349866734759682141470420393048991042304688066101072311299949754634849381931043406596525830125842243792495375965822754373036149901609698184764159380325729306843317098263360714497353594746229581161758677644637473349664989600676563671733378533987740235430208264863634502287633928261976772321672874591605201142165646502751953086031818436570743599017086882326416411357353818799503581348883996787947580207844617133714001112747531142293225622693896001735170862280784578600897102326899225073453589408266417014828864491747568965132655483427447173362626874501590557407334692208529083020594964083929403602121359040050765231934974747652800317635157558131892770180487934435884325609011315399639762141564465178082142662487809941230787776713196003699028578519131902774262798444571091906669122424614278789668250322639102688764798881277431175093423817493025208419751218311891234069174655261631208401122662097978225297517726963025712299401070696393952769407953930996105301528503999700223846460122177396297782782378374055607570376120905056806345120829836714764906044221218930373267056153920566156193738981831453564697917684987080312375494124372950661954363095998009566218930285164021824380839416918896435922645244065538453709181776995915112226123437182402241053137532657658500826062831116796558060453707872497917069028584500658633815581815614806346523266546917622291390173686919743615373904706337641750912350580586585333506539723862038213337065063783020921849276129652600328417233126958418511215682113044774082675903605362848834065638746583028424908891790634028488736970223960118367298500082470355168297317706655924369256083024205090835408629264394287746067710851524850670667831686513587741456036444249690009399997637376701795453347097478577824689594158587265582989503633435805558939850623047283124486115848437150454493750766119586206664326436654545305984570668699114334310805498135239407884528367119277671839123805310930721090343919023239031950553245187108114622853199454683700003707018592878117305660994964925951684904039691408567425978607895468502233442960492251325561418250679748360471713212614656291401430244915665467415962617088782802402033411099706114255492559347974324069375130610645076678466339345997819432248651571826083999816372971093046035837835285433508087275329045363529719264867852569542717041988420897244168455164735522230055362771267058801474573025322933522660012163612465833355455359515214395125394333956172568065074689735412522595401126315625863214314070776436232170566008893371464662812966492603240942364372234099802914138261623996381600201289950543137237660451251472256344815634721275727532757876104993311610242813560515709794911587180402786384453494693545134329344125372645521631763241441759588885620267859747751357071445920985366723314081650971637009306576324965131528381267091676285160671249420816144751861316125702823909597326652216406698236440561690623719539511476084477943194528924431921695990303326246317841497201597542956270739246455614559514432539785776288465898225375393407910824959543063085242784331980750665785481886593450983714941273853042966024708864562876200057946507464823603597381071412588379840911956942768707789697362713473697456730413169462933210936575329210973502639758776914305683724681291896073919358183044953877611928664724830580948316869937666669046775323089258956483982601375206936393024581003875719583856990286473241115532702106276652975879118594145861260758656169938600073113966314746238131956023015077226389252627792602407970675149699132261656045089190175308494432962420178266072497357331118124230236593858066698171126381102897298251715295582212211296257276437465049039106349722243845635528439656079332216417381955906438644745412242433456919351959199674929247999667503674923218799154254761077476162220001179493354718686574542472239047576760477350003213841938856127685534053290576307666358864550641506420213782852284063369449417661548200587977827999736711233678562891737990267302654014832215499298354687955791169195950747385807489496047697173356470727477330004336818338809953624783686812026017471987857191666167648081419342228798723849362124116265307538715545036632077657679214152226844917015681521628439192966563871000525057037470572392249375423636557783216149655051701479525957766587371882758514239694311579743301942535052190454566245540808726257021203861393883942460853609143197872862419280395388037203838138420747507974929878928397070922105222623722337574372553880093329678100237314304685089191194627693376199967956417608378099471747103563084161632719199193716013172243148611839608257292866244973077251705901695203541137698013050343230667110613544434888933955509409990405160041439082192511325434189375799940584100550465257786937517418843916824144401799735357115293398208845226235278530418646684274154178745801680870534083086696306520551831100132254869167404401248917726301205789282027920161319031941452627220375665941817419419850297695190260741886864259297078091276007852937148121609803662701831465899606118451422629909706266930785201683642202323041042788952513697489029397318777621516164421487337134674973862866320949801630544661488020900871671436814189061866889262737778246474076338422671590746691049529232900808496328251603696048280088722052360061126568364442251697010062710452912185614240176068211580570210263956976235488708990586456046128832777353113890710554295477940392693360824738109639536519825256903358537775288246298328132098300894641788843499968904087411842405948799646143699211881195221781717287098370433226332968676396584506089540636828335844625722471206623615743623444682644069789766733258276836760910046270062325898016813457859657551445335083484227533733918189855719598139941889724649356083204037615860810770626880613251328030495117062680254150253829585150290258061569103245626097751189241277709296443493662550750917336777227929333345833855104877716012507160211144555736825948312875457104562940772083142433220421931546098531065888600465923732071003032257314800518396918436423257310783508145619159583184205554445354548798082050266644223049420559144193995512917650133414000860398822119279197837817354071754473963250091990330290113306140675588782993276946199149211105259054480967397484845241597030341523682643975483788006791340993384718928416027855239191511330989930121496629877414160024830422972165498583358438216396744458932333605964430095046463926876972538224634406319647074677587198188022911837425295429905378204611436189607308673741271725269280280413562348224751803278715018038951866609248983354171011807272846214020962859442250383994177350754682460020558531212778695057105298045430375953349567638332670144210364196872662128254845307353567619493288991149431927227750927190748161242320915619728495716786772027981847763528326834735966465260753758850745528378961449677614145870343370477143347342495920709702697447482154960317538284541900578747055104027649537878650412923937919452533494754842841886302142528346637432773624858897758720962550562971256219302386021994114727110953454476002366862728490013990516535059818845488014691180009382231488670247374029807609451798302547805915455300316339128234300052367860539296614161941152803688273091685800110182256744926044707321583259982160403328387038708203277021301257644175217367364145587659696861771580765922298285761187631438504677986564614000876414348301505106518814784313295832157788195838746607798258283287554399305442733700574108382188733898161879686655821279428859855339602667516041547296649966044304932194943787896527306719918542365030137686936411027001780941240326454013380231638774992184102817742197777032177808254489901128293654646709686995567698149164491106992391709665185583889007688476598901726880012841789792590559878372456822506104396374064973062305019002042453050825556779050515427936110536659461793683721109777068424150106111482117264006208269806685822058145068532211685944277442605901981275719898211221549756011156636212497959826756145123751420579729316566387760839802713689423030626882596426968410888655242107608441183856929455665417718233486636729608985717972949740421550203026886972573018381812536988599831541665626670936266230222556456626218341320710073610779337657241988204812817293148371275980100304946534641028502974611259860368509371235776752366925171744169757012033465751040242294979751395226342882635184121461816757853315132065948592989491907115292670922340999745942108506253251303956835498589315360116695091592816884704003544738453093230552695340928334077285375153505120528233349532633261203502965702592309363068193287795609930649599644364751152440109544398221992488959146773236726043284811327259346797183298287489398417078355498373908306913292965804264961834684295973153290534187057753911695074302634458750280074230772821773989145272975253362101659036149422827858943196296229505496973372802422479671436065441747211177002463352534816056692140044697069038310599771470055256471928959326304670212168820359650860356639770593662844144696575580965447449684840402252802255788170809984148640063095086889386474219193090489247875702066188585537076281820535043360427696090317016059095007291678633512744904387867708794350269585137866457650838055926199128901323158731776661574779546313691826096244450366941847925896274758130424047805177946959480745162704866976990844478012913633246301100237380141022711682301821363046071515183046184690299992600992770908871723371554379864064534484846268223913946904294573635547755729046330233707138200872667541027354375748402154459342961029327270168328768863886580482781703114933114876351626514794072811921064297014356230168522382793495680997171661039431075810294818200779451593041421137955121749706447900689979560180977751349184430626223776477367069455879223864295986438922347279728673200327377953908731628180388736938218178385283896331235893336026957204366399089162633345171106910027059963969955839683747238799005576277654725802564313206732135497909828429857067498736489172610821134783118043903741530552149867433038144584680131000362966798296904740638173353492271238887012987476990557014273945348955257245540044649545765916392536361215667448385803175150189596706767830537121055599818007161629708097418126556294968866276922982216781778670370656935618481073129913883710507710477587812104051964929517689289137261987228246562346635112156090395956027460960770618211808320677191427434455116660412035454220332257567422107905751125815951720001515570538735173484487452295387295277751402588556111201978254049849511956773264778720856811132480755577492109495539655627473434532651447297955222784069938138581774138081222437260816561506372928104239215404952464867328530699532949148818227869712385897092609574200983415799879424351243632325539930148925001526058922799275219044389363717605684047854330563336178694575820732152577321859399003772309507467052556376856115402281291940707248241622312147671208938637900432912246836984941698719632317295775752798572972467336059159229383418903225665495602426184415852219722977478855893884816450141773227185155146767957399303841970145802827446469207116110887109532255749801105300146403162540281645051724476265622277469126547169069469351797507142254464477915523129235835704385428158943078631589581243805636020043703981565022937364167396574742126732853891208588366129822510605619527997033111586654010717021321756257721903901727662658154013333677585090356361444356944975483574594050769512924951228690707981393141418437960660383825249634932409883367138548167412876535409003374665354227949782684834618431666300001714906388648128140734622445313980615393158431645373416279561971303117494984293156306806484791028514573752389840964727186258599279245842320638921903351131259045274880101893453523221267899642495505044437802289018705927468181920362784043783638559234432408768105498965316255409377741591729906502565895210884105476616026692863714249100495823495286675289871302215963863273259605657100474247413227925001676218745131344082576378385276314916705551081985381524875676362737063617862952267499021903846087083653083238205298804503807978630246295431824249691549131937342218715826637367113411927319261915499979115440668758130044281194748290466929727295137593127044789837414042234014398750971790870127617053377545673995261100827837573732982043177639010665510617745972365298242398025980133016103062158198537297234821195674110194308378506316999703278310787156228335036788224002815548852838277751480824437417187493099984443418933001969645449360291354885952672268226086563809003277471338209310127822637102522751556901321527506362432837804999823503582753137101726463850880369506393151363764759731246013644808594514826127299799355031564628650464507624332315356245637257516318872017339925119752711158598036397841725335226147023193106640563620747503912916862008880955619806257073758001017666378940754053712259650522421297093853710840935404038015185352461263533378409192383692274629810337358688917241199458887777280997928648366757287748727975672130611491304415942649089279663096635293098757047488392322990008192772877123488742901331220729020820198692097967940589084987682135495660650063450733206898403913823369120871998940451818788755291995098537547647734949341406181489534406343181970851156166640589779573143064324364177631205669116610387901076461762218743085574908403253794416959781227875426762083640626655375799322937539756522636934013440713399077212562388636004961908663671870248818416522459480741428026124390868278089943874114737911764050230650181758957247256835487314577555950913333073949613525077938672341679432212037704471931684008285359765715365275884852359629485716257894709299847875389712686789373751795004594214521909018125257765838926909818623153451006444330890729259503515343427500365535664700426457662868269191432072689946195624526683720899112443757026900230450630150458379525150727959015574289903474986183238553843285818367213424379784589467475134624665742271289632895891766779747866480023841110636358248156138381170290440744159042758505562457187906035642670953186525487304905346389769965672842953156551706309001545893242580950949691515463122251065478333433674109458189417748537293669201611216814842606274364434478893784303042913360308080565037251473030717854264532522009719193452038456119849262874200843794064611042032161747700729827404130356485683656015507227009910026363166724952819386042307098744222871374759906408585138992985675551707255471175850236433816778453084361871938422386850593368867852229509588683722061004079154559165051283924121045696843589520910805177124084789239687835712885683969294519038725354135723509338406700528223572475548742163294489682166578822998272704456206707892953259582454018623956983754716479866828852419974559836509266999414794593151873622455026460127818219461198784337809832865071192613412574590979281121392296185725480295843804290658049512546418729276060510565748985118736194236620296869674481089319088035105424550787640868526799562177394530595220505069285742836289442033235295567154485922253466479579084334915057492670869135254074272552370306761524428573534938763952994612614612537800569708353621336822429253000905587126314164851101719351341631462664945995175022059902036255496314063814863202848819625991956124662722848362757788861921416171819726295965297638644626700314763460272481316469745894381950041128555195096110908740428018450173347250277319699583349266011341961335717325508146625469546845228988963203960967701347810496852113399941365942369737811546591471004681848452886486148999024459194401435059324843078622384743467361917558945754019917152991951382743873597960672613597596040038665977622638767654343430129020260565067245769597009302963188871596476092163641755014995640866608482803213948361510398542877944813135292900108457217685805545766679466847522143147892833871556468401061571283503007248837358384152156479211703590139946274088964096761597096677254268246945280873929691118318987901773630862588373064758550251064461609777307733318729484591504580900775552834248649379114490969166088167546444639768661012979426404579885729746252590142813795190050144815267670273782393067697207233629675230715073637837201354486640579118119877134750873501469646733265706730938252498214474012643208762844647475917052419245473455209009648512900257518538415283017846694170657004247958105304249959640378589533838439328334504895025055719708672917155781729795803088279388070055526242371364503578472341391067423737098325594489079637358725560877432197273807154792846040272193590328513035350084536877380283943720450106799611384618094478614722260867453661654464571954305098172195194919487284977371139952821232707854863956641766522814499076287980352126547314739376148950163990003695316104750126675167797888656662180351009589172182733225343261123469223818588497265720761545028549916408302239171778767377243987026018472316182619838164642659734565870382243316840544517544219274834655093637675539505601757458534992376602068608751874245177298747650646326712980770025123477236796940617693096334424087619107609558702720659139816303949828159616584480412707691342568634439435800788343578818775798911177211928803279098740842862246296081036825929560691348123457204975765425878874645745274073828559365256499318681156452455558224632097846779669229245114525055833198945318954436017501601220613710919379888866923518491988300649658293018873090575268821515767971093048574871463494982166562553350034968900957253689061471566207356770382708811577786675293890515664022846705455655781417978840853465253638576398370453768489630964766856272905434990599652648475849514412218088249355390629800719135981192145015714270097063078528812666575972340527097059902036986171822059538189026044195483891801935979557924820967643827912808668513393388551216546687708334678575250352901759822180717523383059461531199042560365152854941581870246174452687152370612900516327444352066653880128914424829810222825699635001319178654042552435626235691239460208628583910925967185655290969354780643811614762919837487201000094891127453373621464273000656750822349681948462986476348952718480976734836473879332345345271775320652116022997596827271796373506936879088591697356780235738352667726558173591460051510219367995991101459586922746392054350149973351179711006970401337693946931438099482799109893584462121036663865735070547356943851884565310502049911054014992055567732267753467581460860747192945539659882328928660628217318496295601342330740929223944543709889378952559001417199097360937196675412779628828864751281598533205721425992672839649568833694785540068545174160560924242257102569909893145342059629136687160028585722101536764863952456049905267907444712861522610190734579343166765856643713188076414774682305652159530718804699885779382608551765464719861982849890883268799144201818638115780964321454824634546886033116926566087522219931178826910543550190996775838348550824932082112075904195824312413800179373666984195790652280851317082894325497398990995710553758237152687592845421154361116380091306097016119616731841226747293490683317740041197941368911730263154730888950775728489524433296520402917555686841308132874220217928707620920547723977487154581325960699031340061331580934535019127838501527994638920984588464864478491860984406382874121973336462096606330068649421144281383584313313995269635045442425214698630752850962770567221671324306471707712567556411902196438974437607947789000538280279563843723386082858409074534933507614597828547798381841066414544603852343509735515147843532201334172774957758282807968466920325535515188019534810857425648291659307158189783832250121369946794856719258467790066091323460183273488345217735018855871717980881493667957451299208483693037739498352527165021157781256581064502600696174243393210695570112527689270351266252497002122312711129833373800474035477121232895696430741290589031549027285646699875084066888931945360665911281533376415982488551630929415556894980878248842183686531803969667797771064077440946544232168722014809169086483093940479908566651154391188891152009329923116476652459662034596414102684639520774362430736052175898181298764133251756313606025705467368282907680520955421996657994421995280675377891146544731735099010926789699770544183873248606229826845672825844092256560385347539384714173192156275107732884727374472608005461786540952313730253055056826986300538371617540537390212426059911285268879822557091795987054466184596879652477439874055643155080245732869333270520056222192202185784746518645323242639796111994606397517331747123776215597900104099685497712439182913616950699263954537117961419855681428597870499543846956143695467661348919207781306984092772269647261539639601223942452167497385664341959928114083625457940238488721226358850969035435745649681497770594405383326608845790483911905950281870072243722171722432310643732544525274643518099993677984361154920784598234856021338154801388723919995672625826140523207953289845507609581598150151266527574615843891033429863332476044221638094642963553458881704456982961482854980124377713332618675432147308499800756352171163672381699398033662461582865454983770156727270208148464879990331990724770085491843562318230600027968121294153743346999042263901198205594582663741562871525392600601281624487208177989974853521043831854603548481801959498894161396190959918229096900136907824234686405466529011998234290336043296864492579226862097213320295068416774063049620749641463159743459826485200554114655055549752531278062937108054274222092338057875284258877178820894194236607139775458610608756819412338283873126206096907571943760230122690102797858769563400161208935282107601838503689617141538776864426303888871969315329597988664817989642379377116261415095598079267213310171788487684134911367632985681117224514603771218781377642819235556513629352304760094898565877565591093851571081302886762912168990359620924175133524806258568147874828446493579952947812146775357247616244841006710351770861005422083770932062436484438334094243961765454296057751592044170656343665398198629358082226567507536596593247020319223151225613616367097311898773629507328210398825524770587276100562124944723602049202802649182468919961806490571919387575493661504530465388765877339304126767283508040342951472389770341135042790714636704927707501936418043354003747626924909000161465753461811226863129490355016695017305254355333630149717169529214123548924529030290790520445105212504305205432750179475505151962176832434169114956268411440349816841057982629289907606555871903104218031709915182006555399882803617354882176913659851377553337445752209911713508911947236629936737557027385613096581888872467085506332532451716549211623163339670271808402760367064396431287237660846689759747399641112667405698577909104750363622186269462066423987791170661174230271873543417717119842012079412897561219806248031402875825240655269868057532281293202981368011282713258318952543904450476510827444083011548604458980081751074342916777950796688014853136782857724925482783216966536226394303904434653311481043634226215970630527068895769655399929079108172961422443390816564583350343533574639940294244544401030103708787422614201635179880490055773037639048937796315773319564310962941932997484719240642037565852990202344622290912917184670834888692268556814238752185551424635049044268647554762422314100140449829646176068125000294681196818500963846835519235128658820364686060570785591748214861082814310589726459343754973397294018308305411781549244374461073340349720771539497729503857896907143031563318643207629884214586767591193509294910668050174572102823700687054930152642609968191716670055694471503307364896704396355260586307793904047660778607537479158724533125156027103534487048668757021759132722622709101568147171115636931927134082106120492618775855749720153943819215893469310954764693276754599848874592350661651380495344494979649359205603636385211410056603408588134906969799960867987270116868058605396110695521619845506271201179205458246887540811017828663897881064638296700548249904140499056543211133805510560016528819663916328486224243058422449694428223647271552986577504837967212246462989552976031209319142781033589831118535779465027569588893004617348712453446389287995878426409622672236773007670202259936654936823415878546169074208411654310501452740894222431006006576593779745974364984346916416737242964434999979681140825040501601854747436545468925716971839326791173731191367023023747515367878692356437830503520958278899719159177062767057432295929717141398316003862307160370053453146089091944417884835111503677988986695567155603754362957887344974414425537020000596119430009370298017979688813622883756159315193540073425539510240523802566004835200981450279405643796571361644118289674411539590386938764534363895561027858974716949463215623219042228177951687599171211966769055583994023537610756876139486213974744247377159054363106953824906468401783534542482402097650799954150472232823353824742294241466663746791211853222389307816165166841062536598684578857121635262489365012590131670287136228816966534234836275741399238279181380265112434915585155010378635035920449780211071382321263615241990802790018047787523025612659497010908958453581941896438295628913869674229335868453051624269835801262098719867960549936121355613669938807354236599822439893896076500594809120593563633349267370992833145595135406712542773421480473174337266770381905107543913198027785794512561837703583945255547442521510277113477692380166619852274618765342798878230334526919882430454267254846100272641592776120213137205757714937304265668664282985150521009758083996254228930505494022834626537056986468405631445410647541134614232620580500300077782602160409802388800112972487811963757036735214866595229685934401191449316846552207748505878839048164462620309047259804116360200751812006981567598863930147475992748289314776293635723977066203909539658012794853575760626465986611871171219178581312753039433739647291664989833496815380640838031679289986479058507242087902544040789991848899710794124274065436449607974458879671295001460536532684406961899976034158445006862719396427014409998692411325454038778964566260555731750104372956130662039084245558986421703698572595832516444632395065973305355112721542156056328313278790951335188796600693003804192239590304241532279982416082886383017753104682975444028743058035354555011048958223833862546626729399283048092960212140254731152406934107517220439859583811087816131377015707813978814760114011419563762230212894761705375401106546999039221528068018493680669093567012898375505474232515668787716803440623825521304998396799873352555457561736473455023317212320721563668064689932050406901765668706380360739569663909535822261076743267423450605998520299652973122015726003600927220610812925290028765643962755034365046263315709611397411688983690504462845982910993840370574442945440264076020698726008526883477625423780517379776938972497675127440783116379651000032992014061280218597571080083131921428054073659799776106878333643938326652283544184630934596171660928098840917587828379886354880287918361902283427283816789789674400578779138794028910204481122815788733017651970189217002252166205104358375524022494851005236426608840316490752726496442941053591177227222904296722139943493169909444442603432444323823545535965395616143871580877458268434741935768548915575568344084382503405178527196378151766929886091901545657648611082113611912574700464130957852494179278780110597265753118952894082279172681034433600385468749036553744864635158324561435402251932908922861667437462336408306588784162388984739003551754708884946613510482922609915954687151767474228746147682668061928345212224747661830594277090823930722849643177112728731188359184882133798326130904356665156107173160853634473186535806710796061984321132040515038163808383857411844629040896227515212813065568699520391595067430546250645190263479041134091789518059426170032003894609962662897823495200466822948579168414310325551195915151706321283602996931661970102267527356262066792854129956539800756550062048553710445960694807301001157168775568796501661763047378064110590219661215190158514256037828628359484850879659823503372712130210243068500776994493442578041270476993628543173512081948919668969281643732878367943006422125907169770203379981521984515430071413886280961301173955650479516592584622952248758310251585026774530879021142995906843460998331338085900282349233557173441191382563643302434334820337647877032186432496159717563490777453051024214267704403111904525579725793402906768333517672035145550191788237493268157432266356482731139231467555196189030890786039008393126461537164607121995857507142381968139456457036782331214079818092559269792780821201924080447716487708909042899309327805261649947849596365037466434615921283634640278557494742049760369751071857806301268077991186824427644243996339073019193413844382491239239422849451910924593972656465658589177637597848946864487440351638595835520374831395986282790914597670545221863306837701781892644412000074205873989484024037945200444606385699955515847314379356105267811227231672501094994037506175947825764105867180612907908605380508520711653314977453597921574126586364760217719268702354010859817676069652909050561228394347414844955861108684493423360605897667609517193427052434965692498770899476790632604409944925427498206195755774516612837043126283110996148778903947872905091383078316357386336304934146245655780686375790899105642000773405288977481965459115516524019422130031323640964574888997476736770199956724959633134405150667219768349648889411716138328557811449476946104598152178620940688347607270785361454939957713508706108910880011871182484541284098716387444003234766904677819388289871239484581121443786623859892428122695150394096540654399833550534517807352550429188948076228938563696412410017294685161196955127105372249665669103055885631141403385520276461591202728231155523245554024055313988554692183983968659542805431300231205747004534703790994043393118787743753933493295749872071821289979433551806061571698461916350244174322594160025248243390719321365452567476301887033530411407274487738921832085009985247989844109611327229742398677365388611994250868845660126139165003661773834885921336508859141869312992908690929735378037045856314464593937627285899636462895450375776885598127891408879750699594476390171936852143794259574312236026361156490030040264127739645506352175043890195400430746632639225621168556833438805030350578256323643950605653989437559405643767841334306067825858214644071967083524656341201131957956261523307479746277958803654481670640140088681077359754771565214842287349938777588763757444393666635793577016298314945752170929036284661567161047008142571484407600774267413100397476484736600330886946223809168629806650379889350858373184441921337216952151364439132994899822410200653986562499613450703347265630363193583243822889621642657820595497394745370135368808936750391971217262057069352232795864951311891170257585982104090213965218547700832881610011556881274713382183602309827077312776625136503085972773094488201318931605870444998799964656167249657917594822030216425243250334567780962399758396302115960595722645656669886463507422997696952447821138606195536357007462059966284492769120350663656516105416287287236142220222017644579398735633882680082967966736129087121885505812769230615916870986401016949484373529300920728212219116358303040994896778162202642824397311554467047531007201423665470058600174139118544742672651564719485682608108814434451254153028249896978878396260050715360088130919915994377056340605159704117579472968711543852607262102652872386355009299889388912873260796231581683296561214885689667870607633308525810564792390945034284004556641586485508816274899715524816549210798106116382153354969760448018607153220646013834054419370749105339101310691106723077999628181797692818653700936796550174321072999908280012659175044916579917058483907945099152749938320299252642977616929137903490468567222757758567634070736886385860015516275082570775429062105032970996791934564829361931889491864463938646832591715991547894723482725477550166429817589878155951595862667639142203305759685718689955889563692393951290786398286419552107127820646134566917743708981939624471211458376969673897863704360017400119615197427433380130177994216198415059843287318465521411801567322876545414464856929264977028951905614615355535481470399856949538409192782946343383314484846650463077743714648174340435706659562471243139582983395130908513206646472398716901166269550673991009231382289517089693638819286605802947367897816530137452049248487706408911950515706393636030639206687245281960425480065410452400769398529696279984499770437806987321538447707772026183349693450908012382506951267483859252708306595581557470249615944099968024181654339752009377424463977686651542420306612440626026046119938548529963192842105159787771283000347147490826374735599217513650110654733586141506973771052019980446011268572870361227597538852502069426571527604998268550689912526485141328132594562977537376663041132721523986725119634009852085440663847063993093116358126842741544151389479097693844440115125205964538451572903304321071162820476780869927884135633993970609287992920908023483189432479665964849987779305013112597827972993785418712652045680405702959851465043615750897726231878535514394173972097692402146214530942905296959099329133939887469202155444310663681261531812466734000169054354745934461543834284085635565986367922967389128736285846471786996204410402290789236450467587777288644719297540112364842593046770073006428103898175060021856312651312117904546536300290243723840845505979772413404799328468374260393406532069218366270871551220867394722464526200039188412322950154046888797525526754447815198935047781096562209002101944674867632633056364120336853605188659689864163244078319274908840796504100509270135972542302577424535416612624708640003762563223579705932295364832435890466106026550964361088454098708016430932484986440520916039661143377366299733097071290290459835497323148181263901891137933022823432125196006366800846725695058649731074473758274337999933698366683634300965679515786308735542016477187751024222280423810998512167790625460674113776543790073660851583461248161875096903837860840902893778972168692701780429904526196226183062075996257508311626015157506491147024045863968233297364490753874191937667356777022228097684726486134302767435772602594832562544795983803752780406955066622888095862741551448405134364488265347362997449369593509739512697253675129128908965014985772612901136294245814131852055776184840342212577738439030908269032032475848531323063864069597540602619317852640043771572796156681291873275530763761663888553035813237495251802895835788491252140475987500536456013926776575490263344473025701912182076297805523004103457107084579039818257284507822978400158039433600264717317155714887253735891564201884710296269372757154616950300848146288167582749279442208206810256765274544151453344897681650462477040468997906852302740749903491282876653712888955456141820876039350621720023064439924810074210524759433280917142850972004098051037248982704018459796524614338412521677972219413426363516001792489341989324403629589267372354450027062805707428262830562991856675541074616428385614719775404906454306457885064825792804192319213672862633869156321452882716731862083879858166010626904553558655520978956033812447008497831081939083119488370448840163132499343444934987774400500925963838741654571158367271435751694222119974285920862291510399145083984085316841683011329741578274516450098589802683338388387738400936690411604332798334809790480602437741098863269547400280011641738483589598769547603037239817330178787067202502320398792483699283220069545267891323641151857615688117700669716900642447712909050592827312233264504926877656987773858218289074990445890866257618753465523950911796498915009684253520463763486587906288591738603051119482504158675200027357871344889915998150488490533574833166577334622424612934728852237228374924229540636631294374584748240398481521948228157464396272991880424167897480596096460915103136687927753824098318387865437229089105965056239187154034900907043125515782739929913900480988560133879071097480778966004678013742446412754373974957120031525974468119708955213754368849354996232257948666040164542458574821269031039297060391514176234844357315773808685589985782085884641270385361083205687983861033113067920382575280195900311807034873574896115450404939450949465872783159722690517763181875082478711862825242546857209015876842918872231577367891579890889162067853044950875438769172156688582066453649515069044587628151439090299982287163216080342784363440982026033299911520699007560741562610325381533238681461341935567425205409759491609452848391042999322150788228230522461622251816195733941035188722814429240919188443632724826168777801535342149972124938051827586362359646381319318583895681887060482721702939364240899868784957514195104136831201835387183157199596692930717237917068171246022285663619606986453747611375125301862070231897425228472168343682545142166199904713223394371596418320642597777263182158221606991566282341965673422453411281676575020339722242202091724421493855739658837008261479683547249732236812594446559831298601545471866134592356171164129386369692254432144260860986989208121059173337885536188897425399655892515782976677141654479712556356953088045131582389122930165220701438953699852859191700271701070918019783347414929526528672380750616575277346999066683385327622439426025514367297816059751254122363748470926503021941406668240174122977815712046933111164682135254577688675156888615178307765688250140759356466512842198513287447859772125742628301258791685466390555355879751026116763328315786470035615958138613477868320001740354988448744350500827321754322585945605315733883786180545457111787134674999162822876772186481557365916023736777089017609437851193550683050298995866365136566852216255152848615368836413715900461347114649493759779879504676625297401637959226494548034712551272486735982588746760820504079263027081656319910351758893199673792927628388166950111481897534500297281767186522035766115181880051506833139442843129961919709250127870353483949787862586742524873630446983441785191419983867468887773474846730283839562874813103932308189013953486659946489180231560625175109269197947557381578745620422892527020645074903940415321791088730763034988944303096117788633555609985155691496091046488319883863352928066830682555751027140584367760263107013708049639022150391058965616821885135422897069574447659265388350240610516437804197481491868610065273317744969187094791893569334026849921503523077698373387567585927867828822851071773959376255898984939234553397782583491936085656808386454401578150482727937579809008681539501919946047890493349377857827465393407340718337719414942330762172593321604927314008123519790547605974115213882822545524669977907716566808624923488671635127702874547723069904244734817196310918127131548266398747409489555185670970291853660555621621286982082808309450606176411616070638706334652750114861323143183344127235393079728721084726937277737017565631518670389599868089437158628399945426312545994683754863045905203058780111830016107785422678474169379743708615203528058933906632610296756791892422953995311371793943378366148668570675643998553749987841047361136458443075929660031420036073073689861872805729978802930484384510600102901791140764771652099778658269605756340853164418806977841214322540832415291538936491610491425816708603410555818533319923676648500209250889186924105275819430909752698683411844055066541448889201830128996247928646618623507017995697237894077655188091217707332962493105989007149713721603362410875581017260933117560745112915372798152096828267978410561897649536160917208528901137873672692296333299788272791848115799609845662299723312644711621707988977442202970993597763282191162059460724692352107896061608506849232735209654485995478523827436437539088001504376933837813657180657921786883222918787129671302674849813602119161296911645401152972507472439019559017276785940103087739654403165882151232969463692846301777428970251790065372187865812094477606231494091582148091470127880971014259672092535311688660548452803402460984267621737457889147716131541102376543221499491430266580863358568644773862101623103310044673842026036844565729866963589969569032322619045731416130079993705148689824956289011738169013860055179531505348748365751339434209058257502674934799279224762642802055355680313260310149126389826327322773558181880162173065838653188055343849021289789091117315317267462407368399635343440043112713733203668671968674830172144031028273220430066454421114764446652861925859443383198729006259947508264273138500004253951949689799911962697600608294869419798155987011059799220697910117583392117953291536882794624980348972633914555407584664904225648273956246088324579515553108773992257941247746100902307331109177826163648052549256466212321153608073587773401747060209998258439668150127096253035986170315840802693535448956288754692230460083580589688811571000914314102961540823684690415924912901379678237307295690922532476734862498403948812868508838997808011556620109772889872834036941655237957972855265925057083610786110592740869966147023721059045428923075793463450620241655706869653550418044770178193347672782382573243795660812374724598849424601229278100029814606245604555605191764418324861265831981145946792874269063913114992103032999634593794804656300782241637562172359690270699404146592934533513278624322613040956158228778802542031607968317519621494754818696906775726172488080056268515057916861920790546739340503789730638529916255283454085627087539656700838101692116928006029391868324336132096505306920394812830213601533604540129579808282292718266662939073026717858637552395203763005993738563385989282056189452816747313337169307324521694497892464794111216742476526801127374013109735494722125127988741203885866869780435597433047054831800413590302874714179389902311051359601692821750584142730680193135215788170474759154338038079025515084601053962849108933256999544084764238784899997458451400246954079130092357535425405816124451186215054617549639898898553630344802208970543930790521020824502720255993398485935959937940786304765208788412099958927534229456419347478361712006795858947241783663976982155477520951419152262525553441497412041237736930322055905705481768188915464207208536850139399820251610024872084244388178213073561495097396495380919273084858772537006053121496476303117416269298978299459319832508699845072189922149117896575629913973316886846958621425882154919499080321426817533796561899813754224269650520917690388045669065182680849390458100473336195447314475688832346959304933616109860290790927586226377301164842252302692963935105523920415217223659247355202459063963577215938862177689470943256921947007840797806565519305839238402046153945377189158646610053455348439953152981686713096274177835139747082128455992606230168836333684103675919588764295093829632263125926504168133180177556384725774446281484560411742870205078848297979171472330262583145397660241158632746779402145770820659807788572809380248967171860913734316809274132711665374755320882388967500553784418353811441518776029777282966683887207342523132021849093856382839242164358578372589509383614854150843464505511265450151197395608020230102713732857113161573140463428331062308182894570776058354769391186841369360544591463953837244606515410591888396625223666627509178600169669348666927548271914607525592110043466110876284944878886429000311856659793375526408324151050892229516064364299194328110891835465877928794984524333158373759000213411128390642649583644176594737544523018227103241000347914760787060208344614947021038540201752604650112854686074187195979039586345207870805444598587149775233309624943939216348034176252988776942237371899968914438588669661098295096814330353696590348346771290014995896643951208651143418682383000292562865072660865886741458466539392040036517992469361181452927751358165369027158387335284900963388993710797724598745323474762536167548385638763918969904713530701295537854161695472696963278326505443090656881291768777847669897157555051304790018467047703624759244837193037307369890778050151656928396779459853652142152177292293480472619769527320841803419546505502693739849433498936923375673447973879130688812121430288371518462811323897119671024640201687265609055003447523269313647148993859232193153393464564872607117504826576100674308524135225087788870390563449395281562514121366241304494095290424825421759725601815206424196191841287089073237262852356828378345421085513367153569220699256965021261910534121909536130242553681079394721376074213099384404971811184918753363772412324264536532980872796432761591342516042685006232837420520473285555548062161377909233149258126998854279367247207946805893116996504561514619651445304879271947540720951324781033258076869054839359614498221330715773293212568793833495442123517943579757869178572470638414583160189494504712702098850932157533164372826240924843242240419822807460072596557572448412293887817687398488584299251911001339817758045082058991169962308871668532291598215704026429392529160098962361589396228176884281414622761902203009063335985845203953452508442200339554925475639684939920665446474538113629717637907887005544116866888584150184868635928460749654804508593841556812885958351674602379289870965987839274932415351856044043317237166135365724844503893855562762688032997691644089024926023124257848929839478177634890025244543914695312834487373407047278373445738925098107473010564522228087885624159165933141379768031682357305912297297569109207665010643148231789631978332177633095752881957585783211950689204559559436697355098649256843844331479412911950587768269931215659727990527528566650358980420372534720114706843918096216202203250206788842460946927579427340731170947698894270155998058109942045132272435734156333302075281314939283766246312221700714483617231350842079808268566573322745362311837422614229496339002422848293488372636776608232613414808424148520541297487924565974218020688381860005000915403127235609075898240887136491122880326756717398764501444613390242475939798041671675823762773711835773593682460721505336091018323686703268908761310349139398847676154024681158789166095084303106507836800617029057494492651099917404352436447280937528282418114269778670962877251502763025121588763040333201748180823761448060282950194608966748824411916360086259434444254639714178020765158183595905497530108236396686308948248630721731364754601808806667459403519920178212220225653275098864059964550944336585341988243057488754353480987865094016558880323917488208252128101515196293782521771201000312964003908018647154232793113987924168245654701408072007975211982812603396057591379672998473108168840705369951544822079487399064180489009310409739380116525530961047935071499322192704003578564228935529618670335935342916472552332364469083250353215871340884393652418490063820388857356138907029599533312500368063954350981445043958125727995900965645860556807157207693797652069908910475099244926881710946187987348289046438601694835352483345194058016903608090985338091107022179802377170948352681803606358478531965738522554224324730220388946012332589086565119155730066088557585690087503164256328163903869671270286285190203909965405537839163658850155965958761787355414885287725770534586202395993265846454760220970765153532019882041472663878918541531127350723629124240213679372147647747907504522127934382974341321052342475504145587577974543493672808917756599911050920166568773414224006475143744418232733290866399255850076059385450171721576491547520504736861520803441515890994136109200343495127786326468521345036562220188856138962507154475737875313851617336678274179782872297394685071603827274566181071354468970585638442813860712127079970433635311681673042148507076659338039099200828391565541466926816428859637157378738358123914426055286165630415720339946274507356147787707804867922627272283994988624001548564532800812393292334486688152730830159374067869477099815801200093706217406923417521551745642286201341199302568954919162157359704705329997872661114402802755346316010081272746972475263019814364864945028068363361720179702038986940973866019542673702644748303378205041026368747053295013981049767349765650068979356810118787972498920624462146695992234694020480422041821949683270269118201079662836705948676573015206904458632217043445791824832921709196035446160405552765263310133107127060138700178758646253298709815723006770163561445704560888838799070851464686795034093289134367191695959684069670545116498795492569621136969230238173173923873027010584721557830652693120559204326286399002079482217483288769836578708234051995878998559171918875352535926682232333395063906814042112592888742697672912399440665614994317554492446710241502440727174555724956663677735606142736446048736244207364842018221073743618394040504315508851740075694955750458759745660096954208988785925270612921996136421122066979966100733263639047146700247334963160043447939295010584153750375832301640535670603681358171585007192486228193826083806589265190424667815395892404928516843079338174222102081386979748139642974851451135320828398165458141067512347645047971904014076801532760183651265306618769965217805322105548849799101899202869658660118280633264359657412245442120485794777986435711587972494216326261932932618378531708296928403776030152717277718088812397424282730146280988957212467315118724802295968977083146684710716400061118505308769478213419849115719964530687546686442117133619211478065161511882442971033155795891166676928377916195652013832165032770570559000097799283650377727852160803200665958435197854955549220013672636415817177242407334720826873793983969130764217624010589204576235643808209491070186057164730325810515379435468991229973590140313050648195710967325821420650362705820792047961824810111562167995628347420282719271878744191192080766166699263452684672413123402339146748634549498799486617969796659506122367551993214235114759721765130676551553241639224659484908426478968498669671212611617855740626281041114373569981718921045737931309995212393694230564526304772370551028105559468869019298427553719124983095745332658786587801823423194349860197328541194972005035792859080937691132098222658544691430155080763444788433100994701074130767651421930788592065822119578291722396467382121540895758607862563113252920541104093108168381837527073601560453443272153424934744954710479360054138956513206468311264891017468937796855700959197115480274677113442348193581478939562550170215167941976281678590208276717177397870351822810727255271894879844405476929011498613866820234097330709460228852188180091104220046938416822979852184636562710850589569843923183258147608133363385766691813247829156780662201593179659725745521505623381220823564205732981342348108975174093873099148779739235662287164938843181871056073606768269032076606566740935849683828873645847940093740717297522035044536483266076999779146675665070617653736333128626652789338770090762917203204935130418143290582129327140668037633180614571331872888358776531857883882049726791885062229973251895695714630351167067680370515698819275091827413001196691960385269417436334371114033072982104836038438401491166495771984718744086994951199186572968730933780239579812078438784968178926226781383162063207429993386241181998614995802756134816175998639784922966682739361993182809517115038483848397320503189468209148393572451551859212570604713417795938074728575187415438997598445696609067121971352944297388647078875995732981098642759141257261352752620572193570373753876994413179454066894986243930270012531636544927444451279821799306683430546528681529581379532357669829049669063950061154046415476784311499508607296542933945241746886770066539613552241049554113356195195049944826467339355133031533068769095426085007364870754437149201203835749105890273935172723771696529672253120889656923290996862697769882270854852499518668389944654083947240480144976934151974922242555628452162680719904745291397565398128461475363182894571314831690468755320877651273101479483998703978706201749308990637383894964980838267717367883080543344705618564009465586645391495303161420427663033683693539624959396551869792710457651402653678248662976243952018361627040293592304468919145366688200203662863139925371172435476778072988031112502300498732570122138026618604640660042159404960351383049850802468150732199551385660743415860659727586864371346950560173292564825709854711889594055443802499484841221654559501252073577782384980384528365301109888488598481816895468687314097787185462195565507825521679703207091899690550843143287900801709691615078339009615943186177214850441735380207129889274799650362781097792851175257994913028336569735070741113252290375690452675474932853323359947943576805251380036738661308997775226947272147191162325500795308515728214379492825663045666143385384779699371093371359220876606114356711033941465872923076988763748651392782785416952743728369938361386490951032076443192055155803191282022398603124959109731685895933771778464071721624050001656701145069947766804864293695157972071429291655091185693433537989671833298380440947196276330274315023642597750468990395559346595343814067345611699996312225309139907551368247744688175533267505457753336594224334315894449525854775228867397958278874791423821411805355065552585093945163665339311596446250775815456624140842961986875548896924654707409010364684210547124819835546974534267890812718607530417083182934723309974357410723634556917895636102894005473441891802649236345589555824358383167833707822304291182640489829573679430442410525008184444828622136943402525075681720955394928751108718249775018389899944171300668267879222965075564891787431344560669789039128233585988690141888883185119884253277948874005711169845761270626667319196603527378113144356250598602628310404533452089407192379458584119475243471234899529207457601266179406477500544359045168011438212973473016832374885455106803485967311896721769106227684070370145391943896864503164407698385883624481301082783027915033539981680604305034826946942955471012496885400026413878129243545234185086263305620352873116066361650136273783963267807681068218965749084348513074644956901126766379383837894834558329353273091540725020326978801908525305177785057113499731803812233124423438975501911843995338293767074760401771343425139292216607928974281271629736080930580688128285481790312257716933609264304689128740178885781055684832416170292976431169801076782364412583503136613686401009902280695218221236457465482081044618098719188378037085824771558226423493546174593103247940349333627320950965776158128916226617796670853030308141707538707264774545213428392249657515848508898930014485833627501999183966262331455958857502056257265288138404312734854367673333346286193205696934452845582984398945781946671275153615308991721253606872321051424162989108643338272887566601447228990213094034474798554744297904473950886952770908370241090720192238433487982094797675746709483998916792124394555747691348280851746011905187246054223414461689526736614720819760123450887450774080448990841276327436088316870568018911212143151301504235017405618483676617756755647812517949842408210921686703001032709184932795870079606422535481752854254934465680400907742393787671037468420994736421210157740270429918403525120768239985125125673819964466886310253701789030259286125670138558572243544690016276383620906880543186329612336428014780272610723103946517853871409711191584458973684101861112791337151339946158083487583703449639605671895144792501467564953774403572795405286230566954069741227513727730665912518308124171564099316803461850346650488770423616790439794158046036934782050709902103862806149375205038570106216406355249414284155866801861731436486282075108617919899968179589834735444111374301894539505551734487933648663652736525044840002862544196144317722275379949882428962468793091867518917370860369249631607383395710936140684070425942384507064569483500140128520303333221431535027959349114153157498843478080397446650444586909513305725878272240779016868691448186310333050579393578248406501359792013952392615268590107237738693362918935991095560288691077860065122818015943113334947628062126703489818947346228492175965109830076419181548019065241109800780319894944730020816519681702114222413397786173374384440006632325784345703730775843582337205717040568518789333630086543998356001233316512124529733159062328042505956730678066686670504764819672472160225183389497236069438909198067718368807645711605562654739670520154489909294641792148588320986861308306132929662259563602748874029510327981755088863499203866407858062532901494757331071346953137633719118442097004133463481913553579621133940475445787191822310997885707012096815196589105016556871060550400347511131752198019157063400447551225836172070763288619656745992427021683792975130363483673918471893053641088796513536355108517557466445258090947522907325824286777765842840205493080836057775959347082242376093338730364292241857306623316093876973363290666486330572263317555386933615550222107663244664793574922744439344378400606063885494499409399401549595445670972694192953724433863023342151792302437973298339728058116899108593436480979505323678699374098561568839146919960261218031172850558886134067322809355865099926410766322836124841470311942496795990083627308743843089165473329067049930299462881805996766391070687102206984149428806889237677876464008264179755231186882117744782190424015955969463330763242703433339388026791589835782945197828636922201063511733871504394573554423873021279318696038285953411054645750898377776096312173458660609656179116633905994979668353458010311174959607178912428852688413165608352108825596376250749062581874418908322449763417792449797171215734646725844408166483307562404089457484449996048599567765569717987653753701237406319388272757818301644224029162194701515205959835188013602764830023834711634656844169047016888142945350893287375673453062484514535319014595354529087378577289700158582598186291855222201576749384931689719248445892206782233341626835787850710625940668634759697411279150187837543423704061793386663619120076093105210103989181034210981819965921372271228066395469167050401410198959363352631369527678095928517511394667014233858299409385469823542841463661872408321733495525654557005092529915113212249629284529662166754496581067411479234352290890757758284756632228314643240005521950129182930895076040682262913717482812054647694845809051452139776189514217428145788071938622291134530735617911437184373661377723736448415834221226272825404861001393015911086270687542887965079144191288611614466536073795802199597191883600705248259361570436636056013903409723414222754428792986958751982942148588908807733755705306534991163565324772813799953066255706536911370973692703232806339692956841058684474782781474892845195892799081902081337053342869499311274181096551108119511228076715294336626088524069324710902936109606377905795715893619615137835212119572298837045163157162143156649369305230282833678835176715655729246973136838197964781665458006088585604312099005232357072010059278392738751321553697385263904258026139535519224626402599199472409824807498109844876770602681367395602892776400541883979584134440521985348478545401690672887100070404388497493013910615293886602833981963642694398475964981096707048173176557190584556786980872899698960641036171803563014016510708597736988961708496117222024240769013423062128996744552124984446456524434860459255717120847835692419707511370993845188477693537774214234011254924915997477001431098862226012256103842136427580303299816631856893330193519068036298421198987552609757978662083615228705754169969206030405710133392985802392442241175399936512758505976154519464046719831721981849346600819353956119012364354899057544303261504685103892917627394421281646801991883739126335349470620432959208398250191913540771109677710899763754900525145893732935092070041200765113604944046819507846638401152954443892582133646087783992770852932246589835367645749383443030439729025607546458213209437627371736856829166825786230188611650869449951614644717443108099521584101743241431602725248224541262194337287371553829695029204721519076153266427749457542573415029145447430345308101222206539011640908539029917422653251833460209520191502800588322421209058446748307081016366387126938016594117286466506673276837702703652274845354489843354207008256087635291253000550867027264994794880841750635364623343616300629940489420195231104101246095296905303697466446201603447251845202037351475439114080339771127363740884662377259063439728151568831324183972432364687742943428119248420532192078280401136492732885839960241033576916983318655373432910095505919568175511917369846424882237297848057367386811187557037331218132687933007090767563985936379605312368673823302128630939749021601735895471069091170003856861421121491544766211419222005000092726020283695407475303005129277270655671791147996053377647049969487236807836415575978959386841850094099857339284201049863408761654086214381879356078693688021489076775862585184144917860318235133087114097488033673334117412416127615689919959790334620463628473226175513547916384519674895478196144918209919293892781159236496826954856022199281941998136420817436964725612282859281859358801460709782155515180535939132719435986496944140539445189780536434189999116797808460661799993726321996682877143571750526525201994264394250481135326546285470437077818910934662311289082318395759544338600022243990513156039942809773575516352688404555386555649300946736910784920764939996189772306418374033630231908061102121348163235177904557655389082386417159561015112829581772611461468673611856520440492916915667317737813696039071819246949081906806671512640949002545117808249736671749070404185410816393686014748473081576094367156377817626985504120539499894499296222872864541063210946297007272107944902628417510352215404972940283932172458261458614880895336501132883629531570937488900142288484929182384966571910943291749872270569695803406679755313131807206830429963307623684716141753008872083415725594198715001195065094799143789223720967126892070461716929645504585008370426964991019655206563738478451776956928653417517301455243784063506577327913843090887042332662358761257929504316346543694642065251205331998822072294706593217242357604636555277007788396668555234892292138504767592332877438317881765346880884328160671810330715680783960682035625835616026819830643811277477681706430732627271096850214286274768059213872195901801460475488126247643469841099170976858143696935961593039402529530618228910443757503061443120158726298173999910363731628741615989796695485780422508612523356606801958579017200574429965437461962382553685954528016651680900026196312561999184152828106414245562792443213356039205708405711841520279658387071892019621834048109536613825723166781833903338450611583684657997932377581693789359325221076510437878125546504992105034824007266543172030375091540979819376441850931240406731048309877125576535704615200830604651666995969734759349119815667529129643587974062657761675670483629417458188262981314838707810558141942045135553347181465614655021201268559292473548665589243354704316761255948841709336987508407965641972346994461134918981457689573648324515491725823111416727512947325720601734402850595247278563507994725011205129216093580502501728940817062696704817661494202568849677124408270444290806807363690833792261213633647814938485264220204721389132995397808136664191105349260017497612335337912222073941435138891774850051449040914478277113096080501124379703520642141046569540809803137966705310903467776484461122242285631318192985884046877987007329120824759035896985746941805804878176071823731089225742784976049054512026453817369708772980409300604724845241874311639343248621328146140541893688335221456310135827193545916781811575194482302601380768605134144945141423750848299941321199841970345083876370313672536811453888597139023224202779374944884746341248605367861690679927003384982333258030044818372883327750489053972756657449033214774991146526690998888073658049412414392819549835602028224809116005661902585569684605302992275016520977433857651011195651549871466161002137918708995909339440129448259047580610904495245741529075292638269905540029271764951746812167966306248312446792265278727965877802651067553517343033524870218199616016203143022079788272509095124762330456239165043821003277550350026931652621820748161938533861417522041935136940709250131549822941187897370552231703860341908449867527930760913889342458725698255182299457224613630187650120516220636748264644439276116803773330022395288157571004393906094286670062411646475046079727444266525204030306288715628767455888504649634682880410013859333232535746517452188664449095347868833760128244929550404002485465314466093696329597960378728247146254997858852073002239734999793012796704550345048598529897611308625735437909514916288088176072535829860072197113730928407736328627822571239215589931941458167007103644291677435617584610075425065793844643686446943188306156661762050914474889077863252387801025236339175041163813866383837250078752961088431838721189369082860832498685236227068381626468913748662052923765671514569970768159742913848962845748290657807948678660429876391040862674931637175396200682426752718074910456260866638697554236796238182270019214221995400839916444947832488491532825590281232143833925828416213881728092131288378320935365439374625891876222638310463553026071472742758741007037624609621627225460292194798068799935743825686114653093578891326064598211327968144589400369605429191102276792126872699790573438684072529163847910067969498293493823641216185198624100440940443130710327731872609073489117672216758538684142184693008059839471503568916434002542890778282445710681702683422455829546992922455053429804996194262430235707437540935316344553519095928806947096304942091751613352525818095542801961680783967210810248007873310383989618623149855255162840598400821274427068861770879601755919176708195050442099726567254459043236084783016037167868728205792432443505914642492763353261680804784374662802276077439839670393985360578468447285559053346821857200640790202265687474312400913942144255801272574980607230263859068416010498754006820828172140436008862125007150977337515501754877554785900968766008487508949160538834280347197609788156436737362155009328560017085711097106112710577405721913002032083921786104997395446291977908505517278482127636367702854188925976103553888013564636032020683659190079652103669836514397350965455888797603444924252932172438317617361693103245474250925618776207313086146591416096114038614421396928987956764673575480021247681361858848807063019639565195359169101340477250792793986375057501487323040219581144185705956413003489562753066945248107867715706322130695023622578743100452456892195298866061842418871344479458271193226362548956434562871672983435449820591859365300733453706969400734139814921121233994525298768797207495359021121084421935206880091936853369913055175284643176893664022512113307342271046908715115986235969709154364448884279368464513028467405697936597272882024295316679343186999903199603195431980832586349863240784873241027433210542190088360431926997338012901174932073714361840131865065032395462733830513220445531031991316868265845157380357506510013954958205730566313553396252628121888876762990976724230638698870761675566160298516584596084296387921463629444338460726020339750132044977870025762420400850988133634659390953115559989990042228585198070453437252590342387963281562368399499747406094893268510399360785427133280863381989001352734871046850101015213377275543553192288108654938264517230195694830225452620166011032240980763779396818614540614715154025493587499944000260404244948335365167362438311098923996198942576016291396813400831045384455908666309911945076021869545127880357055234235940894481804558893551994449805428215343458171306221150343909303054331167717838875343446759090083301754678746059414027435163546951405586096665605063021765608827134502288945720240489844151912332140205640063022661122814200333476905053535159081591584861919199520351424319153670870320826615103678151865219419917608268817188066716858409199134446667623118776123356113040688296350750729692254216929055054357749702615864374663220980772214223545741536042145696091121794075948521745143532983257692221847026894131486123996602877916926634491466876364487608779066460566159828194494250742705939914922070226097832391261093146824295238929478635112168470438757876549016227152495380440402091327422467679777060124198580888990057271257888536591064642737629423835748481649492655188105066925171414259004759032346362970109715438956696519036307237411356381083428748486600115710225925884793300252029968043241311276542091311035757288366198406906747528036038614991349856781274843795565156672364604816617642711928391187954266082668020139444597520077398262903728213216123696400061936692964954225223858629789723499028274503037955637577094417214706791534121745658269067640755109883225635893408175159496550467432042078306815121716104642496043790470582125594914670303271774996271170329191798963280004887301367483873310701330465816315172876431337282955049499487687709527311385311489672285466995763047750348464758518540997951673279092122093024286441719381075164583412536096462651799318871608218992062636301521708764881062884986610820815313336078935128371578422324749627602873391167526517697571969423288224943183945388716217713150143761617984594885593384476412511849188645825491810034639329704284717020976067575054955418035092230091025780445046745373535738846368174105137218405696307545119850607656370896440770530883886784900519182491370925086676893287314616461131491017680628895891754873945471937258159880797628651833288519672551235517637535071709429843353979591532307094830577263633951383889128504682624865142624191030548024530567697503689054427611608327825446885866702969796131310509817564559853148278654540497577117168670568398180647574514581379340380058608972906515471789193226229107372850772636998609652339099180169747080941440977226523545549531144399227607871303763699902192889881741820549065179902723671363862712671789555160566353439617163462303043865755375318349569369847004349883333667940436207764999593686673342807317043718385628787542279134474850134343778560692770365008456347283417495470130863898624611973707200185356602692883466188500508946263365423322420083352881577467765720639039975943628796367319935021827726438589574012584744166746353755346511590549602185238486680999659970180408805659041132392403149242111951210886592527439825361247209050488469250466827573858579051704914242557744687581537250843866209922469524268683703104211448352747854277703460004202668676583622969289264725814848044183050739033305402169932944899357158123235704483984898828468697374556172292620021392070040588492684393923198796132404772290152458814558907766018510451830689557944171343269165600712316244794484242452334584027598142578791895254015757091805000783715867826270225480446532649661681235750456716283629925341200102530168372009805245928907690078993370440384892861297438020256468722960134802399133232302365234080869512503099102737920454773092705632234482420714027664212147751031350176257513955355800932029626628234520313854378831917389146232104855273624768989107895617662210955798648306360789343518347726833762697958803975921778858937376546880370196964140087663564928892824617953168004041321698473731837127934371927720130080571669024432979492610912042837941897656081097480969475094331309714089021509085511908841083458599942928402201934611884547091402084753697663996215893051565772911676500342133618755079468523822085148889598148437265919279813050506187310942194444929304415263423282152237442836332835115339274394000518506630022656466102471463331939769226543139248355331618395734515362431582461924510091845220208348214460026149208059481476146595408819487062351124012316477911194164244709343342281259656954150410017716401403225231785276220959623860592313774115042349375606452888175945392350702532653533618203326988832133085715638695798115518119611783896403647753601650161290702511927170676366592942212142334759053143385664493354428093378026842800716754416174125245713686854262884259594768553081057138669582997986611290085233409246221616171570189011614751553567324117984614929561089050911922537888585317654765430916437384540570816975230187851193242981769694205574429952452424906259642476828206196498228956699548855565056764126142311693180828187971286558689346550198739555321374964970911353384336283364027907857342602801184750852441360615330842638489480348305399234912935772271666224336281865924515473618220774158948178182899455903585584592851169918266790381190784690488765691110254368405892722978014702873256099892293244483370128835338391306638024840735452084535940264079107224193716488533723194872675419580980476419973334449249025284091789533726379793431447636393181266515399056651263361582556345826563114779013425983498148514217612495455796030510146186768104327108281488824624064472215771797061426011080054420208102020939746232967028719428029855657837500809015303125990334779490568476629065457453516519885194716750714070850846232021715110037899419889457318455140761951827668116111054909167163898887671614113893498741671673912725651327525988994850710572186528896705465852465071354659754498326449605454778507712298370733215117211290121092275417165108631277451946203870795631028604556954344058544762758983807046996308879260749781216492443885445759952941603942180469062561627666815978176707695570175369997155224661725109486463060937500572997583605258887150566004922579502250258519767877635071903901117124701069188823812113004327074704400381531150284396101485987271407314334364217889311793274821998150481238025106620526519615499960085218783260143531794447039121176777115922181554750796135554401292993109090893070556008738577406884945069875277316129913270608928367524453481166173476765198855641962547926644753420167530424255381797565155312966923313684860995998856135809784685305603112018800007180366216506253822803126577018195752401627576561047318535049543704187687170946281592810964379934459136501625543963014475748673834962287991248482848616225920690684960040251826715465931073344779621512191586234933675329764969446735527137125585343999501888745445041806690977132073666753555391684981290050735222004047224804135920863983806043290797991407052954539768422109391038719458964066648231500851628088843411055053717038437473841533048775023350207675637699884343360305172544176043032316431840481646725300190518746654336516193695209576111084551083478618296735075180492055113528553191961576877038436519032115241631117709751601517076843113343103542086351386494030398528987174168583422294472733621708218338189432199139477178466951829441541467613152961005134100773482950127787436745959572401354950929551764577584257486624389654831300802086983667080379921368618372518338236630493012575657516673247842873004232033353827110690133269263910913885643956864442715121565660053437805988988118366957339147029272615875247857078888347159032036326758012165155189461145331159224608963068452209696697654812555913438166087369177323319338488690303652758218075555049335793284767627152149332593362382445528922311989411193826962121363701448203743353578943388838954033196696619378419155614868233525198125972851700384650593100612554162978765641869454991828009382562590794570123846786269659314007531223679212587510428572997566733757667086488924821335600067539748564070832179008522526837379680998901410344312310968181943163657416465388924283268441320407605696519128157982993605632971992459753866258981345571371618342720122078883223158721529156749148201968639306882190784970321157011681320532230806441586481687661284378362572339811571876345844586252537659099808093176813082934923740178617861480275444830447482210950724487273389742302851666667981794120523466722006594875623635054367760222745432251716365163094281870171239412297537895043623179640858924686771362876587419216912446970355238116304412012280444636196800861265816312839219065949047205543387549002089637173947421561661485539576017565008559192916486291466940746073157497100279559211276426329039144119117088089268468587525085276143347151082199887166299991026775309216450755802187751515926086472480597277003092690390535208548017733260664946486095534448642992834694195851609757822759547989590463219446640570367327297640989771719298818570773389624216127964683352100478150905217968665479128490155720294734209856093944049972316485318298117102404583346871721669923189742387753029057539774984965769211110889935172918244122369225638323819545100002199089632269968583950442973620307639183796693111875840458816304113435495856258501156529329222801556875322248278499113287851936605069173319619205447050410920098052415333901391545009600596328624883620228220999877247330531550215420380360597839915823147097841431057929560068548245067451144695822187059878632638718255805877889272705477270114475849685905272770900568530597870093301687801451920826193549968458174012084785514119486330285091550309856819529981006081155305527238819997746696320921712736722164870903486830644381308388495642956082367689985958793962909267354913426185704748686242691526343052969896877973021731157659494918551361153467026248971802571806560643194547703738550587508975813953100924860130448341102621342040680420618787743106617625204558107924300547973535235591377930118291766596949567197326767370909295478443806234514252239320501486072095919505997499022558346916290892403055844147857480465933614787842885415409052901859225396226614883782986283600764438236158676407570993970707990825049772852344089713977470067267916813684891414795117787857146746569819721961816682490426715932860298965653242598803438436612402526579972333002619287126829597001476167306906745090031208359562781381614565854238578532413426707343605270184634204407344824905800274482034495699127229756254226319710401016986391943789688381981955734756804637744855626338620882037291587280456486076140324306470626962113070739222443928363368947235851034842607520152428718857731927706926974730555884314573779365465538010892189076114960657888043754871062011048948749978898776170785595631638721100868419457310076698630010102579640011656753365782884727346359966552409471869672533734640732801455044966586119259636699869278142919142488708513585917397824035025261399861159626412092400046797994624048617551898478022572495322605550180340461244478054050964681438814184379812745958741757733127502403601665935509692904815206307035759241042095294099893781527410878641178368886878960960742329345375605876835718908268685190319465903174997723778998966225192387012799118865405973889000432663995509406095105525767834032379543296256606029134990694153571644329938377450528034040610211542335859484015139327058309334918216738058258982255369557808410929473104716152744969723004857581598253487043389959032633698324562939064710186896093566424773394812534257936854767004305462984914689304762752937009184837694185201140942795268330641926987030041064888211011229478540158244247933227173236097214012792482645638664497518280789652196185273837355248554450945900350219566602813629989708051063173259231604424282145111010459313152275458573751697457480022783794212295989091343626652879366708265179004831931723274574081587194232866049535616151083820496058986042238599021138408189204512433182225339092970396568354305847525470310431279625219441529719501428090040111175633420281565474576948297483208302944766176629230754490573648877230440169180962175525798787609429245443348320477967785484165006814977366359209161783739396879996018877345754585080099896952609108689800747981703664525767062960782691706414960858647366842872839811686680429261338699155854672862328744338375274037089099919212687148134378352644829661771825380755137207451152177900381363268437278677761454191039314746803340443233337770765419707068828582956359711995732418738509771630148278700223124344723906837616428663222723037754871629517891159996677326619812540646287833752032572287489147956401957872157034595824843771626532394065365630292391388897397549040170633410467240060075034842915190542624232199106803157187667704469932592912521582567931451807748795446682605678292177705195485762020763457166352810257278361915192084281842296712444152216518097652972422527759158569646700803519185479988355393305449598200889005090252973336587312504898461253346691805060174574821204464605998346141772219849247173402616793763268828220715493315798635951953681115733917682009149524596552206304333601094540825955122845554176121714439701132735021497747010087651661887148132117766591506272532417245432796157965670467300843989254982707759026379395305948190609692108170650801875085055908373525228309118541297541818649620130052628369567162545342890684876553418889807662834131719569894986023804972863002570809381946735361991777744680444210719928775616504894693867124548945702572642476913699258204280307067321187885956015362203938623689442766179334784274284257824954568329091083044342172673388963095786861298516811581208209002288873288209047180647693897197506534656938000657384021238794289286486425344824104301442796068483697062258282551789423871169228013861463575133738877471131862754730049829020366011252961667755500232570761489289028765752901380084089368446518919852549478800432797632710048929701810091543443829847474999635042591093328911613560806951370122834132983757508264421596384118634017423132291167839235534509232817540918144739744985286564647189871249641235927024858840620326538835240951797301667150824508598628735473991186142694046332832773986948529507946551054775744567427397488963266371144576574045583737344461822564644828918977322030011861558861171082175489199770552999309339890511831475730389365812777134989981061559631129253221762400071609720747499186636310962391494093840663032163250029721542910031451802326876629952103947409307042386610264858029417834742417549592085634529917756840462508002627645732538410042778763735740863679179259456380037394511507473825882848727315633815661806561794039896040453101863395986158722161025546902482085109794637057586056334014803267997034471683801878730428565641064592818227078130369789966733392994259083400112072416655834187575465080100762427623875044918748732052887028356498578715793335003003088430162116122538209860034741340454152319010017201802198663203636857444062242511376012736342318941306295184431155435455901393836405242756503641140700014463950345633267637027354463757988372297341793371147539019371028127430383790112457876906334121074626133442563360350274650398130734404687303100894998436910607819623739919505439609801559230855487419289673102868141874190942452786586623980908508257720147172280861583462668580997019256213170918172019433344047181737980920383867558030792611741536319467108830350417254602140255842833170227051912583253646782286827957594704831224647346236814327633813067229817270652254145845377183391821933989863542389798822909181940360650010778698485742155007625215086847507279075346804567252939947495011846765857252918252092902274594437145284690604576058529842618377221711782010317318884586114344143856382346258338799389760478172414502344137293379073505264648589390740629247369789867781059414616298301902764114166523145373224181610257194021033179303753165446749957634975620020410192192022613177629040299930664812400111952619855971017067441928790543068145164069128931526544868578161312589381197435527823880732629242400599994758164019158977778558227672090066503493226322129300798441032062947302331124659243761735737490150048557227013415747281040303800634037036434447378304185866179411118341092824874780253582056167866321321620275739438530601115561310850686288405323097121983389365256363532797506852607824881347949813628952912687604609255397806155428073710410873527049918412426031178998591224902010885768013382058411651738082820539963247680307503926095310646055504821335901126883538548981662738128718973648852374188264619188625926007148364605772468493957287175585406294217325808475337557638312067269882387452447160667110666994191836862921201217197075357747181851399679792897793033362701411789316548681646371380221625503402350630723601084542207983031363305712581317102829045007379615746926277952462907305135774429295166103481186391620175255474355753271974768807623151397741084297192035374346001041553779843353557572022726852250591604025736113868693352371439015027920068513455137929585760840713493692840936591255026365919729398553675300919612689278624998856173517841608547654450973036695504550331711501846069885783510995295378245757285669402082447628231666249707220237914244971266311481028860523494394014145194652111033809285731840422556801743896343334722563765830919289552970450666331350488073013755570761640557842690391948282993945380288048435483350835958417471819612133914697174804976942977865988293424006230799477990968896942352123761178670494823886940214510722406966104623191121677271871465075533838826229859162082873343699506549194301047168777998083541957146721456135745890136948007613652140092624419929681429535352509641133994360359124733291647612375110481750608351004728408318480524856200826007899990406856961601704574781602709689898914018494000351684789632840397977899508617777179216165696607423796738193567035215283592421654792265368822423806471569045584794950319867686206579455294757770153973250542069047911230358935590528446543385230047319487037775715781781104486343220273095449999162030782512963704351124455446106527631659947376187919928273807539658562734234789486806716787828200159582693457724456271513670487147165823476546940573946198744012921565921252746362492621767695930142613681417835792937657633167244517159356981910457349839215509635512649252745167474167704656900310290559909537210842006834191565040648887444892037926478775257788175928821907492513621003928383177291520403242975050676329830997515502228934086036918740302299746850594480315432719179037370759584406986318449797606940306241289615307746916827281711648169814045310212128384931083712659340559840416071875479332116210338916647245271948918343392210540395686824249598932006674734655761294353589708435079516275732289586174916348980850386361166046495495931070681582115049058717948287944206970839982656252555753596565487326269359884531555272407213457788619113104998170973757861207941462451463270621334219886730427452847678655474197332988816124658879790032986701891328068862764410113270872156735927796215362799298814828520824942224102751413215210302988758113611813899595859301189069099260748004269161557925690155224097666008205455034929052628684923801933613077667483674891225531171967876309804934033095514739442165130875898182078513651476011745698696795605392642954473656673065289181872602795864370452475151909573906838912473376985686795656183602194012558684108263854011608717455436270177850063508819146038345058920013896571351813316561977536517071015788893850968696038341800230073678628572580721869238251173294976848979926874703914794242816461659954142032857263519362032408024948284755517360477895764582833558065245418752188643455877736861390136381057066628342204846445576931894694914390539065792082797519139214645003943743206205314184478850586836056495506032605346305142094825617302508746179915235220577428701653807224968687212203896675014278832402820784946966762995050622124385370129630765554510804697972799294833138223728404644230467532593498013316534737936986512093867560839560267679628363037481410887927844500345122459621601447461402478289935494840679473175549362132400239320562334662164887842021226329709083608479094564974815397609720600564724637668037162203008919357943411065717197041754601962606680784402117936711282938648469687749541685682184079598126765241492282732676994880340484201037065590048079618499127081777651480389929458290016295880667076237893637250987385135634708051974545571892014472873145460467470610155600585512749198611548458257751651948119649375075354770068472051032089571877408100830002003901809847859035973541811540330139943459568444446499460101967131752910098225535017676949331307530543479060652273045465466704239715556447474376057781115134312967003343679491768849009414002738061647056458420998255780990754340797055879943125242882567436563041560117968229150816966718326179461974248892489680395120956104517542126834377368959588364970295488930129548182528934080628788272477521842827430597687203007747879438664228829555242528363935441778391558548001337514997959837370927351609381457292734782858394886302332538650803600307051312910034961626035424448138043533420113543030203298922141479309402718047024573847378906918858448842425593617601629484548833314133683615241252410473979880979286424391959659344973438409078107711750418109632892964908384222716402089488909921783309219038953002955689901858114534768242187772800274667578182377195159597756649281640084292108912051716169308604346832594533808848031951074825239744602060594785542489312756965730483364245091163726590369549632867417619883022888225901968119980084131714514259983857371654321208407387713317831868043614464845361073884394751994798548941658196587539268177948560234012441137574669515146558911978764863476127369996695061634407898995246535068666000059879880109778719172549226728385710464257713272794241559904560138761984957513300445564155091996136766527775672750447066875788177095969644848003850555085963511174321724797284105262675532534068919433204562448385098841274240596193148328459997692788708949021025358468678594495728688752240840950575448215854091304805041062083166011512836947810558073007616778646745543947360324770979256064479900206575423028923204307051657475169959259919216945669233321990956279403787021734176247856330550150794168982056297368342334755264267351359878172266885529282806585219915121474415706553296309885267721422789416254097256708825540993847617246148684872874867833885656034690556652016437609250587677735410744847381539981710427520302618053444354365924727906120686695372545985820281208939180993158437493895577397156577441684815210331027472824642289437502321161526130120592585082163583269504934601544682546966318379917286269291618534300690130014675889784660809137464161912715052399837646485433240318026722032925370979539087193524809949086947855447772519895103673535167733148725841723018712788301555457486418558803581926039587843141187840173646813289299063494558110734038737795273366797391948989867487916394379355087724452405102708726432018547004205991176573962190195797186140583568719942002840444216076057615526172691845859723778288326823114327156875267863268752607786798962145781867626919035240911121775270459797489089445536035177172354379456354873555054551136891511519389866255554573258699832676694346616262016752519372082203702741179229430064835236720384753550928403613215294895764705326860496006079563687787034713125987749267688832722954693079868766885637386161928372879543554409393276638714805909771296734091292782664852060362464751034833110110795524565541480262676291583313461148531374890750624158062144305168710381599797984655058032838038610652506991387346035543543327163352410279419457223154934412809920977310480678035433195400331038740698450425673235605324145169865715673004249575342657102956819303103129758642260628657249312028401847507324769104840515064623210417848054536809718923120705186934068358697435047509909255237191073077276858359266701704673975341163556052410150566984011952207933972699865611588536070245034300576101248820678582573919844801350627072249052544192554518808481926070042423816461956460746415108605016674127370192473407460253581070175691070312493616201101835035785344849822982784453022084056809967666128896701851393990196442909308802368630452955049129118989027018988059657024355024572829622635398866323778248835134283473534377599663350839275572319281204853627671745111924652049141858323599503583222140151813288948356596924229409085215028769604629657228842581356328244888893527710721570449317501087258319055894682857628472281532295345288163818216398707451806242471294660645392907978194401077231185388463876625244339398212931683614125736152499918259642168760649308881978001435733724751176257733254373691995754330615748796096246150633855706421825906830499456908736222460883573415984343510993028770374704540318786457857491828629847849795597548430592407264169706097551700180049124509075507072137621443455982056796634272079393658953556116913164971716931046509223378099287052904020229759909852313118078184957477446367358564019830512354333989553927423946270457712694354854547260538294399955648885190164614603499401882457067278050726535856039713690355586626363512342705695794983489467697815929556488958589751767666506468479138718696210729551836216951865570028677253361467045371740805379080203793338995315751477901876754219194008251510368376640928814063800008457118303377767936974817268641063633011946076411213703330263834718370462335226447099076534808939017943219604504214129543969160842426851373187765755161764914707845662386928623137963076656263108235768829659806508978987780284780237082401163465864220791317983994148909716416683459796476488875615898045416069491032539931968849909419274158426049049692628610962578860148463314523750332187859035981194915720512278306056319831666536873045638764536626758436063888244375169007653660855949921102137809095913434127868601654986719283791257545863069298312374248832931249733406899354277500898527434668584507880154166771568426610709364621101509195073938988753459535222767507579415838076457197511420705707681267526482234593097812696283288669963621043779047038796948294636662707822354150077379802536910837776684015395216567630842815529590077421732529206494655492031139308513815892857951320910219435406893896111132112249055936670389389633009964172382839525882338608532003541084256142530409353136839723861804917519079874109739115524821148585953018638406727755934332296480687782685986401261739685654314877845246165941256731049682991674880586395380168187095181564575977993745559154073740799108763570534685135277178130277646625694076310234861393983893382113094912983741155274622364401697833186171681077804431326493395941474371399911851824942327020840055834711673337752159334340442328668172256990968661151943539561818741662731994572789368236998271604686743313616386559189649818628873201360885114863561871433849392310562240420324124541184922072894743674112008385813206524797339705719943927841000737238536829263999462293327812073977694031533450678814294658448813310358355062172990010057218776552959276079822357999118442569652911841137252149600100700565276158100466005162202573343970306978276847252534468095325123555263218055365945228978707344551035697089291272119410561081682785433267347112004201730246883442214773683709930816192614380876235013041120942522682425974861470480734071163521712582808074424010292553635189349578199640188676254699744790353466214919176628444924887768403978583177596749672727899136850777977048647238254154923526656970397866161296441990529942437879478036091391355566952121521953315623855437681083680150861811665871573150588025638268717014454288701731321346946258968241436837740990454450759021494756612721560291078666396180520641645807595027412136474580538979306690002299111741584613214700173204451559339950669697136740972255062772491953223017200568061522997530107401780251810717734366875479399945241675840204471882500979198489261202187137476566965465229166883180651199068044856469982528299796474307814206186164488971523530193278186380144435144741681608274608891344686251748326450951439382798803892008102026560781581395689103705113906377768711043613249695967346029265710826482863092307266965256101939504464023870374135416867989812810837952382978518983637704042900854771903719203048015910354344756179149592884243724044867290640169560138086409596143062874119066387574514082207006106569889792493739118811927750428926335043055333075524252902185518401002800877091715700653410409153763903294938641977460741897942248767355098774796136278961978641743589186814583336499939456358306370988280340881699408666300207860241643962371603364252510027393512293461588000046877642201073615418169072019035799216907661729316874779915803797094837940023336627687184456884653969751606544652013806474070586796179496911358494897325809475516064094447003925760802431926133636494557464061653401384579243866076483010490731351804639795058450863251064772231141140738974565168617819133279929050516830103252535979978986516966039200896146844132985885125146000303575032009212183033484741613209691900749928129149271783804819644178106078546569585595938831125281464920705301888771471362635935420285353792665685979330465621155689698460141833744493786933490197117784408658148301267560976159442911595200611043955389295283395363766431953906509481717466974672004375489020688385499346624348215293072187492850782973373042407600128112606477374497027956812417140507104045145989409698291142956283669548980278024232520674679939255424329293556722026306106884294360985001514428915450257989099177291952095795963305037339164559243598290827366381621678692007072932786280223257869669948827671993993125125864708877595802895133052082126987274450045593308321099494464340084896419287658502449692527639969154514622673245372186203950859363654415514717107270452527501675804623180096654375758725496712331681109921022467862115916024569892224146913021085793253466366458422579239758635463575840732925725925195017038306607704951630279794102032101647398209878849196090253658683006021930533600376716474880960258451138198975232824883031568353616939691736805469345395848827811323905187975790520469812010173467617673606351377403051044465195378846187111467728548672548367730944172088293408190837203706724348710615965741783532858331526423714933378556536790522852735364299744946149886115279798825777413178694276222706730585302878408886831472165717016445718346704982331128289754734702306817094229097232221477092730126902225894931083450737820030726978048774773022356119577599613430588086734625548436371877772585750929794390734172952315229319751467080111280334316742596129627946134393295320556303917513012817562754349551058396722321597451292320906004741000219716652381562007343464781794996841796592441949265438828001720506994926285267456643222759710706099583513541398523119896464513591476342221494692608440071657987245031780806192267629792708125493160881753379148017442114947070303906027427012353759457014695506091981706686169375537572379864137015685054896595380213435147043953509678263112573859677852051082367266088601721443698251847390721398775592340392590379286556584161523420508342284128037714191999518421949263154799584676652269084936698192876688185899313904374456161094777802464052612454795641977068115001705349140101452855328728576929227417091440058828037374565080848814238668671655391587657208326097599838113480065551220190124008447034423448029010862175293263444820730613166768898614494359154008733780743335134631932526639655321730896623386359731402643750832420433131932420903889769472142453344889424033939905182254320167359790815611925233165902321496291595333129921344493802617571746498951292790650060908152491517579264913601580445243801908341654486000634705212447945226875630789094036430795619462297643891906285193480449680008807910465698133046583795825920632568363780499187612856525240741655021325228863593176858662343757008642284815416062858740934710733776545450196906800118939789959620585451278936070651707350494053461430017660110995990943178310046117224786980193712108048380097391498615151620119323478370149625159514231717791817901199442190145629162654949535699439589977036876404959881492956183728595603295319133942084371988913064792270290893819325277620393275164996085436707147276368807773311593771493061658372875024530006755253398137223051762725562424271973733317686214434950649616195854006487707091647230330182179917562988622075102008461158781191690705590852703778473893640054352555672682381993036603340708185861050845510958687152116725776051558450932408108838017273223318290234477146142174089804042281040535860158470077004581669359808193391488811703162437115125911748977465133450998272524533686999454308829582702218848874269486402725284548926749885892795702536947289244216328652310377616136295390971371187118112369719205521183158697631652250593703491022666046610587063679004016067534561684593699197152365820210725756564229022168712550615432548137228743787761884058023235790250426591924565675296262285677607958243200208846742708171593684725538106325631372433173846154448112559971269514885129508082822119618496679122505062671699501070949962706485976073834160430642431780476246194334369453974327850426751391940402219829884982340079129482606197888102673862571762764538575317548951977783871896342454918399580012916732283254739830955847161836043625868816866295937338156918325216221340978468429849290157803690812919271845773326928882532621670538677529711150172642015869523645695584884859226319235110823639816128282132071432607644679055320343779535119981309864523131735877013631411050937290003708114936378327070891237127063750505001949516540088025452469270829722321180227702157751326194856148809544090149977161670760478408426270107859997474874774088741769515749353687454701504332203744525535889253416219220491243164247555699420997712972043693099313714426860804920450938253418293809528643292170464054455870426957231879650417796484912623747031647048448048008525379229043616122352696162010053509425677780620555647374565043013967074361650994727987363149246509508145715463327600381218068916508531843472866075382832036098723483689231856724589121138998032099719553495328635554051755384148727378232675359137368437902597930620817905694863352669421386591655303644140315145106469803585385875781947256700299240251046459693206321946142018174526819336671807583966635522858506704960483836369082893249570897861826758759247632511475496933181462924408484707281462634704943937864040448959675902516272468060915844247014718086579016583708090050292464680166051229888597138354331865844006671171969017947627017854262195967316420103896799588089213880224531387852184858400619387610415438068296617509790258648985894590074598241808945454985318957485215478994951917486341062920253042323184107606527532367759076385969974858335521077617036194160269287979205981798422635013164491096743604844854874752127161272797197336798598370242286123388477370268146632601898080099048049499490972127909580518076833169705209553250735438715073642186137311307008061001977035371514252907133598434299269311410860378197376993679650111788211628634053425965927321371360345467149245508043667443077419358437787094589294096617057221404240647866919423220091984530549914276217261426860295014507981394316789241963165114457494298964954432651273780814847270859263944762446978084190567543702678255631831644755201181862243512931327329157847751839925898012234456536896808573618494510357603251723636334403282997775701551769912164620111600173138836166172997153877280177987449439382049181666742745489071658731390026220541485743892367306142266715692124717469530023442058089237335298530332779566011735090478518698474774636792588196468146973416383340218373651277602772663627551748866719010609431248255165010498966512991529546009722608117825029484781915777002949711607535222684597295297929189181457452600619204485561471359704185485198200167770722699420309759656850049967401891658065212572669107823888050462187889410975678511160080403669910109417662096733792220132644136502010121276384828873516504528430523092554683931047099680449784850330331035112290035715123950033274882392107347637052150002933673781965080521235704907404460805001942295112578908166436083986041168849976336344632191519323067301404885682787537557007505146927889490819850192539866380880812079079910520243456982133777327172627706035254295808091612503602665753494836770680949134625305623953193530506143666843796601741558330574376165904477727040796998496586571563710207994547845686403836301039251274879724484338545435052816769490372999971617806885305105242873088352433354927024314040956033671130225003369715994857342139307033085324261485048684347966692013964403993812388902495391615530102632796890356596214713326513433114451577259032846690570016945974839865343782228922851344078532015940380809722589146786625131505673627361013396651425455983634250956357954863053388147287104304019199558327170764878614123192270346373161338993025841070391751662155294251366233591378005094834210281676320723133616132909619054895046194620878527581885243098260187875881988325745904740156439531507079310642462458163994451293206658093830310179055376075308302357284383211131643356251761862702296489216272309976454672928943709798193324370840301269697223921221883019087228184168736905414692164621972025886477678376895426629312233413502700809285231550380946903322191892568588541791278616204494815573270206608822003451994689739757327580816473667805204329188194702802571311971864618795546165072746283131638712895338397479540530225319825261936470124590237917648330590963989619810694287819617961977104139964698641829622275316426666291114460519751554880761929090971417730989564156586736370687043829760409618714674559364718482616295774803117313244755928773088850716487948060599766788059655332176145819118567925612439259304364669075363644756457735868955068241407271293441407841789326757847182030616517783246253335594234582356747484273491057909801040154284291173358161846131686845625466165417878345596149495698974052444220131327761416208939367058612782711779018494637054230664438151659974453614713112066260848164580410018423037806276689747114490458086699359945496861398395031092066818122851846105806000775140481146210869028733809705175796864594024715343275468401231800134895795477508404355491812590997436378316383384929406917240839437526617673023062376385760718681506194890609090002392888594276744221089443537676001000000590723475947331642400201238530785120150814867169712564966661942635170712934370843407635039860922943794562081949207449128397905793218771429547341867335686535733974908850877309955442177738876699104355913034079371494496723318722232176755389765021769975777171721731922516841582894901545646585381860255075225763667971611753899219150282876902520165638302014141996207575574812308347145590071411833515261581671443919697168742329329240094627247153400787180308888804444089224853542408566524643040522051698309949364432584917446402497791648764915934710747174773527393834740747955894631611186556140292338154870456290786271163311691305537661995797536879944694057338550977428152488412876726858911266381426516887361754845166192969256867252351403588381280915058163866405229412021095840946308691910494478417711310560257000962350731070136761962993957018810044196664547911021208857803243450072700815238004979952508076788990381441884665567886465252407179682127700250123824926435052731505825252008360482840847626827678269590367275582244388157950467182889608466596448389932675754515825862425081639219886275947742898503837919254832578053392337481027957125015402320866439818379913956609349425870548808295068004687028879172309711887238311186509818508708760158479392860546287170841998675011101394892519268337551850493639230262438589769740648570762052720690950188186339657092253325483990331598050975225917380451730817396049362814788327616006025233877036642742199764978420003631740526514772801672072648080224637797804466786048791476392594828305559607156694793761716894468443484263555180986576859454375626217709261121189291944920511760647474682798560684505909684882847286421482416713530609187619859226331414287200682448716559601582435209583099916194277042799885145775263499467380523630941205875543179091442904520598771333953220812986615748123345139044072239429905602504206034933846589738336892967395399010492825297558384165793597445436114004986504688569974617156551158915370466066898786781264579627298471961376301514811840006088068671173588560318695455942135043687578028106596400136247981259487811780646369861383811614364357816570515199774249242268667642349599072902594642914338310594834721674018950514986226112965329714368179228048413907256762123934599003292436600886088683031562157587932147422161787166161733325940644977202067989101652587078308940929438106443435604230924425626459945151014951497352612260395512913764288920285806673877353972604244753141450278456831940631245647312190482634989691392434631947406811292175893269953221568412529281760308132624190584376776941207454575922154107774805605251743787849497608194401206966010934031356930289808983488867131461562177306003310232832298068101584488496655805761067936067083959322700282054879840399644446518329291811646095370678745964724909816394866319364640566494171642986712462747600741040637569496719167216441645278954151659394567600447278288873160896006473476982139027762967113714680440323622102047342650484626900815692288038970511081167488479270573411421866637404582002067364159631550218762200334477908846407897490875296702010200337899355933039125600919228446454741042933001379938658784277777375713576088719152251878422680344718017706818045481923956467156191985979975078968614942730825391548813622970331406728944532526546920071008038899741835683215990041233439812585692492039151393530061483969020224889390001762521257973859290951241067052482408704338445074068058337206865403070063225928826687415953973156837706074113562729099921407927660242981905101990272048780167495387877276413967454866830355991942039529834649984918661368459311589266475820626605971466722710668426494241581850332954260082969985626366088290666913835998894847212735510296523298893234158709591427466298244161727812390384734796568104381571821395607840521420883660337222358370465220724041261440789109465782845662547844928242285901719456774457334038825603230013293413694418345050772656292887854858433924864810924926983182931325512315187658124573612209989304124796181282354344791874904364932137141557285295571331175756739002435385038489308125993642690063777153456105069383569597198315314636509304823515328611303485355020839970524413623051224511062629022450587939697772709119852624197707469028425215861432023745623159890779887288189005031582484323362297036843493668191442233533097551620562177707310672132731221617919665168068646385742011989508552996279537794758240714674387331319957691005655621080660496354494375351681917127846136302343281802158804904502934228763760176858827801564663750288682232714241218301987484343976041393459301386018475328528149533457409824893023018414484502765779046541291623180065771670676006363482695562863574571636540507117964061340670876869028369684583840427044565657652271387780266092283595483554363417628767847852369789070570305103452784218442695568165354486850840628290184457149533521221199491147045737547096112510581076933762457285754787078441746550074938141153251177308839466334985237907367493953562467205537926224259990065736955903323585807315755389674755136867753920461450276569048858259053484807020601665209633751539477201376163479038178803490813129689224388930450288390741601398328663409314316605027270735977929766583541181453813372877427956279318876690241518944334272201745612815949745514685597029222379294447389491537875906706057400192155070222277285160366691676939055029480057276812286556316844923634370473026981264069288252991135359128341512873646640923659114041734162502968945920280981325503865209807753331940361264564834570219707801953730689385491935437304716678438106743769922125565522188343695591124819736395626273116596200300413526150726301731552491332229044865632707476599894438058906548957597200804012425340142210070710812597201426671832517023954033726693024235501361443636793008388093948871541850241119702469850585090745622645468056136402521072609409748565900212751853341236765246491416681356396024007391496466595293816233769221874157113043708447575321639342664675715068803372646107839082379047406077184909364835055430547823763824983995857156829857649737502162327204742145659566462552895263665051223515086313792644386109670459998613784840735568090810581212741126832689084470903857416905088799784904740596730637650163676057427692446252817830320983341049369103795151166665592145598363603076846771260577703350506669582731964152691326778645642959066675914893499311503710668961200320237932177829279127877186820757202247443416979980458508560739289989557295613098019958378956664799022354985121307225000963960702440009876836679147119380237794005052628595042015672601606733262042806754646608165678238194920384261320499157886044236345021814943147007267990718143465798823638353849905071517274491625956107670054985384412154262450154340723716816514867070562185911130316022543411816653227760563710068267479859748758409375854793038075325944274706875794231922729622373508393535150063873136018697945783531679893213303096178928519683380476867088334021562129743052562391746575944797171399897803795136655260976621254551897750707915927834860049157222654662185300620695938383807675545773292907731001235321720234340962127451210690632637746719881760765524604050931337967459488062197710964973204955376098450854533916811353612806981603476722872690040816137800538465776656995785580354419708432069188873667588081304251546849596411051991649206960021165139586573537969267313761819225211954504829900463478340680524724782512654240765035623555557662831999416316132527633671785496804852936540090911680478399973412635824033202639453664973044899314247395348418745443418290135349778883239076253963160379877101486038390607659428228494186033893929761202046222567193616511638474621974022905875035143258428629636236747859177604169061294664691128574263425278301323917127425764851542550115835830699141655134460997764675641971910686993478392988175513576607753459211727215340245293654888692500093776094747151402890075388306192574659705020216015198300927251099264184106605902104896700288909779242458976319797612260188008084259089190306283741011541265369384629005604239941726760134577593690849823940684812447122125853452304342368938956171853097349527381695528729302773185100382571972920549518027256504590109453750242488713183149560413717219833986612618760970230524905022450048027403944150837110465331386587777096088550068584936788555232724365422751877799209068743531704769283640945972541856837752136894143536754880762758795315574223294806652715599935164553991646514474516125821394096676511381168762279772351109451183645225340584067158030541599107938392161618067464009858951552352258753060208154402271492055319920016683928491720549294767428976399281394424454148538054433777035168327640738301666350073749723217955005847564506855404755728383569557581614031141500580458401460903522063854256870326221545782204658511315574066706412284665045557966218006421320077629609565215660177057632052921354683234334709293259762085474299873102172947520865041106046693217198803267648577757671373633971536450802024780595618323695896001566653078299326738525900796337272793032726694420825448933157147907126489637948013088361120944825188421966891802241383489534146935616217553266983583582409231378576050480233748915730522693408743378123376997755588724801429965978972005423999761859813223775835279410852957032805822313280276667783934380418459101982376121375182600240914403185596171543341529612347043085297803815963084054106544362118861317883128633359628739297820428680048378435384517717187473223333081035773929231455909975970633796448616197347477289509271292657887916131069434523513259671701942102798344299446622504922005640947820799271310785565634241227220380564912553948236869741111471455953860053090963695200132295310994227436784547545749209168443913432776906211392761424751204385969817001677932771926884211642968046174450598205207922447311036277505086114663138787141744690893154108942318575858349141898634710893627420009621766758870928460655256942850457471718128688203374651695895421637435081076203358029322117518230312180098567779743735845948583009880976466472524589545236248152322868759837289023222303047687458254618590239534546377914858348765175545949785153647063016643920570135223578921583346580857133860950701227500159087873131333267010695472546421065623892346845702439997713450570726378190984152233737931703979219305544691685555807441888230831540120212913542275619941173553986566323566361311526950853939195041674089339127064952377911040522883546903797623476016802180234839457909895263897783191372257105033406005756699261255541801974151266922425140150762873970378371174865391147115872738815319029839437375204090159153120580706417857170919739807508993105698475122354065119714373292737785423804091216193303953859081875272888616726738150753311021152918991024633296105437260871810437093345212428942848651158308667568999727207548437583262366611534996197084584116395924915316534981262187718606785926274365830616426542051257128163339625532499226615988769269602755246998964752909573752726329344481713267835857281687921193435395289090890576829111942333496224182640039704817547204324732536600280057075458981158097742911198588157589048907222795106391227698095547176574616356452331755142307185985600956010529283949069546928697531685784821992704835812211644199110913237112623723582008150417778445264845071363776942671953548624879183932953430031417369726578228453547309052961579114630454586750784151220374432554490742020009567385727003181344230276068206818328093879155447316565476290580396217241437737427984096712754848536874261402059525714734421931179828005356220799418784589953956525569613352166224729434728118994392387625420106098581666038127549843184138734537923901912732770437344240305260145775205719482546095807373057520826430447866967219681262843376648949875550326484293505966069768899160882232390066599306018911986710137217043224394413406405893132250926245037672095579220301588473889946382220405667196770404357685159065621673548126532478684522518636754621412680374739923487158147186622291010918039673595236947155002432296388098356232130969245272709413411339482890966882506086111273051146009975354946399604834778140417173675874978266714121652771897515922174552126670238293402640517388590900110531498831812706305686059134423243082323482253540435076641953876052552431280458726300475542797466857180515443621861584486631775351465139494160278075653860814495307085723818771963091686542685881512523169416613025504981247109853246272074914325054012772442797010633619990810455291316242953435548515197851499785819005658298371161523908397577346835506055292012832789895264353548732053652809513507869125347794477776883564043857474327442209443141491962220746991824107325848050961249531121478155013010967557003521314308967385417489418632438591529449914716343200680500124821448371248778590478899305249363934538024163024620932745134144448854893247130158857286030750625326862231002503857365727437794471921252659144298019894946860492953978364582939723045228199298214051444777566373587023555759432410331148733338466733690518475036973372153850159444918304168523345625347321783970541793460894586295917649483727375661554697569247565038985165718187143296880768762380546224381674677195991872173708628791302008248739250461182706285875001522567652940947285180255940752282379938909785617520101614581011006566615045685825363922340143319115965390182749008778022991918310682560501744796738502870664792742444335347308977877492298246760802320796207716644284953475730318311689523388673306391812651421722476795965569546195375980381986621381387330000030089778884938856786482005158909129212668867957206284902226946391793977537301559610405608953113959094854473342836361529334011594709617411850979132289596168988474701181091331373697606420529990342553745520763894621775755606359234552339518346441586340586549388659119858048898302931036510146727909098337026489572736611035633514720845215321113424960729742545055430925347485955707811059334382203603978459605889088013785658396372672510818348488028416834470172614862542957164153218228384041751683983756579661643821081364572715090886393911676911071994269652090102224689741772336989285357338370870339379725838722455704153452344818012683731916191766363293318801840454808720185439291343076716908203677123281287120193130629275829197287368500639105189051851955329443342327957247217247982383482685274340121968830818260103563455074561361330436442051801220410547987814213582492194878191802345107344535751399041774049801421399094414551608671396131814886063427499702203506918011030341104473621351985324448474501710522623537374381717695559063783176959399611872661805856413170006084872952122580876522106303285258731508207363695283771017312932930925143378402998086448186115016962312207494368594301658357496872255665536071562955249457743625777971961584899819343481004886623014168394472781741069176610910635004528857804179853876477438474396307761279421189858391897748935240027846583030613174929250289084234119473052787138026012823237603444583250991871394631680435880476186722572474871026023151462915668203776130170200726214623807982353511094881757166781700755878160393470149668633020926658250001482866195194568155029030810261882930981565645887568093236641441075076471440091201150705337722205888821636804162996319302013617774566443692116467716483014423392826722110246203258640389658931344156547649440661237479722529880973140698167270319561847685806868745882446771641843739572418355921785435612631331423619346311880008666833917275945424955444024386889975714113593965366493859496241748047572077341771609614365850505137908721131559053388067871619738634846233761749911916650413387048940960225274963249267381665323120496747143571858955093114433361250408113310225067246629473547136592897053818804959459288790340296318763199480156247623008544405725848174332708564612293154353753916821134931665837574331602883453243584602221132407071465303729523224198960257390480719222436707868240011557023982997607862642083453788273003772728172614132624036867203012488719691287032704949321584505234559619868835663902413436843558619773120883350674575422762491934626234031429896590808485526222172947850299412132248486069374464584951558265056561420675684578070707107198620729941345662861260727164410757232954467842830689039190531006333740796318275167490561273337287030316323285114908189714680429231331729109932093587294832056554845534057655988541820778945175506517075944946878897337855709532048585224132863138998199478886889672194080687431801816748298322692238673016719210542129182504583099821410632688351750253239241172056315498185096414552776809609257665632071921217195605755729925827089328052269032708962212133937223404661106219166599518357549143520459962978241095944371873632092947599657940901452050649824060626538825091425547985480351375793556402476168182400091285655740804515258885710500903808757108108283905949260439241036533268680174244622397888331449179318729285040671247658733317099684850992947256470723363325145582749090373816886882846005720462079078819572298728046468125083465229456821798200638938909810231122399671418547768260950279024576320726466255993399036167044494089152065508882083453220845911282919492057556309535022590488998722921248387874646762420620593417257505584113503887213188341335809590523674348560110086119054085902131233270534074307947724523737081662674249752976250624133926084889767531582016998800749033608144732253587403451091509034394397636146656761913855279709840898901078329168476554717781440922682559092374613224523685196520595586403163829559280224445623890765673746505954010458212928332757049413487562549442429181306516936877360221115128726685972639592599888699325192118635944274014969345946267003167007559264464567829589567975488776313271797642751494913069074281326071463960396510421182158180537067523990379132122545944938998082899964733776318188534911862741085449175290297241333696335675653343523830602347564788057645193087700485080763625904723681759131134735723095351181289485503135210491597681182478458947973813086464668447676283513770502344168402989651883434370813832887889744651091119563326818280835140599590379326089037596979968498981710583912058973868478783712896039958578314316020410395195531890008452401786426934530896347617195493792943681957795753367111747024997982264749081367915131785021714691068212320807300339420330133989242861528914413886032136839933897810853209715347103279543888911070338168415726262862555377555732511444829020630680674267218888796227168548937167065788079306216110077694547185270161705901813470359933346042863906275366702607776838821840393780066189556030036164819125662524392855797545149211895245140048380532458769572849040229683937509355376442588726433116327240567878104044330048694606478892248115503280732710926643997265989077701665264074532749071137563697663352366286670682934593301814218264364720318170524309807643819396601259978573252329586251405595299323051620448538640268356682334426186735345494395527905478376900349857047279845129175763742661271821933666292457135651019771428676312187109325335915641686665674333308700029096990020379542708098401855282122855394998323955020786536482184605376687757927153235555112879398588951632152586112246388168791296683377735951143908191705117920557691402863077373683330683934013129964573560926593558057050369701086902998645190171020958331788390500667687311209230675496440949791549744643554055705888849772366466780897780303842859061463788592229905956759109686135159197841399689871318729662895053600608223414947370120302865527416289986941362383403576410960099488158554524651813597877697472070092229190330557482498487661889437280413461653507129888087822623518073531917022066953322095509269390713149263507014760969590655913450372192623301943364762782407417993951868048104355048539598894209916999265137521947584250966652904677873538355512425663931934627357474060089927076095376375877907439413509051585581965742204193135961797155893637889817425087740103840769466864705554147122522210095582832120900450468920315403443805508212934319351780390129617761283196798704341361092364106576946460343349034468809671704538328913954175421291921171876676852407739436198833997838529660509916846160386609794348406018587088249519114942745774300966670222234566104271565461316223400826058251804769505251300884733338739966418128288843174869164720703773613246956364070015357083511455575814732331338643223582235376628666040628221299047663059449956352869385893416690812559678447208080389992949391466804214490084360873594060399739111964257491515771799503212664768859758327729886514065224702996952060741340633531299271915385310027746962350930616446282070034485295439546020844832113636323006130467725266356491950853639486150117847794921269421010923889456337914740162819359546181011804092361857703945903394287651450733670005950781634354766768892880408001077775880618570357089710542068755654512353916799196385941906824274396168977323352846147035433899922683725571848904318427669911942411860627169347607926093374427808604135190258001401867666024484792554932488531889952241855519438233603230459419429179888793485662764265304669905694600177747503117638042498826455165676281554299799953354650172322494978628073796427174782529559219459013222455465340527540541005395508083905670100415914890900951264354196143409499545318976849145974968128447145429977071524504536277003315805211781857664559366228273229086507183556521457379163180551211318124382690561459756946519327358748488322458114159319935435162656495472809275916069725901722476837182887025953034970754342583651936210727774779838748922907725218416078031417382301966125600439241978325595530144047683598671410533337205279183854170648732316001749189408774884376867772963795143783336818536132604489024988325126191791851328318815036236895845826366488507074616076425062808081061484076734395824375998063390922287017898815475107013561136041922868850235876775802658259571610041173388356821245974163858931768297750712852815450098577388669442030373396345401855232947997602500407267717641066707863234560609356414454048910690382646287277274281414541952643016757932225107613527060105760627392535797302267117294811803634591163835710830321778503078796155662209572883290085239575217495790051580458747731727930223644867854459065370482284958560296916558923858293838469382100126077486804941188473288159492421533282197222166204048098641447616251657259939245297928423192492808520244981038288387107161935310003289296425612401973355592053786105001000320523801569972697049644437792201565204731728260959514450775985820325918578005287591992035573845155167588020551559638791975980616330464834490455427757906396795457344101599319104897825242035048163557559592228140615928621018268170816560113662450316685082590474224075691410858811001930206038334967531253034173821307568560882018723716696391384704006481412962036758031449934114608217692218169939108848723438931775827029709090337969564139531554770575112306105692043198723095971528091089016724219785293028845347358580352343739743072859129793925747542449461903546006778164411660851354865358494824046331186302606981048227156484960428810204853789578511938964611517128960245396854752289487053069740923179091767607310658308528168320901801241700994719208045666639916194554777062841220046700549411599499834726286696208548497171921661167566192231647017131071136846787070441086648549863495831836660216280044817771530607955419866852808202717491233168727575763295617249601077867996081054514668155905588559309349291300967107775730166430226286236469911333317021487780375099684131585429448423087369465122475145809455126078050170950781048555940538473477867416397634668447329829381467634487432715906715901806297769641067385271869527927758454009774099624966706152952217967173323642315654035373867535970652770036087214277781393338598241481482358033953882234223324271769461622569141263414298576320960180849112432034389018253689783384088976840779613362973515005955150439659243952643570660591467155965638547609503794876575281051574725314300761377081368420065736575439971144087990700760795676974690596721472052629225413181807335455200656866959593437310887509773016536727483494487022594173588820558373261203514943369441443118324752798906118493879624401163282804964756712560367538121042838255588761387720616683197196641053928313207589627451545863008440395181285341732036023850800828244853407207474379366735592880714034722541975251314041247187522801070590859227531771009122159984339923221834679676292127357247353456694600710204897175960447427886437151159024267410532763406776607127878549531710515925459819596363126584294955834032952135933236137238957176892385497197946480088880019321681869242309089618074029223966922070234216817059919351465920874251743913049690545584616138923119066186500972703266618436556487817480913840040361746184630220002022764354272787172579516105987426536436560664767656244494855034683362354111995044803712739605268222268103811723168958093970450828918502245132563184880011614427424944065049823920390738064407262570011475236621409727054090784330236623976534619390915531779556168153602526884790913740201164562814920722198505648813135419608911503689054954531947820999200666007188148868016686206034398644176482252041541578322262058138949811834073942856446205837823823861181468346783647743121738498747968545031271177062395254919859017531372799531105928523485964472259984876552595246206760034386958657014723937923361159512743276812712924774532197309046086462368574294696608722542004126085393256784895962045323905018251268060467283295537414167006239807533145984972783012821310536518077200448204276540646168407615291700920720840582693958886258103144217304268636802731284390102089766694360417601857992569175479681266166551978028480565799695699903854617595347507265031777569974875798151742199420074978524643915738367457113346631081449312755164813556254055582358806115271100090150483704356075529362898768757213018011805196315812691371117040312257381172536018874724500760749179308323343240669650446775723160066737413499783860031485985023366838814534013699860970904283816512284290872728876515473615345292725600751728903411153574642131487391295111932113401783127558517324120599690449521876000653608889100141774236042508280816310993770525667694734672697663593145800788710930929718551043176799445980398127146103859198657048749986049331903132576610549822125838513320488365928798438172418172052717116097287416333182656458315889771393471358700010830360156225916596531375822851479421943845266645413632479827771757019058909721140992926483073803405397991547854217278813127989432765865026826113331457211601889674667983414557606597151637405532367291317003321469345502451408254927846175091233178626910170690347182086614410884221648023487364769371956101062897086276972799970256710788713325873073422469273710775490452556681050560729421970344655495189734178073044531378463511890294195626877537005796526949410058804797357726242150147984387199897934004578043960549694859977414893606724444404253410037135195678627500437800614071236020529890381179795364186078958129069868148274079204641476573469512732585204492990641620973266178498686133180964881881403403406776203223644458945811935480709992552517849225330419954725589500525430627645584620528536069848968243864063810619026299648251278890556719379921826657353542001728683831781696408314149973478152351093857316795173937801571238282372797976116181188515857665176099956678851157900762156462232145050193142623339546931903360725325375266201531390489416820096623819700914480559945663462871346634975946258137991744328021731255910123655585296154952618234776000659230650742985220113527765414113401427269038526170297495376335993282461842919522590981181668036300904374452935027672150469759554196486048238625619031484622422234199981745044197494414467000511991128005481164872625246345338962456458841389904246735864119065400559852264384190643776517926763769417311028178085890212539416231133231845731026285533915546957092179834999782844930086054755049328834289281573300431599764110445976190425285460514983252885909321355720097159409115750612743396263943462098296763291338547841719088249924989467211041529142852570235080208452684776219918802512786114680030757384873973596688622608548905569182548591495438893509323315281451345156217887872107779295488136119175263902893485366818520332632388047507807285762554359051014812506692510126412003443133713182381581009666744161023069239476574622203004051939667613036457610618907778837863281813095318236612874891460147653183469867079867891978277440190258572640493412897226102543262020823095070541725803356228996432368686569032874922758556364438330248610222485168752889927697560661248824427143751156059091867744016675503761721258342743575860535074577283716923227707294034698042103808163763048652867120742055394550787936717637682599639195549363116009608935009086421146851408315585954129716035780107980635214589525722740175452496675899643887079902340355272734936722121197575470441948262434648775311639626695766277709094303186025270991340515604352265083428134524320553843784057318673616415559484822183837104446475868335901349260527064345113130547945255141045449349407430721585229450460706771052306595382330450733236721915183303632238647084564009444413014128414725171780517990155915283774321238372682613192475154267128744329257638894499022443511511067137822710803362768931770713876349858574543998958375559282116120959219983670861178925489789758392580638276640596282927962064754087042761203065455935472322615076249144301903358619956455132021863442538157218912936179817210279161984664711551761554771113286402164186964582288306226554012130531090142055097366415302923074783584830410960338858602541063665991602643564434007166413801164038211260631513465331437404570504449880371684079653143845233464939256572386552418768901433345219267298056429846370619629199170317705804162615699417026055609483205782157144574593337163910635769935675513894683917849003292557722557119204832285020142941923769807244798752259512363966264533627854473320435627936561527528321190351761468612444256783724044977693083146634096892221274029587089819415525132143339681364380825281788184650887955086990193654498585785243579967291913381966943783777643670141526701928374242675569166801465589494823174246365335122653607390294205647255094034120804567757657664766167295555290385342071189039105638719359834430486890242012815389241779339767659188595083780005590312831209085569575219458377276961331349585353927059009562856043202309657440660186536647514329078083068383240699810957897421525274104450130025851527397859198779882517282473747655398822059496680821521366227571255961338593299831346180271721582531555904691029673640066903262520873302834606524164257347653770663635857607020860527023309859691371368909064800998525436214228282899865036724108760177892431278772048303829940068397566422569448192723957947502975943560435124774448480874116194323090809044155849824608819162915080661826573979051295991567486120907337451890948481500077011106884859021667285272973844926894931423331396326615010119070717867080676902245126268303374147235287580177121392775226612796844966349379035551409043021527455094143775255769807234919016219897104264846476070269132686308971910592516372061183477829160028758032521248935995933860649784137434715107843659633735764715984834876580559036823093126030901231184306681031266270575895222347226624175953342263476659229467898000679470712025164602734170144894619525072088112532057904887291417843106699628609663884604354207224050745280429252277778707218837714346167010073986530916518405358813825177234470920246160491701693078602282821947367021872456186925257888749138603247064814030276785201948882727408811938676119943795989990617283651977423278561532889828963098033762986787221551064053176669532606839136766567169929965749495447593465599668353766302953202477353116789601680219459533601874552961767303534223566166939066672723320653353155619693499356290570101818578046488940221895458948979584100015033591145658099264427266163217970027944923342477634145983369161731335437969388171597035874594579312908684274396751591086973989635053550130400795529333625355116586500846201755084188755344095634690473594008600967422714378489445257208725935793245681704379526889520081593182594888043875774120646117266019499213043592836951230232467368525551713722794012501927522207455383544680903161002442652205900131832148078994584855028669870672938370963964709505744704020507677429000674921890023443949352736528231248884468634872103004224762716359043598623953688843318447929536668710017767353694691041282898284659425571195490459306308337325667705931748069588490649490397319558238155935770615343937005992019153914783095979775558710034716450214707043930948905541570662217886454443430784864252435972150316989353015251071755911577155179149215997098645238618958461781935548277196347805245267943289766166366302323030514594837362224976570160816905785578876027203309464365656742212652958782992224535591960040758010592229065724256750733573380054768662920382017317970412802868854408200024127771478590443448114841596675097642095812593626681939074672078292911695542115370923867667826809466840307660604130255934266766913110295739066938447999275998230624626291641346811477710918815540769607292800957205509126723613703533990494159438252405663078768612198369026754176090819813800472377828359000241585935469797302791195102021167189556643699423627766168003037539294001026765862757963847284759185852953876385792296766136304198549991578088116667179813246817724453938382020614839230031260109786555317214273253447070268862549225891054353545831996040098928605401470149900496480212137449974851353099098160898593780237467119394707623786970373984725507131075788117625137774744347176138384243333606540194326249930254685576641059628484394687477765255244513188162557121278074976274640490391512869244036142368316736403671305860967885065985071541857296233128292195565917060359543698158386050990685556555359076716030292243287668837918087023163247665281367803927274455884098443850967888986855044811846428083179287455337989784970474694919024786298107342471784343039033506580544358735715343466609966620899459026004560545043550027295376934074435980733016373055790860533934617103976869347680060288579686109952139690017370358232218300775444839911450318662503878751068514461164774611398964557066997877107922372384113860910121147584690599342566278777211079657706904809792785473498576748027480384154151700383293613404690030427517028964105195574111142637195827760421462162550771589427513173786378797648012926756232349148268581621931232703364308241759004813275231411519754669004083447143533977369532871351167012611930022535615254708433679348451640914677008059895047499108515411003495838887000280724407914123480188231478424612881835313468234197014249600364104248574356404843112479993144018258360812048980581070249301126019787017402348672592826915338569047918201696011903543746407834782410989033403091418077219250563975371482006367604594034418674420335882428151733689057621283072611776932994029289535678484643472223546541204702976345530508824536292170475413635632004481359358468647660916400824116886361682271585470342937123759711831384839876529159654858591900574941559046542999616090015814384753050920618547231909047751574786515029237911137705152171944164504014398651544282230916906714644105819029585702337125082948948923586394100814264256926468961740750061118353331329698698597792527524030791765662782265107569594782641748710685688830119164172817850082342187227256847987450453511113451151227035424213165887700501734953615682559835297173486702052979040584158502114671534240274664429767415592939218479688433088769417578726138036821922304526415088061393040004920366498233404168650434875083060808438954109787626957473702090283987180363046382615618168368830471972254930333630152176481019018087296266287910402861880516868699107823398955163833094349967894091406651120029356724835144679647413379396617560466808110569921062191488777790189973599573914093654316351736441819893532926220084618140319497186658536060485994221368722749201377609970163545726463982345278993974962347227683446581331515215008166594908619345080368006050096270601956411492245497457442451424974064857522097206635637405120476600230950842029409802151361733439807451530634203619814972618246957474473777286655281544222163615094074099339683908384182037997610649736977513567549165176845717318822480491945114214501390320313390292343383203037462628679288513456655961347011769722682664092231843830386368688240276686441401147542365248839412467475110336765484641202149411632163577883683360668757041662841473586788250976197253442045925652687162763757179139330158584583969628694435979750032343110975032585434678733166966514571770707540261001541196255247075553081105652466711722742333025250779398166521332965971052147718369632632978844413622915255679735735298491158150707047093206802670349426286859283791708096750076042542971978614026939680457825302071296025323655910761015990513788481573769456221478437822382024917731558838623081110691320060345091948960427989864808726628410292830169150660006701681494526163556225924989380893772335932425379535113956283173938689439870181397025249317010957128283372637745155504989974567222409884352040793792206739061613844225274585715431280456706629220076124226011898085869434666267132525447044760199000671753799760548712940972237072077450124875146903498631149395926238769357189246207443530375517501444727884908308758387025014425164811789346448504556706866123102614848472093784248379522246295020519644586866596689137329007460967578963809657640913142216393963104196155671663397752446125250441448733028698146843916268460580237840504599065500958667978719915622073094487982607354650094521498668905840841770088730169178345911095549488561749130390268794416903419300265419250424976373700228413210895958710170997646185810603251810404735971855079930174702394266171600701877662644114546632339723541191390601548988951314298122441128591459339364927948588120033459814526626823959280785727197468313132195511419078959992733327603043213553554136944271690350100999359970813561350904097513287027841527987877894102824572889037379981229820191805554881555964013966655895543109830755236613863144238915349689378324848246052409028374790677411068817870389668802142879998341837657015890289644902089467678288788867439778116171128340401637600797139543694517876987796669241687075543781112603245500486024158923558675824179321073788109633976383711582199602762618563434605499909353874858791610407357024774931167025149430398007138581017139987385973903004844374156850647598752307824572909729153737176312191595780614906729478543995334822739143868349125886473255863042641956922973439701505807825280428218023374495299896984986852931828109853203568915137436788182894926591692903407498092549947492926857582139773370011567999312045127402369908434995307861584830142757357274388149428531552049182570876023666916198608189580715446494862034146105070529441955190215457162790302274163593280228464305664055762226046234083340819981111674845844206588819719643849348821592855677931168859326781668199594719566221487187374190740965641444913675387445664582142521285415841229767095788862711957624941408144962591831741632244480541799981354633067572734942038023967170075190651941923665070717599252944356333200555535894506595348067532929556069081818345577476119403477594295020223835526050899900205126665621700666094506122174194679785149424004961230637903493319390248271433712823300603041715141503049926323847556989116397221603418480306254807962934338906130803009168468689439457959405063700444849375892832461555792892974041864362091166062864447738221196149880877958132887206281663813370399689100751992516042223362691240247591121558382517274591317238499448721370926618804786124683068827456158197792681979134347378816692574451862229061590529774339309761445390374643424528951516143876304405726747515379086294163823919316226910440177298407914776211484432422561645532374172804158360553284879093075210756854366868144267694301781960430381892893950185460129820509393056109298855888214876468586188469374725663905329804899642320624240166611195853994423908577173393253156315885449331740184301250944868682535639789830457793275978227102371478415157842621147237773161648282630853998798834192135867121129558306582159072662181081850962729596351518198982941763043891059985008903385731954956120772367603905615469688735730504258313509760842636177942087977963948028426256597858805325323806496049499336940495018077052708539971116515963846471553496858624424116968107298838799194453642593003240351118694859575127172751629383212676411552982410501710836061226596078239554091211204004103627414325624583566752516261448898675182792110680734529314162683174723903561490397675531238449261966727626923805521445589486339554408698595524227902660006121971949656050087818434507489796126895666706186915166720067085457129111938810982277432717938224188208554122060296491146749063166878357923697753146018410772469999532279192524376490625915389011640233733382685252034417837199852592109060222150829842453135750442036026284121418947444289088727965900723464443013558083623236513172257838847354852402950661321541969551539428897419070160737432052990516628985302227086960176713218241410206645049175380173386210616971300944790802376874312796523054582809807497041077660187220302021413927780384638593355769527183944296730601689720046314271005588565213723619458328073836362485220201232278897784440553746265794784629511962996140873487839681626621291950859422697415350038245213723111504847199506255609039765375899431242830090081714940966124716239327003251846388117854212119566187404563730655253959525282561895862181928611066770920180087075185359724938528345275443280007442225721901971021298803238480771578958287364136609211328808225334152073516266667996394414690723381907000202628753628910638363536489969656870770482132465396438621284369427159096612777059386645450424038221046963977291570659339165626442041745370493762389163780494230411225959445863055991350762750088320161204442865243972233028177431816847132596402392223426773358771320804001208256295451537819632887109701897482120569354310659963150260459198275922283617352387476149657821007323137367715761077702004834404459873816466635139524859078654215058691263778774619555553619210351813222111320213793793957968011630841661355873549093790988576551148337547668897536423335574673324465886595707841747195701260982732169824782749792519984083096816409445117670526864331834809716521586773637103210922109953473076953513475904107055724899729792995979425207740971914507875913988382461486885994210936511435446684954527348096690735942014087399734579289695729841840309317024545724624920696900322387985216009413142306768278814790070783838409385636535797558385842598209108230181136072007154972934259283663498557057682173689682741692581825719280777710222664001221210053354837858368824232694292580718292812906895561362680079309206867378380676055963557902811440167566824687424734088456628273953127959271087142508388865492441644385558641920019494225086255907603807065797720324715377910688454665861249323491878101363880610428664563284182144090488071114393917843779148685340519147447490273726356708024150516697906658274133935289001461082465463851911543318793541100673075782423652058097016087597359859316945547338685896351317331208614668529989584425540388990292286513488688411852213557970405942025136098414289911099738137442175594415616646920843263677591783739765932751925321954366045063290062504584423088209132791787518603089554540781140850370255632310100541112092680058440205380194730686564903599813810438330293783002320276295548627815472225695518670971139553624004119662634141908460869026701233740393481715792463239788654177020123015589278493918205501137630268191632632967954388506044129315808239208234028205716623553284561896782464960501705173181703047857043359415874345062006264102834589049411499885437541038838052004273307568191899381928668094987905408900555896584617659862093292398197372129080543966898928258327547486732829090947210924857135799732418302520719244902106400390036479969137852981456509205927957581779538959549131079198866042019207943916136215846815511921627661416766020028949429447885429971372750494788295120827479925370083315034909618647623860725711555053624554180666400182581152424522082848308016117355564108382510447619882413975268100197737723690093219653970114714206684029228011780272859970450850534414961321523973190031988460012744323958111786881392055306232728817193672580177025288725705551028970464310677178810902152597462837400770071904464591629168661474601999781207439722058978295112101092995242176432324165466004853945819249868265245504747825058001472299304940736384550914751595410990544800588216330949978490765408704006623602838312092942380966921862300831936514311737825891238736119436074139346957016234185077942434971958264238441630901767880887407497366676594859880957340293486789879131787716320970090647008012597963978767306421546415813989267620423052076663482250328742317815692352557246700695660189546598438748320017659041109752187811528096069167883545216923052273044507885255138140908351628892552987570368757255810960484161517895704597224871959608106989551724042498822375098115450784707953695410967010431324879978792699608658982594171475099545808885477170736877019149351981502704106000093515394939242304624301590831247902628140546388549036098299170807155007327463227384510173224190292459810711106880859698895914172493298798172806848457785050862786128329699360656990940827161435336051972089024571341550846363381034590793055513657175792944646331505750735430051680138839507539216200081154982313871699263765429137300160060884381468880878704430481321472270983524988702922790393495678484976550944433911935248729204136024269221844812152529382816960643689962661555984878881872710825404352363363021414175332487211846343536260439167977667291060160937820807399053892903393451621489518928148341518808050918618696190323460856489468729658193756359359259447009672285236755657404322442851691406045586883966191160486327929147922582614099582129061477908475730218707337268497211797887694320095626031934094421388884088141351867578289687158848846456038899770700029697247849637153627047317307554960717219567999720307821670742606979984296592136445976743024915075217583159729132599927880143509917961565158368545602056848452778033632993244786035487705325345142548092531857370787546833642921547610207428851335623411069153834900537993901056611498069068961364192246363564743832258439057478757629601147482968880922421226076249024358402149989751016462219885998606315692222207843964274498067762553834684825134233817793247494633646147312919347411801542997796445979377826785354975113503750758031915924639676108792637816966631632218066828298062972140148197422507287758937902852690723842114574424512698834299180835006419568934499459696264476579188351179018669580832155143122830459262383092361433020856398351065215453791149009565841741294096409200786436131548867692211226085977234576189114705804995940798412606112691249425192776242906151005534726678529968876436397673774719434144302266335339630979403790710189301272953307518573055072878864231641981152477375020345276366559626769953811817741575115783060031451708904351549742760734337689564882839608323471680553631112436196375048484731994392338825207532160083880187089689434906948942646479209173041276163150038022363183797365727400370495369751606791202954499925838598574313953579769311576397909567603202789798596342167267590360913358616696496477186465578171746921092497165347448720545830422253392138247171025593670254757415551032809604654706566055242075728244537185025344158137413532572450696896331605240797842669932951530569225870770865451307378341554948545707196609234941199702508835598617566097682924581749032472630729427850348130810757525868312902171989522781170920145882489183667168877992747407920217761884137213694923649996834753115304685837711309124252563289017728872990571178067789820917094845616666725395247145881840758926847886964852322435926938804781663793691370955865476091470677679621833057198346097816326808316587455073710025673867917064789544395812441561518333620114510007213444241868166532708270378949177327516742030012404091264808728434492411583122895360968253828969782211307576021868965993121029025407673655411476600740524474586790076888260842244196586818902871518210222671722589923925398269642297395630035623050720808506289085334559416677871801067106359780447855068229424246536303042434278470408738480655535880814822054176430280705454196349129210915019648464427532249393540941214095769775932074116524968142513045435265566184686740584120317242139533309482496099728715773580583446287299456759531287388093198814649113875990441296395542066746783034035571008720402760141610615429139024597038741639733699612152185445993228124634027211544330929806844947268662354398260499958976661319210392758784207896659641929323385259780963929281448825130360519278107226935399980135218581263531305967624578892251702486453369495674804095981019760583041893955013304431804951891421668161076363538218169576045717811950054423633097184696138225099409030818231542478547223766147070654590855221041440118378176835866595848513121293258226328325887527440578588423519986268926811800300442938388480008598589980723453465138842566823914006296398890641196132460063974249822169796565406909249685646843425325264655553967657150048606606133767648687005494938076853370839682716948284433701062586240267082690798690065907789010055965568016373778971933885293753601320025360701652965446123257308631159009558495307159838047083765631690469285260260951058994405104570002474209738411744198527476197842142133742899957105598748753447567178466353166301918170255892531676263079747899525712500696415212630720818148935271191703300830916197365387150351713754052447535423624828828549140839980554132649413543978021826292857793964862054725195472494872358864979526711849816097779107124018298318409231032096556967695598978160466385886213971203983147355301714157503377047600241530276847076795298822388282010375895560806334387305036763032625279343272933147116652975617446934393525690487157238288433374376563971359979182491583093377958164148862106616439434368095650532125736901891163471126371433347550824167689491820907480636285675531606493495245807546159207640152305112913178331759045548453067028082141802510474994109017692798088070296224480001259555626148239812235676867273859820373721973638602656563100779093685484007663056850680218304157218333128329889497403700066816812453665959267567195839897416988516385540652981387642768025032759448852783662249531036680237808253313652548750615422043480317636851306406132393076062630814164996323857520248402304791973771209371129782940969604863711916807965938928983773818734282824557710078397768668400567028379575773687256268379045268537146478708652799629201630295910754121625051161664743951055865264202492940644486630812002859354047413330712025951898414190643738435723193572205155233511386098100396497564925095025887003583733077963405010224411511792838052683421850022147173948226658309595548462396995968587360007506222073802243973052283243350282044007298399202584469941130225703872937114005117174985538947975149943360475517033454474824441297767693197568266870522119253587809831166532256211329072048739795592113597312628722735573346550857177541606298931401450957763193657649069918270253043052194285059691563044315535882788780514925598704892408108714851937495017009709811475799580857896022882556120456828227085218807028941463994782545205887593848743539062629532182158389340206710606750270670585797179188523520944383182052286705538332104546270892158214594451066585560614440388280869374821703368423013329596186049943773290766750206825335620277385694248502871242706986804292754487032841215793027986189684335152159715863000645734841096422188919075215116851378946402513499224035621998806832787064611265783624242822066638166071545494750205480730037772819316654059799850101017778984667196807580882961821397814902102542657002447314773846335381620068745303551479845231813760500055267325714078300088775784247107708505737675156846877759081147711310959421988582035901847258238719356684781113185462133906008451152085349582015186420768031874893853661915067190686222424254790655719048061652802314651868589710626066355557542619086220423006937491383805916930468931457845620252014202765375834419557259957192959142733731875130296694314580746807202920625631838302613850650517703406089882957278734104738249408709187795378737775197503545408286084617049671301755292397828302041338298800427256309139776785833626460882558107726407640765790353200134593213331127824309966140066100732930165436929796943472456962274869353217714295401908738666145727095953866766278453311530430781203979410307378261403809425796582039778088295505644931549282267229827492516235639547700581204922217946624247566439210220712394721574999965884617608159041673925081046833203761456442991452337047023498066491826796946071939879101873850869055238905190325772890309507083777796238922092324205770151830689402141527422725270009866135928363430399704176059230508867639071609495266657372495615209838103660499929387920790456816769243814399815055707828675639420874648228137076615337040793372565424946460223516663994050866982246179400402783851503498373049638329153304744685070351069987182663612602999057610248754596316312553050662552088804994433980261039990163233656156295839411598370985720805547710232469647232018309539446374874718868009243629448307901946275309984850986206835130535931120713793036355518832473489151220111534017065494555316130619456252980095551989097875073547692649856715728821204168220792327012322302446803278549809936777912492680793370677151045043397018633239671102664873667038969539588978945689280658243370500005317697203654922073869561271757258547965531250087936664431974035851467743481219614159454575993211415638375240591338000968689975929809564891899249605382190817632632593250012483735296680936847744865740740889549168098202245963069099241878305789076578724988614011236345245037436337241614935469188888629902979681533757676386246026071088863762091839415354695749816305096014641728386725575363391477112935011597999634952581709540973441175320003063064170710612482185517028077489974901642407690124034462016481635319275678001801609530463468195136020661550019046983270137789300726093983969068192150402751086267291198403296093603740495279242489168307504212975424238111325058889521050994322546133941079206695141779106578108431349160069060660619543895629146443461853518118501564834781300280819256568047184551056540293931570108422946441733877462621747596144447408535972419437963564417069651388524445508859528562041209884062539904365759997233613334322985468187789418358720277692906531144770784838194818860398590564636882469589434787140255796529080066396570141673317301140135224459592350414684959860559119625782556351493248929385181356627108365931727850295660629277735950255646430490830948038087612408060649333425033472084650041886179113026815206815652453758053074356286446182911887091698313607972493752951386644395272387267659099471632172307884284102291832266276926727123114231158309044683403500815994118366581067915655222063881857163926352880987182113436454847186572076296986951418826383368840772522077824638974117156139002128530066758416607660894670954158839917620301152035151977474117142548666236376637238053643992573975339329692939039105729064401880413331334745208087122301617271651176200959433140624001988022725035954998337011507741644667088685679799937788332243178301232506228265355221319633000371419732033101407767014398035985597599294189269466857787432155843895014584128167255923945923894294529439636105062015950289941566600778512034395838401331395251094046612354103423354486686925746930120348634916360780941141600422889990358034858561267223314721241292333026597984112884749065432183619667918722876061981090756582395857957654085147471586170669189854162285528956376658213342075506702700840856292405975855908710311431389046837570700850600651911596092747570222069352570922564378399515630766852692905519632587352071692360154897685241495277506645895822033176229840702681764418579491514400914696589244706333285491206648940399424530510934208129868568264199051771506035875197185925881962690313111597689552615809707400012858589515739344864912300172950362913516819288073826688171460481899798745490472086174194411719589899003285721928361098130836616079767552235386000669773228371170867423370752401138517243258107232273810381326027295670518284172838499416511139802292545259144807783366045489863005853333823284748253414089568067597466090264538539041900983061306911471733508073466804045399291307584375206249493560670979990825383903115775422933976374368114344135748565970487921351029392926314599874241830730639310143174810355975197180768239501895886214051250619610965027437040251863056985822609744033823869130923455877285458419260715130110067255983799192407925700976463882327513615706101333882438504751690803342912924810886060247890223310552694190036841150388473578790697790446685990788782638609864513152009222790478936786511352823198605679452474808539786741159246532658303032558566417206296980136497627060329268654703118248860808922011988679378520414666952095402768385657394243639271580365470406835638343533638766848873878201789438915768352011270007554277323574744412711930079034408894488775554034222622193126972214942631279424196803405748216063514976819616366548191875551271833978253220629765311662910733643273640343431854377314066278387334676867854206652908861737887768455223325004224144092035419674730225960208575063730712064837168833773120055156846077510884521774932571411909984991633457991957751177906290961346825334617692443242744284161599142167452031935989492094955230935584549327531077157369876749919528429518424364224931536183979013330474524138938685193254178782975433911320608251594897687959286091631051413223303613169149727751156559461971374502264036796975894536128038260295582244287992501139588127870641371925105782473047330023915858685632891090141752043464686717160383702061372457133505161855957537290126588584813689236026189407476605690448066080914529822668608626630020631246378412483033802552823418515452443392556363363998895585873686124672997031380993938822980951195531089811799370322467814359243436956811003321462048300695682751915484044976322170736041325304479463271078979666314680977895488148488728125479229290853845461428415560212681133473938585192774358378145575798470941495176071963615058816648840288428660998627030132588821647702347586283347636152157807975606434820732866625727505628799370218265260190900101274536360335103951928698522778240980743149849497026860286374652997981689932064588896830631343734122570909708680859523171790499659590020199233550753228870137576586836990045211147939560470710874492217106511321472477408724305363805112490172286553126898860845782502369394222219464225224002625083303597161466546902509077621075503817688154712706630928068596521318927568128122769875969420956772996692084917438750804547115546728678097686318991196201548274458914699267193921607561457214737825076696895741997719172689884378787232947165647980739741937756409411288214273169941731642427678771232328442431608345058921241163993937139383129041918970644965426531231662012224603618244522725925853803124683749244438572775684699507366733003704428113779734145673766683486097670787336017697341028568893229498061777996367857213210549415991374651019383100848824657136084118911357394329927487822540698063121310244333432102498109155253003151050984481836286169692725171769670725448342850633474190940531775372215681964059127755186473403137502136608158981049933407858656456927716443818077438809542693096519734055694496305867708466802733792843298681367638172426554113656897948036518776065336101606559435506859024560803028638740941563457791320339962417337107355908639724738635664712391821875571042313336974495489905125947932205195190629980476407184060436178520299036492217498274296296144191015445764265286059301613291610433488303975560929929048825561238459844364486041034755294958179677332496748501328309228182987046019699778018044346505700408390959567057637215158907182943179244626147389839165349559386063691734172204304105362206186606785758297050870291316928433842911146623373246981509027534368926243182716182010057914758471567151123475078247059680478583712505526282920678710047238134339816219638139083139089205175944965140018999717712523546512794393177239216324926838151150952208525299631069063945542150664683520784018687633330775223460245814043200601978994632210508129729769418629663133422777622443783931747007330873328676594076854702711227781641735354218956891993306143356070411742884776142384582432828007758961890683604195459386999569165815251721704732722783551547064798491596784244297541395342193862648355457744927888919311498873117305984313797992956805850756711408939625184839665236427994938840505765353604942969082886370044930316294452772217788845182819047699780941957073846997740701743573890990218765699007185567151218641237172795588344166502329673974496706034214925690871127843031431467110944725618521300280208213570112204553665192513794927862978578484866164932548054271601042929000592013052832352757284658387687122566789360198393752175545726419498068429710414880098268571685735344957414742661681690234290738263435421676909571312692039903672856479384679008910914947352436115887180680398679319641256455374325455335514631484379319141051692613098432408422456085756637606156823906055791497206251999750565712709676951740792386231804503024781048293301244352922350679457743907046428498541831817057752379114494666601239203089369873886014812965048571464853586974048570862331415363774343060708170385479615976735746483430054471619479370728930620639731883000912201367731203049727716753618975759988284177988118451782959847475730402082217768023791317417439399143089259141367600248354277235131945640430798122462331055382844061395186552673676489510019064552726193004987586032188874743607229317466030763349626027027151801195734176077721863549205486124588525822767755884732423700131877351579749755450769306050520304675301591224215128424622077561606707703911661372640736469686621614312767359181495888949856382356344108408570681982369112161640082143579469351437411513702655466831788429772802288082430398869022796096680370119361171178249397064638664399878855051792907738245596048623328600220313526219405176127606447755236878297327978496857832284045006340697250753233862958026913625841669165939243372778858216934142454434840538356800337928176698457313804300109417720436533158775925281266181532719378183378179415700158644633876434998188012271512204287318558547521737401292390660113565823825695493497960603408936078637290616195703393135013118609567279925443451847688644670521779835240425044604795416156444995373159785412028419656369697779321391583088093071470579892355878940336911484962508811261340157589669828818133348454406277136624328541410246715146089203976503049858141733541976269049105629290886648434474602256754591803244792030958219715200227742467500622177959025239902479881546092454982672305740459185534519204142731644872555318315401383567808936783065300768841450932607720915559650626278359292487969823686906243166755515387147765225669842029426886419956112353993245860913607713180832205561278772546944019038697091966358408663618501750642116180359932497052092616781480045313463059184922535613766840909308262565219060799219285546316454228103337121233147414482315960681125816356126672204597092296503803904397453684375174865174115615599594930895728766576467675064598379596272094691168267435217819485403133670350745308728478751352968851723364862502658738625860165695113753203962052793569752145398106812928432203449392015386869027832764906008634917493946012690643904100885423914515601727300348070714222706860131480782470186550104796305032397922616667983925771471423630565099829054837236668722901318758085943131155590060953363497907764948997035767755115783630183581664342600470852261965196715783137216576313859499868336459666541941682069165453910076892457458879895204564749500461906527210850209241227574602651472442701716066654638266266755666769008193846621417302396338598976467058992136360528618647766716688321733785152482105705450337716292587050326842804511516944947649086830445587165036213800154561318563075799762479850143831568853804765839039247191141632942358667260776242119250334581135667965496450788879599764089776758031631089178381669451843215611634234782525340583859532988042146000136471136713826971108700867206150114882413428702951085977557779661156077695733500011647218277963334202841364539198389599906324939068088981261993652510336492294365235642719833251592484976531368372723796063767088511139547401636081021635109111270385651009615431666942415944409636837902272367995960732941870610188235632279454950101247745948612136571523010228907442314941124724853092188856725211914505465099194999613262699831827213517308218631110171228201032408950092212914154408102828486167065991376663301449818900957610816740240578577978995183964353023323620478500706106387064880077782301226909547479280860002811872131703027927594905261742146562957057702864415267474841428998184195623470905557260246589708606346719650268124685115956829644171723209036583482514965806557988757879229644862640622146605326870348814687271943311794498815983504332888209704488319271509744955346743919127942075847122856662202324102903061361627470261119323734620135973660311164350171520011125758225010430558121568851892150578534131173261946932525611152931740789627840804137344359623078270820238921376012076384903143407430381300954729866271954479252992425001290255045620093168469106868685066814367318658261584741894530396015791351724671368942300599608634034723516493849497912268003085379078114519778791837027012801530165602455223821226594829660399123755106011561821902445925849918401469168017483666121995204647015257353483812848778841833192437506689263072850101726964558866192705138929806996461382821299605998294188946822027478893340445946208179541159138723430625710922802980170923477617914367509667975352641329995388529544785389601881628368892777019310395092577905723073330378749021603660335436197753101112203221741740391083199097477871591731147079318842392689108602042951239731457860439955786213872336079089638691323996239215653650318419487141670792066147687967434068525218399702524098235975939115523080271327031718233259432988771682905759299976338689167315670903650157970969582605147680803734685987231637658396092446260210552874870394933922017632104940916874552017459500281457626266341603515035423835952519104665984136694590699108824154672658014902142938495789106562981646617740180522379962120705517032871290892039049880482798728006453642903574221537131539388083076186597780557523332222581667163822016421071474659393248108920008766693677061792353106294808324497656889566129963025872975615048145704263582661636724447010527397018724338055802734672069185465753902139465847468667581830672608771351929347924436713948507706207764071389616727096847675757000667013706507017170618116177120893088329298674718181388713233497750628034407352212938261504211154468661755403232739434356888971312790593997081532826389215592427220185305775982406164213030327964383672149950571181183514984464291695523716718602280796697895341180939972342436773884459472370026199449603723773201826917707153896180370656239048378585505349495386320977205975936944753598405093200608321246707684382526749085062276406118149956080867356637132973561931003111442227195317650328138078462382101137315059131926002536106923607082289883903898768201894195265527106307672959716870216789949729726104085138748315838296789501768183895390255728271514204330008156015942999994334989766170866591979150799434727471156050129575783171976468292949392065044732606796284408001521613539052078856298219893280411357083656771922936273159238413067182809646484083101415823958218934985629306571608875804706578790643053452905417242046885312858076429843987056004604633759893730435745523571100444374264533560001667138417544415826399733807996342447933476188146192990311203114556545389795142809608966971997884499230065177056354949717411363552970851536921564445919679121270705799277598222219971882117932662910445921040610976054683030993490238386875190706861850236213782396639369339707427726129121373433381810994216368551016769509553915397831793929654656030040700199823755210678689127530725373289308852306899928736412801719262237571264132119560705059931665443164543815727202183931190377769295803909505756953355366817424486703178863237596508860129814974293548742368018304593574603515277989747830187183484602916579392863639184854562455796856306156873090770459453870182156733864397926513300847810022791696931488620238461115258880319611559281433351334172340824730671726095087023047014475093692184900170383917951072601941502089625237685293372790878937149757196700174987193051088953289952441121559718036574659757966206594190898019698220049473520730861472203161682396747887536359149565285154215698122816392271208549757355540244213380674373982965946840770575560698198065118655450219170523932417385627122386581666880476740833115944118188235394958873753371312788886532798082101269961649317711373493141179725309999685425295801080027404324061573880976983127847407577151500776318294781719654022571662092427026220308822541760251443302629510319800876672824061088344460633171888053143720681267568825259245569184160347785234476729386391731904826522300511713289317909441964010486123970338981881799427187526438558767523861716545887462547785184062785174331661034448591096205209760432553133512419475521223500614803114806476528331675396064396909518003666668709126253711845317506896860868792933938160234534478576608808087486911594566578503756591748525385043755444123008982447907750564248230436194861527941286614612419264905550435611912802577244839552007534781467832530775307123413387484243020250858601903291896907009554864606668401666349729430106734813125602897762047017171940100190974903428927977492688497656030177736437329157357002510232111362049420863089985893173172874942475022856633453334187073290468116252256080213744769050667120728472815044609710238563113202933625411579227534036899831878508776585322198484810911399369588427953903473779704891212213395533630747127404937423826645583197551938965807575780059536370509303543828552366006779895053792365330038428032551342498052791551866805489122415747699541859917677507033860869381953401307773551624089257175718017562652935196776279433440096590022208338978362717099779040121124460450907126610292876780341844072933470895553104071089036606857411250376018767863779262702038263730144434547115241640455361494126337661732713793182550589927182063877392945379850571663188553787664798220824630069196820312000642853604691940518420338518196401448823510698763243965765496499665972775436384371615704777848029300177684698579786008508481418534683352234768591818664756766268157126748847592560847697064641987301043873365933879661765485480327818740085426979674027440444932549592891826200092779334402295505494295116365879705371721011238998596268799039892437873709803199073335164174004546194810041108622670523120652577838204503569596574784723099796180844632293024222016918870753040525976729182562423936074390651225614209865402398867754912397428790777628441937398416308590669895244902795331537286312420295593081860655431640649136456070374659874798239254183143774323996088199377649592513450163686084544135122076968844676783248243620771699732682770984507647479931310057397641296616472059271457878481956306970187155127443309377459099976235058530716498545222931692335012069645721381300272407747408952438369263789776245315544356094056143789018802735430812976204639682074856978915824312569162406753572558863983012306584360744825230584781783007311315988958365021250742257594606636087623219470962411703547479961937309364969731804414947977325003022956138489398973873088562090188220291187982314687697158023523350982827826030268682234484519581459895691659584942869020861484180438719174542923975595912060649901475441628236653281006419014077467674101415752934121723052353108584704656125446112912086627703871776650024383651352029754825739863892187925812825678706269978583740907853936910210635011512530274179144284972176943824613736913191062529337443243588985997377377039348568121396812950806432469542023730731506548356874117249515198684020553856537044531944637149160577477844492921990905660327448325045355835433459132761600008017573685836410708831645203505907078833268491631063680014475106567496421002812590184481363857421825417753154300454518069389928817377130875937715854898692602110104671502011098740988822649022812093183472448948654081106691389109917936645473801428807216654708368754441395336657085708532172921665349821354867754581434892187198489787056380045060698564933214714858863211009220049003865150490105608604645319887641777681951182515385693500803369615830704032004168448926327841421356114674904258023303855955338270438982620866986243850716021429174208668625277220355213313130107978339908295067362718953930176819173436592855305765317484838222089516181166131914041070278368818332425609327364425256448605541853287362167493262717736345450379771383924431907850388293524769603393042341932500967999580448152302743191285082743421000554917182595511559672335057386069302303218237016761939230061562744142889481252689678694672511884967504472886166704469605193929222479373105358468846386837375036014483765344316844064427619146774249479223126467087945030184663769925138063686778994555025832407193021266274512630054237242901786401763882186443569500087731644019587184411564832741090458739361397954709202191982865675510885768160682252591562068954297484288164677479918840965093658292804324063123633414976224443456741387251924398251527544009675379663499597287893335131622427885670031507267505136475093548493531224947549343695751982873463626431720641074536135974666607738766555075030751092735625385594714807524924593645748692665720213072981236981612127018611598460063172829727405076030981661359123929868344018294967125014962936094400093733639341183725662609876755995261538521112850165612829568288285277819900718545424600259936365216157335774270097571843204173931122702735035408399528469958724700132473404788135540223213446553931123325781419892541555281881574441918803610872416788046879193442465888864617456955464325570091135270031701557210558179693696023128175896472200848768310704280361365670809182904468785891172433076328842876677435457704982952719761179867801520403924378640982304674148332341393302311223987218922363356067185760566950033028137708528569160026881013431158941930813500936116859298137046543529092299734256096843131441295418596221983116929144665953337631087227059943291968681675528220952710134818732914312661885153700204543294519904443745904290405663107359224980271510315153706480287656973689518114386889700654469539969662325558781274563014724962657992237101468645966831411153518852844136403019557226458604766045215179827137657785630109070345071408706875003186255792427900145038298708627142799736488678331293593303212086890133198080151542788964111278550434478027331342670527230178844307014944291945523178351797200027690716744920741246170974147505259808379378541836932235285472065114586451700825573784743728501414336751954326549089697751333513442214302724301774886038229763345093574449078663785445189969040554222123456095065585615868201511130394841553704293428524801287110618042081880487307442884396529136559197965829097361142622811243668040285979737419590664383772150490513141657576046099790955825164506950948781551672987077075437679129787130244477408737018861342422565432888693498415519663383529082249478855596740991692648764498797360552229831796101394854799381012464896825326064100527375642382051633803960263412247898162284588672775337112159705285538433109501270220036617172438970241489691554404706773582775511070987186125631131986237557358626713636814635407696436905743298665637187659117893142013288525710934319361858851222623750786745913088951619325039223029963021060183665777216082755637541559497654940171472465778361272037776630725619025782483050206264334334778839439371494054163344832641195231916191011320208620886048828544843623813184660983661115440572068934088924997904533295365245008258929468379753601771348607960782018381465257773064527859314592586327720274597616020624462953648834479316500966674739155620469683902846940023822132473404974600514252905093528918458225141836990510726203281962460013234803608933146715691486401654934357280943441060100287510439953134862904544585435440953190971836002768141036792440469184140287498351942571765048862524496458052504499285697960006810251807883492427918678870271467160051318020495790797428028757665887620854749152411349261652636411480371074600497028052976022927853489628321964351582722930374094540081172022011491092023783749661368652686667901942705911745267219801724435163089318404283136985044091140583292055595855435023420044825661948070642024387609664967099408347929780432744845290695654175243778601973694866686983151239743933966409634254239953511067025978758640434239555133463377285874217181052951956693332164923908906690516253034498974037566366431618162515715301677278532503299969092251955755483232498754094478742244903002840196118796646212710880757699565562132923780790192802552671692333661528571039386965350149270948288230057008122268189107311476516635993455214129422484911612155712215170504501388098449878349875509020182766775181305968740475774382061070051542668598773086832943149176886423847318382641207479174907947972032091122261336582908947578337353058957055491892991834652817103101973706710823680575074728181631054438226643841608297794890098184657428750101329478317025238570744685872115656241970972881009590857497354895862934563876163405073121623637865693987661423963938434017477783569170184952993485993510018084087461299538727867166836628652787759617450812641234311041080866926447746978399939240893598386236118369073998957538945476465715337046677680100291720272561980387062504653636790081253904338786432931698950077834666499219744133377837367491956889901662278926868669805623277146618392072623486447348247681641011523966011037236683680112969101155145329196975625819240055149556950098637729747442456889425005841545888510057905675759665145705224634270402863322934918620879158581631029222361188217486002804231329709495048500514959472692822082400858743097915955272542796750748737319331821909693793554525400449404143222274661454616110811713283968568682055958160686718014499083741812558152201003266342088073415886094519540925402596872864597507164199111814073770449930467891121687108629033934736221168661323242836817913161955154279807451593502653432107681312914047353235223172779190192085172849496424928733810845803459174316721974670292482233224629735822597950711887718116205053302558242531072777346878878236389096950923365451060078739053299737507315817868553631834976706084745671731166966828243369176804749077710430603943351604633658701824637153358775228780937134355363170307906030879412125508486960057456138105358875838559387243981894727574677540719122088599689994340675538147992910859869315602456342720732842099090904608120707514520016849675859706560240534107014897790124768487203748543250405472737219856674809947611760432132604539088966104628035302295063669212508830855913883419772114318493909511746478386493112343526818929290572043644717209027917540897840246000649868138700598853303804009958880695042806066485505423928829540864506838179458321568058033275732600597141682958059055057571351099962397972786561427991658164009683212913446286641150947594462373960370158501749089762117636388027385334404351916250217439277700545840615075015806758138889679677191438308706302405743420763453903748826980681007505612986316139738314387110613294147450723272092321786195300019648791312885367535781007672805781068700825621387389520639634958454261422176030565400656692683136300743125758368126144738377568483943513742306096357262500710924060823183687319638885759978195085021455556591619888847820121939145381439321710991064063836659759462556739812719493188604238839305900645591531089766762112126720829933465700502539272237501036323138907084436994904784204058998147478492741076076165033833989117054243369605303293368487730876705517808858018563580025513558666934131099334489374549511004363700106370225581103702201007594311342112638406426802949828786200370403756581921791613074088732691300071126127159089473252526272011330523118593541962355999312232478342878271623779921115646912766515817994011478713249850553514516659802577608419573345515415975062672254341783850524299340423351028056978964699174346403075062934987041842848888092181716391961053677356530275117417720645762177446980933942194876346635062875867250805637413587238367940316856324930899963305806448405015249752075031996213702979139166913584130787766990602613250833637351452187391570336060535325744344461688275849208929827456067357964556643272462840998866864185053005478181277867897421150918393163111537427118331560318134567778658965129411052858294683699164853144113912548018899019073136233442271144635488721021810724910869657589860861613970192409562337316020510728668771402861553252324832531598902612780582877626804900913180460554993617443259820906121645633875444768355666302798579209669696224147834567139900924940134231864159916358696339141191166539360367618557523464673635635184261324479096328513341470749587585107375106083340388625764163813904305911867867279177832799807466427776037110255980238808165630744122077160648428968006895176863872852721764978296515401176773465308920769964154323822462659150061323674519385668369414045490133498092072731297404895520057510138430148035940441538636392530909839090535070426754042067362770902429392031995177077183840440221866950611613539320475878513272146722172761237342559305736738119244341726492935445273444145169197689314933837562387852847306080641990630556004214551604212693630119515479146426665136165876984488223233187634571558401644637534282300429349976619359117994873581689414790339451648602550448995983805890643595720866377522318759496278778040692946582176872436138320145329947010565438063338533743606444774877035355384734120929954336027486017693760193985898489923343083389483584552010530759626191239904569940049160613225091798180039930671575459258479840538290023899759895083261027069646695934976550672162031433653497399196642304114618931379747364768485465892617196610868926317041869682673374891349555993236988070984516473158229933054030754802339684060892603473962280966063889886667731797864286716710909342183692165157105214493876154585265677342202860928597229160254084037612845693825150123718440305247337076618921958987834088311680553175536863614508415583055411426668992904520825680052246172084568114562634727981956991869298090495818922548079029007210430513434338230418580535200818679527665927080117512956793335551581908988753655371765000529003634423307952439595207724341306401584490251699598744355164550343631546733547111975729224299885366593081266631417483495159017099752114369470229956853045027242126331528347777159630126439891801612111827849700865793342000400573816304684287172702777320361840384660991001012101688508225969442589275208307617710926277882748956912350112288675674860143564010202691318458818388357053625949405398281727386535489837669877662401087264500071531145490818658704968510890978371808273532892383201496563079737696104592980666437583421514939068621397444393639351565370012760468094397541156839271595514276991623381431892984031434662822242437491837854685109011860924097293267545845690672668628083098520716064947714306212281782882685025927970290597009024430923939287226015633476315578706649655312551276940777588549684448445571338669683097549110434482343763651298654218383375802256869121759670767245170710621992491310467208027567552264348470385676704456457032037143329870709662173129162219298709405056028212427985932388081959451835796110149085332649405590881157749797458520203119962412890251385428709201497530058518091024728925645881107623681968458635178353298804843633296356243202650393378289528894115448142354150172399672222116680064183561928979708370944655187443431923733748035352862822606002850806602581402586818293553398496804406428069919550193210823047651158839670139329637749042613272186868163151145819606180385303210094736968985306062189517601989132926215733904993739902213371931527986032931364139498916259457574511371565512968508079938546061581123790753482311006944479767109771631143544013029039664016239080966416450172750327256842793128773106710569571597320748009876082625425568068173763063057732963575803692966868244026730348836613084608418341389929500481122940577209130512183078134960226643335606496927040292406650616802882082064080225989361017329955076510376715778805964013519750668348937566903883801295948916849451810657674505754899014337561783614689153007587356338267010132975038194591643685344665480187867522233267682887617923759043438727274457023078868335253507549098965555340645712447855790219123837769421800323208484412811621681450289021771547391193955696444856429503301999431489442713629198299705185987485423020790585296333343974505992121053288710197686478565281846373654268928817764591808064808565287415367248972261998261756321868348387768187915691739995554889296658615124273921185741432494484847480339733375289810637516965739546372824210189676855483696925026967827677794968492321396178983600879889606140285262254069952215807469067849429867274587330581337810530134233864207594212299315035353485658824329780531805091932296781388180411439286444180039315229645275762035089856366828716674501777804150814948390808154880395435033694813284478657578645749850360322728828247186258092358136206124631044411210181128847976640784806940147367329237366016782533201310466010322904373772315949867676163172232908541426764029378607239597596808646076888752808829901487374817934792242123488326878362421815938504065514175039583911504685472972235185650850558672702678520538587533693052779548209109889940619820069252801156817136628578144262630564468261582213345680275029151920642543072427208896059205725348741012736755372320668331818547434054718764507638594695032427948961315973934191460358676139669755355084774983050726214631732332845959909571431795910875922080365922548105012421918645266134437528501367001785594816427934177522450396746131680420496371403560172053986015927349326612779627091988858722644330009568983275561219895913632543497926423890546185139506721535700405957960653757626503592896823511850034630071685234373789177255449432305629678591900176193668453803355816956213117336999435491275413426454555177076217067484408251131736061624550374511788043962603990158900815058378432689573412586540074479418199202261226580142701000154773417946745698107032685811678928906492014814067283244822163255952842658353844305900906791914953142078096601480083391167635702009825296555124073050195740692469209672035738445415235818860211510699450663807913567244881326453305548300294065602305830001860369471627885445472623855223740267540000565651036199088554546009293353547543195242362490295940028097795377435515987967621342325162016927222324353664679317911469155971762659704261719166115663557278800799147965974130805711988691831581045318810803447612847767726235235266883975079394960457617550412475230624972904434132976639623048867249132381558304547568754861178719326974518434924799854276907899957715014508860923359196059062842552096359479417608175357914855717139990109330876730904092130002369675485853045505802641841899354327681235165976003856060836550729642254639510075005833549361934632354233063272445546745526692889710767289821171521453614042132219694848583081195877840500057780998019186693203970611622096976124060201745148482843915148305931223713994048652434501174261663040383428854549789277282995986434580569284255826419451163713068544290294620273471229141025133245312460422623497236681318020827257258505033773453802193849867490707017529942341520126936151940499097546967177734675897391968338115483608055835753471792308832444639802955151621295695521876688425755944318272236202867679820410508649201597745784950372851293229073944470299497299205322738324627654041675873214463495341265339024047664384756150869312534019498734933524198593146007190956759068864581390402568323914165859754599034338392392385620146174418838177425406123294386764860095541757452315262142384542714330118309867239564998822146743216394301199635059930253757247034785841083168671295292137780375042259581854676465877498230744616671654398606413233244901087672289588441847616550563462957171368846878635699653038994700760799185662324054124589367919615656010348537365205796739204169506607711937971240276943352032679146999506964343816104584185489362198602631774736260388503956186154851533402174594361426200156979632755534376365065150610867430286833581803060950335413267918155145924923269494945866554091667284249410710823940396221095167155217449567843105686691335038249972247097084141212173126933560170520953065285974028674677449378276558218733385612861166877372078274163024468725716397503556308652044038404103917659591314132332867457165920981375802218701837472312962749256707241119221531183199153284430764083201718960251499275399241815899893426566514791843684977195938380328219611890442525713538846668031912869188058482405044350913438670397875702821547963360910655864777432073077936861618325118772127122178356643770005768436478565000668702998048291385938338210750632534851885240095387333607553248163254438681768552090378289743547289625579214761868235916060298970657867108638944994990202931606522319712076023938634981502745009250909965322654076142954465369436812909459082372715140643090023025497757792179056378605573515323831602224753407168345467241010419412527362588550886923639176982391783644931876004609147070463270933437152342242982655806743733946515879501890276426900369834655815372897010738122794535040685681753862090349925286689338318814851797392306971845109410462401253617918444232146603933208564200513054562248297065303316711454823779608085332122992712622333142418182530107279883396763120572660349461753274777059911066529546553577172007545404932299448120447506066455812181401494164563501897915459811045497510419524132582646790619746532193690465120821766151037719994789225105607496995051435108645159032344262856399569144697770589827744910992652770617019659274114359855077433537603105097469340275646840413888674516924735168322305385410614141697631740962450389752863435288207250754651463444161940158218015374644431496314450723215206243510658645194770392805565493056408865621991558953838117724241206956522585738923240753348258891709251568537198116301678424964460228681152653725697745742569758037299881229175977158269531117343941150182389101496087049903941967952242111052203908001287904069808266171960281564136618941862005939083324381245843390742535390165363416327759758323739063171685537795685865031730241576887691012775122282208898905602652374118473729344926882923527100875596215097959202812461874128971675088722394702556398003253624422199871670614167082599920112929793434790376194689594973483307873146854915291524863258184429441547368124062822587157828432724035906153430799119932843641994688506733727932626835884696826792694107772723848089149352978635474255209789416515882465068274166736520289932542417536813964507672824739183273004693063874712997218964715354227381629839960156692565583388506475748611193025463631389879169780332572910997534396184228714216975135542962027870298291815710320045460959457063251411951234467752441107239132863471364415106986429130435066610717043822514705040587016712354958608055850733446547520958777889502597971553974985082559733910391344454335445207434711559979882329100313738349573587847414499599208609335252151586302387009821926435561919274169556773915660347809672555384171870904340710223844550852953184451173349407702106793976026452765227514747824956411633255820338220011823512327514224373800612990730950300814029210443771494561342884487504974725582277601645217838444652762829914182905486477797529844544400015506613310618231538974088433603431213669525204824445952532493976513339115182584788634533458697099144319756893680758713259407556702856629225440931762334025848965355694026394184398446126297656375728238389306885128950759579141411866002133975439742705443172413810273434664858967506803515935448097665426726082381547759798531111936185789878834919391361425087540420798753732813178705310408048794981224005045763084710755615217630303973797097017030997961255740084304423752250874588269878069262929744872917323005337478929228601395040717539075586164980234769568554537073338301835863094789122873832369700669524409717490702763391076664466505103766902309730333490060101921335960528680730862011795401537982294786434713027602105305845785159829078819091849684985549745089666460584530582260320194325189753014468387466025807557189128926065277522689168946182151802481177014217859891668832422840976580197451056225473546045445308087377914101446268650305698429696521783030473257857265909367580708195668373456016314633252893453734027783425265324162629640700961803053922091301287313864935721369329243698518819475195041636685623031875974479318291126731322205285571133500673896465563114744090432200060390844148002340107468907080536970940383069514960852720049017460016744990231494229204147230380998926393357485371669705344796367761363736311791326479728322828209991874268996907135119025578513213133365310634048075915609987368825104643174515299547195265264854936771041183377750588386874299176166412472023539541725571536510368610307424045710476434198521704363885886120566734138029105798916975589919145658662788208613945876829288076479245126585137282266602860163383731514597498669339842294848707423834898316435828552703687844833603573869176113420072055560204729892373735965833839817955101187780352738486875058185191205916254962883542683897559823025727533637305316554012720734663667529859707147672965208469996609372145102740220026253689579118918361073871043361094316389234618626222399052793033952620210022188261924290267784766956701942981818615614596388618018759456135162577576300175402273889976952867484182996611470279688189260178875890171621832250246488402491316507829827012194249076844975152271647035921285256729599328709055715054301940381093306257032279156176379103057872269784982951394035406858267886729113433728944252269904949547492759305596148750065652974096199594113725186283612910278544099402834357298708933292507139646085073197473009814271609655017242804289471569593372834843775251721862769134494894796792838642683159106440833923248238958903827368689998144213623567007110471423719579783316826736559753710414082323908896712925845355379374131914569229528846438778073851549335280580529362222010569081768068112818461262996810207054533650991132817757284800889122213854663474259102156439600301083243262587423451097537067534945741259483301933748571602850960577274209190673185688170244582738840063556310547166913337984295359116341344182872161771427453568099219663819457948431067346622121573995982421525009431640448674914085501278472259533261016873329536399343939957184971191465536500832261614072425016806637589296625295148719190573112551012084803873928382392584664109675310648389738996826083143412205719901356427757248405091080166855925187924285649547559551197880209328773147101737920476773415064742683163410882904595511706335716444528353078680945111983449377574352451250183201820011293635251242793925978176847586678712495658153281871992278010613461382593324011749552085596793974057658419528520476450675636990536012169086965732499034672671091728764871708869540773621298257946390038845946472311359523099260445903402528613092682231054366977683043139853273914880561362496050310771528531026284248067791080355788352532520557006300804075142293731356218125643055887499532966801707872268571084768967751855885645828300535690454064578289505508220475490387054275506943186113142142194277835087906176923813989426504455434073042481413039050086725522864652062923405547316929068204576034563428969403661237591800306704568834279939669516625197455747681506093997406173505305259697574947292483987350893982139898735862477349084475254236903407030257352488543919335455734377487892814644015207605514744778045950200925010182684033396946023293739773391978761277009799883016156667442630416647016600424166252507283896604786431485375542525627989505293312524311701240253714146407162028585920099427335751694198977314146609427798404180712487833401317017724872142690976158739701399088535458906162018336466043737896855452776137851692279690365198372614379556796777108321571951352390843028909635248872412211159308186055059581481202302068787074304688601201316322344696717017925763072965564379041135277424156689702392363326071701025306989367496572919933299263176538570672094295356816159661182719142949803868903025347283078407588966872855522968855325271074712172910327224273407345854093652495851480819840986445819603823161265724175260744393703557214047295219554268053816287808352873239435897880060365332117068488840594516369339393902631991360073475606947139526049599092782313221416356220116649697510210207589663734291173228101279201963802618521189889694732935931353276861583625574632064127437465026588468015072072528734899586070945171855832311781590582735265745872688190718100212171233745335181284292461156751359286822265716232270196320400048568576128408040134144140647614913669888066065320927510293094427186887890711627926660869921450208813865807442170142060296165653570581770364351057384483623850258136913625000799983582704416745854162933516454601945375496726036563149104052413364809321582923402975437912456538115426525073459119975603106207632517603757545729394058943898424416754018804262001264648846172194070083011580034996415954412427898377298529471951845372758843460028363894012828819856189765197785944052718896749529537323744037975937332826526622658927393858386913930298046921450461516217954594905120857138031893696986086660696324923475821285598917924384061484368989298294860433082991198827550508347904336666289033961988083965159121292159950640507909599044215499335956308448418564589968719359390951790930692603414228469050126506350906336029656291485939096498344373913878706251764587718662310010982974505893280724650744215650062875684862971049958991144230470661955587223347227619067249762396784615485331281677580602231988032630600554602648824207964013245120130996900695408127681077237466059008464692974049623739906909989484904607527351985441517115213830130853442722119168344911215515251133420954585174743108166634059415949644353947850616592956702274762477828486152511627349823083353846764360740805489026054674362553504831061001720970558419511961802832663287536296847047973269976301778061734654075166576134897001265863617738286917719550731836820092283390001409186041886272859700540660634880987609509413679717015014100217454513881492594105024600476758579423136628401010168600968654689701273767066309468074043654370811955524790773233644676113005746214243668391409670097569743351374421016169801337331819664321216062047958109736334377936635055828029541572577991104119715287226696558892052523611950013638948320210121139293207752085759729907752714301248177844165435611817277482882333120749866913361904352678402388818042065653599777401790246375466410534733861541213732602856396340730261010630111407587759082671049994971415284908450183697660769891053055850774090148292863394888510805589318571042023378491508534949728890561079514384537954028197725004824947877261221388405471231469629293068427846231840198941543665739304362832285147482692838865719428784680466907616593935394974103163126548401434450494567883223208390899767203112211961295812772461151761729054934460008934432779141090935055154392861325398535688688639248529774317160968060106840282325990527197015033398551353182158270608137956162812821435644382655336518174716409518114898041062779951955460571492223662818253677663678420022511019179589317871758990967623406682030493653768188133085697533454963936232308707341865813823407296477771498154583256939126961554680274637198784521128056719785516609827511549901733345784391745796890240858202969409810821135001939264631159773661061020090973681684588222564620173022607621626608058871469355670263570996222277105855481811273516262004000272500634293921772712040594288309687828577909303622485770939959290090169934688160599851132507026500917160705371062797026780572098075149290042843362323700795531380072714878065089699382612541337803921855746669114257698374867226348866413884728020229794814173297695653810320080917666328328249702497598501546402676594899928756328310176042737189419871107593373658780706904280623510130844341388814569837575545955124662216029491017324818790621052686091623307139382070698415355401026279216841223634118527348315403517171070783974243466686492145768335204443868988465852725472631816339937561408644971544249170487167652420460063925370380278660383345520172276435067603018575940433933437288568305563083716151959921295441109338854470563577131626670872491414903271377528375255821238677255451983932865398538405293014525462143907491695389042483535902416431946249236286532314303435654866788168660361715574262551374476122762583271012902475693432389698148668316844382327242632294147394378603735814367502190669969351367597350394511933804281686514663648472809383114499787816872729644707766020123804073273917041357370259535224995993550975521006174771520151206305744119049582770947022775819142358173357506459997949647329226099997222593365773965684370380784931775489718081509758054072733983776366644211230355404554646187889960384238472574480064741629226684381655760360157856778129373627246121684125826013534712668077507899558039188136034092139867093595343811148610847897480737882622407299190003209468621108776081434138139270691754128404016498210940824607439507054253721196217940218464764572754489122824256345230038314857075790543395207699870121580980740557674888225195611972047355246871567349633887601468093914871445787420014272315047974301208520560559655980694030363555594621705041781511132240652967516713751124409935746677008898455232092304901792019396690251234177785804687349855871986812297764426108605955246723253064657333077626781213507817653110061560754246394422657791982648642006932584879807957232987754796907216092098548146965200566460312949348944858290091427567468953639020065380920116940971326575146588771036942756454623201001577711587069420432024317733590088293582617368218399181356448228054254651143652104724808243794077843069768827784140627758114402962996997151382720665937765122037380611782936253070492060747245891850242045042016192807856392089309772946438162692688856236115186304528172331129891117357613501830747277362714736962487808905302094808821694628074282467971155520773881284894576723940395167554331635809783456896022824878188346214275085868790033488109565960243619179435204558350371856919532961027170995218094314583179201681978967416343773873552278895567634380087555801640799795978641497700821617487718416150140852058711592299122625053401845382675237364359983451432091330288069569642766914700907201673334546630455071777253550194925791466594630904209307686942740519914635064525663643686693702502726810265322599525227489676996279254032142058603475573402490650837709324462476555765776686074915202311385737923930868010860967976682523733161034361570183334288657543613373993723289803924255006189776109034590659343804817690495525806052860005991438403708477523014373299318797002170527358519864278133861204970983209924857265878046467546146230826095990439999553218036680080877899316903612926212906153778248658664018778308234965222092598810779475873048221224228043591066136883839692034401891146189103862107517136360945949261698561927887379337496306584923877981683552286956370990941339353691512105638747401588285168454006624283497031983371755967962461187176976486978082653663410544249446533378887961652231203285707187916425125589408340943172846351294989054273747238954786094748579100060981905422052495150789377708372634030821772206321692485707029905666126447174316407474061529901329834087123592105666134167163436802170367452342227950753723713445216920601289825697637023675873308775694960134954951699926409058379624402877236773768310942662631110084223302891708949012976265533853533327210136789420559803622974007672909307069650524419120018213242760040183506419270515492082306635947379460425066806662113701293106862421383370514291443802884013109541978719452412516349496319791729523651602260708139486323897182198620337873708356660591916121036903433105359046101029271844502664426904695035394353683084925639746060133308317921145574104910759441008743893785957408197477547877855193656950279760209961746468345937242649419473251939066395536185333005329147602004559820905050643155767768990532728449859602677054175583925477928517040313626451519294062141903446296481559131397802842000126741506040696692868147422717795998600812983139893329257258866717996272863640334688283040532529900331524332099536545793988656423070940148653839755836551648992672115157864924934603637787324938171107755718497737891113550284645226833811580096034261951934694276090466910632551525005991400720318115517238407791206251133594451084026078418917151003227851980675609073990674073481711317607222112688349316268200358286174779728508918730613778760878677836077493484950460766541129381082002093003494350450126938160813008804380858911670624880538721523077848754736084747445991939892718971636801756089155526152735985540857781912119086605742943604684294559631004410197135900535569523311193434215251175244077339163655625198387447199344541291572666589915061192905615801902843663469284229457824550189348404415209690569061640633868867042971759625206822707482667272450572654029604166577402509325984182332154911918212892376606219502516901451520734041309711271838776162839274775405835932479236919242725603666710561423221736052388195461653712566781763256271153511259802254400651789189943031250121063034886350599832547051789876539388832144790544329115819915649363317467824351710156654607786172173827205315389474478410180048454743525588119444391105105375996369519361064869744186097423305845376272269143524160771426026458050908577488407777623533403285188333463860628355812563162787839882264465276402700270196941036905976876561629584368913746012943425584506688192337539316649823586321574277961167772248964851196771566730134480730527005115494667473438015260593837910076297725789683247052962060285917989223597956938857367676365390397311863863890732750820979374965511555208943963858369917348251762343432121796260343657550543792824186021369156156956939448311292388232366179382781297070773158036168844172318615442547587484259623833180585808825148035827386732571389387719942045293396143703430967512612819720053867607778365681449944323520857217792998090775548259513000087714591150916377191735406651767305979081731790928706743882383984550126152760783432651196210490504957977726682830520645917362300170856338982593691275906441985539835270682664478691232883802376411078726022557039590144205624164742615641816847242654937724053142199601836478579456686505884321116950406079560737725536620146335815665345364457287293847473443485507275850149909640611374132114005031568553938637342136212327108506163309678513773472479454780921785964141179369428357266163930769187543484370098188098186835852513761318794573473362102811067095307828594743515597840407555086324246424515090052924187459154634941859781333820724752948544662248084206798711798594350222364330771494171909326037845624925946822578770321494826069048174793084527423036887990983441848782889860098601960649429984621441613048716862462370750839566957825161814813298495201083332038584152052610502176569519776214532376635735861027044670639593270247758335250093432902202110705352099189923690393487248440487834943300888901520221931815661156787263674377823318384025792343365750167905124090922439868873734909248216878045633373579330260343481214517193997460241026245846067255188600946967015656518308974601881319500681982873408364702331307357495794357520468927519571958967433527389922914564477535904571520595649443744866056023291682427189151746537194883852912467075300036158928427853853491201179576048557380622410241531658612199987156396189397345475016402147838865426576646138048492388864860589880434585174507467491208081903827185399017272028899368377558380505134531132144344452787071153468522099793908030533836389447919220624441737770118650340057035007709615800276459909877624030128037273889972824267477845862069094514591428696818163581651659655513742219620560580864945530421446163646551315507244437805723781138745889551989204397789652310526440235554115361052768106681221860001086358896432034127452423582595424290555204683426177181797460786581223264732691618928268007608725861177104076734583814607827565813696902767606085472070557996147130449294153856690260363334622844299752828146426576581323612442553805127537214760682016183540843010781421200960038506106989071823001103903931353153004662026458293927674113426581020761086892587123734587187208159099324645876885333926682385200013207176259392513979705509305389607532203279776505722559016237642109751131790299936529596547854137066537711659149430425134119456733192212741473210806652167542529475055010540583827521149905755109850710555167933578922828481598305725753542334684692618881474191333467788209509019798528334598122103959733198201224621052355478228956749200485452832386787944917609663734994118256402446549404261335286487159907306108692535234641374696508234040095652149010712848308779344305997862403198186836155274639088118391272981200709342799248816959317769855559987975420277817169799332774125804895008385874240129780881927761178222541803968364626569459797598470942024364188983242291225857502038862514130972803549194226784896086195671950230471937713245381823100100799791069143910736090255751716023900029165704335844836157581918745816131954547882055543905902562981048279343639928627334280122041316681469843176144412452554434262930283379563540054993096234642947766657624114439670014599909402780743342294292969678125310627884622042176410930862458087707790401342626722236508731562192230883844005411567570074007696496397589929733302082717195401670832444140871800889633187476161397536026842263125714295859119035693094992921347998729328499124356260905535605778690443636288246266049042847812317415053355111785963452056037457978800063901063581523837539411752609672175869460197313053124963041513869940221727111213870472197955423497418259055672790916711950702938425721476266881143219479329023127037666342553517384667729019928657217994092039672389165315598475879617043935961914922427724433278681296646338881821193566014076377800156749312740901609965685696333949491034246385411456846785945856748641994428047493221705898869501822498544097015971751387279858953280272472058084816889846061523090970666288510197415801149347115632888240957057463676946930958080031855860393058083871517036474993071107883278238745683996522551959467646304312195132517300099632531627074454005102441436836519468554012447082696469663121487026891777484589045271997202773533786005248369552074277672387655978345579054634834731725814187251145554711552271399067581951284445051171484965239591777437355487164460373044659376861343715318294182383039417917242455062645370929369745588078376128544602197319484552230431672209248721092654792314537796209133216312755848964492175747984560863702594472636492259701659488337067996767801181461155403841075548867893691233537852203190964455587071180619292814525264415614375602323593628701018375305125709149683864519599971821190629766092700694126629832871654410898541819227631665345821741721931476709003421173692926637768620410082200173952429957517383777332480151356150079080700216741095567959813206819012365497149240804888187185221268835588361086065222342295883867415586201000276205493043630703948869129390529785554072789233351521554675198275698857605920629830065818693061184697743169870017597777188207969949786336046481352841360179290323050098426406871191897093981743444621823943477573751678485398489447133029831195001543082989595974080911195558661959275753418272570343585483713333867541399555068371052140710278159627481529444912279235733249389559937198543637115823751236487337568814259917958648863754359750156105369001100772518796250020146287252995067980735983791420015155623958585835868556621590413617660503234613090874817436770128061011838851646941404823023115624082518008256147857273790751334865645011066306133253441303443238540166385832984142148745438938345257431995713062714408106792645727474656441783482504732566484567890694077232556313733067038527521196359870476426645152753242665250651783546468757967384913791639247945125497111781191747467943277209842893187351154629739542933251892984336543048853034961796410167146298700687660182436416352048448773361963433490358573279073080415608564533792150495622067715745263520361245451702423194655140701768252864287640576248790807200793263392694470379506589535612136757491091819182488495505561607176953236143466580262490762127947084226509280361956647052922639156521442328954008884205910344214171773972649597681193750307002602876179932730082106763544663391039221314658433232980466965796026507747931255491519800578520444382939047398619084467647698729535282530943677191454762397373116494145817973995652857900314100119240564825953249028479689302417805379669057906889865571431177748110057132441945772287566702127058514668599975903200646194852720795211189259587983911106578417553868013663537232351091655892455180359073821022263663017016288072565426839347009616742059388168155197897794098372450592910868868866726550582184169823624170039709745954196689058825960687059208309227946882135503284993512303255367786582909084657195383933732669818020546267961882822044670265839194671052389525523470890259332649416760545000304975555884093098215373011889097218316268754936925830625774333894062294247911347941912861027975635673643811025040531784065843334262167581918827072613407247892793464534957506623203205751739268664340111883145327751178614424069933066537318991029254898218481409467010406392907328979429777974095860616446690704658979166519324268267151849333643565562958921716442261736241870594992109648925246351375640079339612969721839357258870033647123481422673053262736275031612963474314410686477511522671135437762945317164497129600231432021350100506814509156837271630049372906953718086497286993301805858460125461846166188905394144675912770922508994104743869278671394807107493253553480052782039347186976517188135585345708518348696038982071609624081876267568174980920850338095108505718275629097988399436775986347748081244096821251801682165542365512120213334608604283418504175664003747917698497226976815425426674440145812081369251376034247467603363168048032729607060583722094168880550911740912233954796664940854849380071657740187767245024803828347264428140140717412819247131271699887780081797639305679306384954434433389089055005306130150916846462587001052224896207114979175138407183292802960887652833952057238864062340235323385340011861284487348300354743884579793031961297631534176360981027094507244549404824844813783065327307058616024163314432780087073895895688571609319735403052601714493279111710941986713671552228675665201202170665352065426001756144338343595691462582198928033059027939701557241398792169973420232218979435855520439079864646075044662958334412058267182695157972129825298206853004886403764057662094282871540086695673567754550877199479532563027449445409156312840127627035978397411899771397234424772505574929402694169622180256416735114345284779517692115095826690240105994566665411905635617181282306019492151137755325974561394231996884596980321050479761922032176183740169796941992062944354817715672245240685433357791139378197304596670053464754206846089165808284432835916847236307916569710870290056691240026279866189556934102888001435984261452905795559479197371892594898353955916376315744143277463065216800771677508985332991508246197242325427626135968448059468993310955433235238841091631758945768672426114453737479226726014194820222211747585917079177162652507169844973848913952546626465419530441623041470813791949357995018431881885279219674791511360997464394237739101049541147405910891161026979549857532443651546156314727070329924538853203079184838614488638238598891940918714287281504887704096546960387210461471790413334730055082688439372340137993975948660153016666366239528174425213081866518605800702530455386057489906864670839315392783365508276153741650760989498679287734804062191441956762532943234652637491377337751598866191372995002389305647397424422126662521877676291499061039648568620626862259563554322835930439966396702429145707470542932713144372285751565445457649282816041716472178249551270976996676628329660471367051882755825828774100836957733307181843372991088459778038036987189759782527624681029154665286470122393521081728503489180445640772440935893265895122050183812466557130342247051326589766926634181814191023064045315036890411466675216684090838108198984323306010397763336751537734361698454833290889158398437703391927826120994278766542316002687404613764740345322625402366239502471426514215565898419445205380841388722660580605463884316748724859755005225047252826236238600845115578498573565139749199190586121591933919526856928897743785848627968450174157522525531606617985395027516553966617402728964884236234429671140818495524260651566217357170444483314609487902935439663441571493365042070438149493431918737835747671176809282150442906696844818559223243045072343885142417622369342852746172397658655575606928003657629013740677393350063770768797728287982462740739806390201496971256992479428341085987499485945165145938791279334931893392001686203856890420422033296932860873460364359536968534089942371691279792140211780517436331294053256079445030692118200684241539022067796062139867540370463901546070583791099425085024353596696805469806297754307562239434239580184925923118314217062122466797620542837895398070639128024665163734571903912581860648516095972149474449839324982963347489043749971166514841308797840666318697098593368219288105093587550005355367724076257223806007203243489337786671693158349978399159164196865719667588061791878818043856135956420417473463929735926083978575759029138708372109320483976869384674515646415143889920005250179016133761777808602563985517975364164415894679967349832895305886277304102006295169525848938918412072596927167020668778102664356459038833225233321105572077163346264851510642241361364851708955762193782808155554982473958236450899295654195010654913724042820331509867551813816180993524998287602899828129244856914453236661300203006608706052681223064840855835623556285289819661135142881815737046956488388694032610610078124430131405234126252926693681484601432975489676993846763104588397966705064010777699401726369016535748917657478821619707181288119845431845157572034114668109049256032701113523451283493007232028451574475652215811267197227008166622318451562885842785662557051204798057197190590206021252837168734975891314626094140226790939616168223937452042392097873477934027955590159190313484882654175104469025991300460236220968119234504601801246668190234081174905029666208052408728215849061818419107902964133457269177767556225546041730244216740118580952301436192528515248635110617299756216774680468343986430111704085930149960826389059299712907033114103713768207866933708414655053405272839551406324361481905048136094472307252923647412704504772564240748553786768885193703774733201009898354314574681698702380464772157693933608126754866897256283659636078416525021611222273609702589071808637825544394698697488203825342652148354648717722167211664770317400605587037946975967201395447085767671531146510711277228612220652617760386440267709105938244530293251802398441211814504923825016661436927286804987025190836649935517383909616666112442571646470642490099898909709412876413752653532359060390008928897659507487726833749722493614286267117333890060630493937233281081788954985059399474556284431338797609572657890145304278084710861908977543942963393402083032714648472139948115896523780481778879124754592676335297187995578075336356785026094098847297052398036687587316170886480868713210843508396579861990384474929048552054258642986406262621106695945507211874138618590545038135070303028283137410528134882207009730069523490232880446424616787112860890188863388418012993585341989703489002696400032066941904622293928689967962210781454245654371293171290960791090107541728694673059431880397476378736582227494440492694398803201694383999419002401114591683861127902923597313697420648513382990067495658174841119267780895527006986568433070277265362178472926309923158552308546997197559193478535562322780638401710232358841805491626955492681401793052779810466764531375542618608110476906775431358559870005335935358848849334409232715514649313169554177932463713834335089795177315438138312470004001273353068228142932960745793921377004858717805077693905415862584933588645415856750112927946118129064277187966159596572339912631880673996047125988263483908580764863397864392261203535650546366370907888911512272758420184519596319874838272407032165068906478263279234154064048475509189818216917412275341314173977749577581072375830292575914703810662540168426096247218928553167001149964514400170588878784522988609550947078896183508745194866156611630087563487056593103141268144271240327827782486151836911668773485817896792630650478942397891122426425522914514080265729929742027988435395358288553874512129993368162545577151048742648447154020168572441794865112696307496951076101324752246985219841097457956011167718150052168548043949177320645761657692706953272244625137981313480266436705056134954772469581519918840429533286741352891350161829108282258138946076365425690092117204865342246368224167724528380646253802233334330112736383373460999760898714913827707519619731204144214493119908612147290755215787007873933853297127005224278356397869813635153740326622743523340117289304609266991958416403393232235091257281055734314994410060911220880145958788887219674491767972163921804423105849890206360763854863205236779854559754220453906548719714057246601609105894931380216981331070411522000211946064147872644211731194242653814373192914021827456940919720176159811910344195438256064535534159981709911218713855982137015639091865557391896089275982999956072685820788643320550953549882643265386170090835221033924277767697549375251001915992715500187156600596916959364884400461316883759063504483403474113758705402640309606285408608415118452925779124503802202957961964375892800035864468381961775422193291852208439328673563144828427013408487564398596276754561444181251034485058407756798137868657892507889857804866379773075547153084293165343409775661865603763681426348346468918341425596940240554202213603858368134463998589774161220354900191693931603021376776655912212496253350521504972022960257938545045707517407466144399913841096029873895906518521977494469475795895327869291482679423652248454962228405819810297047029951141034275974013800520828836004673707476140861156953464160445452238867082784663426060117483745250412429666747214398418917454955922120224221254064986687160210556887990502061085658375951697785810746850195590032159683060456403188641648346614708056371374913721629676479903070779972552129616275607189891323275923526270989765992339594561309517851445803363989011498106337163689843037338390177118648656656381424354716139247994982324322081903957434738403529697352164893691209036068568375563923068885737161735699468442446841406295335767046597124919603357060853781692350033362655368119262395597552800485190570057897692970216477212413149017061316613635974374111165885076355019518248166624013372068806036862332961280347306641186869111101706721081223604243915652503383827630189237568166581830823952071553222933078862237031514625433091583652736406197440219648996761693746170121004201471154436444707843734398986580924298524960543812184308344756715588076225670183181302040925751889346286322980285568044225357223732474546786409647279249448625574372529953868255762079422763741962016154149766841031502512129133958725780116460781728006418347603413321057507273815992022786924234152988838219491311860522723795279311767972359644496653926144941143638543226518906817471945762729154054425136771748175627781911054210974389761777975781030102260000697906132032302411098178529790313140299140087451135562049769566014483272514667820982587993274271883169144858574680998611685190081235361494423197719383433703050566637470200330602681350321415014829688262470827843194348775669191528629203399453440184904571506108415581379297927797305717132247467385230838421347710693642494095582058915813403212215680555957625136997810950340798725198845272970957486197212146628593235024178119184669259376960947029869616198165651144226035035028919978662055192302040030350361640467412091525601982822770428878141037481304712782552341935571070314568464278225403481240108962117349915211183912064816797492733238527420221717533240206423651862653511766131527977576191377564583219225088405344214202784928962981958440098795956381356455184234143953359138196741458812509606918906147578803164630693855462617818877818769045688369021238288765088942597083019886712097560749370304575356442630757818106531192725352693368856729659718668540711863325945300739765005850338233739529904539351297373776643330218925256445430433073319678569554567027149112993751103931295624824045153375255660054769461576854818204782044025682922892830882886508272023478592324278931699405525830009523233830351237164067661991039833240300451188581492079672156759305709544554494528652646628667431485214344838972642810712764106861059933528477178147467242494281130600392636221338425294049913680030262234971565411239245348431399240383339241464544059874352400621396070776185739357671472757856204783413793728839649050856618810634434170040871010699434692143606608147818652306104696004605117763055028602895921856935194302999920701382691416385616024202409849507771453278200167003848595598363433273584876070127041555779902579559435190906178193265780230507536630679581684648348714192312196484241925415804382229703377070391414526569981784633232834368483385700521444610702783758100035579936507040259252485699942879503581184615199780308335843074258274269100397261332337571264567620378456129154370707256580468652845255983897941562501992535925620803255619064581581706246972985244200880129411242671592861777235347289984275767852877112173913651831171731976422701931455695844797776546262904246075010191680888694851996485293925649816378828297914318695604174232023790692787108834864864707913920814341689896955783195961793513170708061756836615127148419493273195375640651874726497115415664327657529990314683310320810566107690017229592116575779067906471156260461082192603841773011444325862383129695058422128591528948839260863460252127795944486098575178751148937999666681464511827921224603234218908925681017974133739111886132806658795542725777531544716009802564138523119653769339699385748017952209494819915653004462286649106246665080862036758464855894375649504796721780509061730679045596863159961493926219235703212726898584903198588207782790591447602205564889292354893229660313412126920199428088168477084507527068842710375263766576029531094794281665971303061214569688032808927587109266559794009359802278985998337350605927202418045405744222045426167170430675424006948445946847570649978589128792859788705215403272636319887634543890551661175464476648451444758831814148087414620053813721439049325765490011866229571069956676309578781123424801817120683906767278853486386517941321445980186457927316629103825296730558555826560891454030229223678402026287508414982973534640341816520138504298542690253616295760019484787281943671536909331138162508547621099266342813366181055747984946980423394171017283811487753377925450536268756419793819967084659923716556640242376843557695534592735436595168512415144411460787124552163831957359538026728576391953591929916177442343710324812711865799057438508038941794952727320148984594432914779982570572013885341458482696565926864718673928545083927528808066354241679931625823328061929775125541069512205403272439516376889993638343623843224440842373720884274658194676233773316154013159734780073496971441765995273389240079679841012196850279491631768269134408396923944647365004223368629990014691811336891256574274655887674889794295246282761300576630149904500214888181543957236910393386357705018997720355061344761215198947524467615404642401359669571322550692542328598169133215192151804014280944434386384516578912699108826676127485370455199572593843687489837117218503698841400021504653422029323156322973748874799286012079693562582492316434951461356579847612617526141850965950587533223463154404564850973813400339473416607333465155439387873297800447112335720216646384236839274664111071683840041692329006677078493699433662044780266130392119777460737059916668365336629252164094280322605403432947750929654375831141736777296919085965579597779456740202182016244453377024931911656715871432383956894716714900310156219320443608765693313617172102861309997310196697107902756918494355590521010642220006167982985594002702870464719480085069384566935983113479662554115338885338323804497456105348418874901261012544402476566753217759038630925127855952215665875803409013870939581706533875722669000585855475340034311228913111728259842358838092619581586865158386016068096088273964972669897823127964833978454781967421175755508279348098775910517892995892134522385808722197249411611957251579310662643414177861214431623054510370454755189686747885526350430192193647062175101322818166579695877630855807951321123624560493074602374614406852043028784225978264821129492506957813838011947774964372865983218742108892984258046765752871738154147689566197850581358723112804036036004099522167420039898348947707520162732543748361412681690445806179707649908412336678902773143957022994925495743835747501102009992389406054410461677119655988380126090090821280906431859158997404256239497010230650349129121394757566740184158840894741849207679420927951180857642479782722402974659348511149694570381796194049564379213336149241631965086072703737614023202546597522767194052069897572818425238930799094067309576229920696197010455873364942842779933447250736039061547538033556610507755612141779048343674071873668199356635201704011146870848198788334454153606338021760773240641720089764587083357627895033738523679802871124633231110520169833246483147550962550212461885480324014215185198264482787069718773508100206002282588477553146817951781252019981500514845263743500751908995733958608445145052787846005144156682890914239991573152103715514398201911722957787630973128954129387238092217430171258329011613324006711843716856438707631299220726872732770472362437009332920183112530221690087252895118700663045287009246532707919630541332720549827551354278509656595437710437653534943368639213459598846278400940468471759220476461417867907008099577242370872545784332449415046278281650064019262746386459290971614779524381032722064520619007540293821063738277952360801619198957423061260909918572220338334476328595791905984589796259008757984632060302090021990843947012684002274625176252559955148562067352388457035770106061152029698561246185034795082155971860329295634603211884695756569116403287800749505830109131095225723631434490763179768155433450888188576574945509141833100877880783082793402208870980942570191456882487753668222650193372991808981039775700667835325805112739121256675088930758818952073509692957792416207559222247091554070072392789182926073671939202857783472997257143312883794875213318303386006218150817172410123817250090808948044342911536618379078566942144439693917352163890041226998947056099468612752905555266077550788156422326549027375751674447682670411313965731916049993452289981710134981505242919153503092165975349463869306880708282311679549173048245264280319323401440951678893908516988492227531804149431914498145166414471333125470648350060791407224411944242953635965225928678758335346805322240106673230768248318383947444682140052675093933494652259539820109948570134260415764383106559867483877660527494690114914994203307197415455247448060211352704026313971588762505199584382266056855106792534344908427777270640392255208532466395105901531082369135410928232859164498125599859506806468052216281216083604407554215069281279185087750774814974623823518559027868112969700498191658458685427869544936506568278735407281693567857759613019644442988527818120505310708456298164901644148112004640466885075914812055183187291799291815276893195431663536841520765993754296634599110838274857576547990184397732993559579387342345810389961250412631599972918237026484783683441153697752018618770095356754027977004836281708714650682939272114547878819035205245803871374043324231348432541129546824051254731974365927673895211412766995134128931719281983241821245391950103699524241218825455368835433392728410756503737957938677474771055417135316703787191095864529324761101363746469317145500831774478293979245556366540843997538029090348409403082828482423190912929020154886084908538498209165015349918650480594593529687556724644288461706851524757937566953455752313914950354983245684539888084391536675021081496339139109132416506112924445794201362076137650078281507602593001742250568686068689976298748447277074825548782861860627254648533645897043883722265483588731316559421872722523260856836529005430676178574837336792027887335252863623316549806096610776796876485181231586485534639730037047720673265910888705683234520443722785642214553234707719809238617389268627837584881409204795958969511916480809319829957920508512796314040686946940535936249335043448794033834583026277901093072641527735184718718311871936778290434063185843724007313938980396564684547069597621468779523011504029291754390989242884303093101467996621968626589195620456896961188264649055670031136785516593150322471195752076360256538799452877623661796935101382483543939915820550033250179772435297067528467322099458672010574439348701946893489641453645721931988222604070836387914718075056703296690252056258972450134373975324816918571459486202097500818430840245545456438568209501157124261596574910383161050014165586311049100301568455839014887972309769466034450110736464526572026635488877262413791918417997415462760205947458983685962887236741466246537012568497721341364011304168034902158054416839957165339928976150340024846754492980828335126032518601296349700009509850329005344452648444061421838791245822341676506798946757267208177487356948462313721262529468740503050891888294353991463822849149864805583993487435673372598743660536861831014628870304929528134914700799424644486269234682114089083592910588398686992515856735102043723686716262628661019205519550914363759170238984457972064737530332644503445955004001708575808687187337811350678929372286300723828824619965928174844206421024569458545632832270156439260732075864977295736239314336482084336262833963865451675602911466759891642280978155950577624003329880282873754115973143870830093458794670199511512537490299570112439242009229509050515756149703203555295579147197023992576053871184342717937008632016065120038468432455541673211552614986690074201380395241272893957212609988351917951925971875257666829245964194108336263970464602170836595838166126850978084385152555219105164394602768040212664600480185581278327890645256796478053106118557670678419102043351727814821180543817548150117391245722447655539260139200750654767169247896018476954992971219777134425529954572480895429009638880938983772833515127641945526736138733140222956444140814978770072895137859698969054507625198020562480829632713206016997823302560419405977439030213516012795413170816487269060117861855972753178884805580124779071343360582338841698336036054296712965651335845634031538911756037423749910381230176629412015158281753018021034219231073784318660979755718827626023972657430424467671180108874797959274855447966258094310093878371157327055981235229449994818860973284266206603521871775951084719620130709567174862208982801054582514968031589082172584708705412150976135794789353304989776026823404782003355939476727505388555459496120252259889190122830088081025956469722640757042476313955557796485227423402176412462107951020683520935529209094110577026285568028719289795598015975476394943362504427000606185945674776442727973078463509175598820547998326232891444996491188326843301523041226882093540144469264526705788203042276866666159113175448714896750091572166582373983203448073377473572320749327093479333870239560005338697420423688844827558422793506219163544513033778006950758436433288582664196422326216676797099410980276558793958060004586695456646894306300436506389849025052391948398341805254695619588688083012984362617521064600861167144391806846590416227833342701816353577398041108320970108498695827197821298715376034670154489880563051351938580528322352181842271530764436758780897898793430165220302680684031940271353683166810108992850166247571246711606889872269569641312035211462232996028212354709508519694874905748083233935270777919177742174779952296932794963813113398293811886210931140622128747738320925491632928659581581891424662354662046837366116671684662085531969941462679120094063064872708819376207110506316527536369060566739374219498278886446789399101129547711381909329808583240937372295737383448634919060833885490328246456964585395567312315529575054529115083838139252174649545765504813959692631011025379564644207367357737805631826832337043994774276651529232376985897294836273671588052237068243676293213468622368243312400511094047460331679442044392202898592949374412956834853828932535628701042812854808215334952783061624078309378078847192827432329391063998972132852359196646103187476704063364457347873012940537211763732052875218638655380148926137330614310071883828656356331304787250530368833991568127548126575144082925411747697119411680133567788606743741207561244027996709945202227594056296431977573256596085152970940712701043397357456267640908080214833203315399562804911673286671938276635139384735533470670922627543667383283923484479186034120849570576901984419673294399035450548550455433002711754889186461755524367520645576155642391588457410502657201150335381660111134814993321455181114902840406442370391191028764458911604635403175164827342096723611195712795702975225216031477754901714995549072815087484441195122186291818502927791906596125830159141260977042584439319535362051934162544124751459301389351961530420438707478606742563758673433512318638784241385911280023556514385251198775150059257855843380213583898970652636388805453213741569088349229541313173603237216411037751138691561398751578134507392671923482324365907647472297005879512768252848264423610417689828045003021868587491067669912418556394119811766097118836287136648579448615091714593538770977607622349601028897305633490822826488390298622628597387372479085888074938544553684201424109895282908405646280910562224196403205822159844469163357049025345650362480309305182121451139264780162404648056564755848283843538754671343569781371391810268385476898004199458095922710575195339697298265995232079207204292928422442456102655874895748383543084544853450363980525131344975785235227346566936364149398862741973646517314384780449579366527613601468139379015520956747192834480506534704135456618873736576229967063541976426062145795478482162151913949034117214842732722716804191875640469749427267089209333200969409008246763005024798084333754098577417974296811761735400141719428118082520476330716642484507230763614876496169912431713821654469780559182726716494759325714103208060788717968248973571553062654231098978152483579729674227167965482303344674722660078612053700142823785416821702959789165798917453237609156282721921690315904966364202142756498940674037189054314000587081755031394772945083199654101096265396659669571377879617126223679625954750016941776438087569982186440614301079980305261035552106584620110554631387459605197758693548602015064770352104458193572975117561085384463436006346765256268460049125012922750759580738040828845327919916622477900534353075285446265571753642256469723518569738063093525222281895255715503252650653628000120109532832476379678402055472962237592322533587581884694399800456180004555670654737543671691324579733630636594840184494201064477467636435405244862820813704560289444881993705171321726029440161641479439737102146159393676404780758070286944070857153420040246201189074457645511058479583178525363078523308649416125723092665445379920080617958099410558386447610374763061881765100492835133987030810190225941662931644061840342372042554182683585380292128712268092010069176417403127414941898607961053650951347370869934013108363375843759013282034290920303716948019970846423765852908442789947985453490898603440437610842903179663312407226721030368129471826208338414633496389016156538502530235346119842539876755936731121789132221578910937523873455577533302068840674113405015287479868914530083622375222915129554304186936694418302287813184506239219028457457007649786642638763303055199137225034783672274724279542165881947175480437094333571962173018940453423863589450494323451318695223941490393844594892815764835631781987116509811842152945971714800960371396490327881535713234615823834934139452533843180861494281245432793875771173997858011974259208659049637535625447977315695214837120942760035529054688896847856850914366294758049427754751811577522544318673598207681858294780832757251514664094134071586715248110452955990011009026516014119478882836975452555845959258260522728145546525505973605562812156943900169126600992949032165254198256567812376140175050407896408947177483363981074911696623353861292923351405905535331372210218539736174175859889907644685673399945844510007382627892286565390929856864728770157842869156360180908287298341535698224570912988527493296077222077491238675919835552281071766554779944355962552118694453205813015092577670623577461961426473526507930375811436027678946142830462707063820356051729995070132995116311074546484366173693723693275565347506743605293844117734323289164834454354469522440099491095918724033909085656205712493447135419242783517005072639370471958284590107283355514138257845699034678685992099427421075886008971748355337233875652817400804290262208400279342349198773231711480776555160043885593190802927443180292167104322937956807163902997472311406146901362557541967073471788898818356900371547050993126608290174168458600606691204883371105147526102361242495771418332064106898871717522807116388826512314288591895330449578834431857866814925194774532364002443356618289109382687028595930619890885850223995942720347959304636496241212119490088408152243434610495427867250060424987010633856199334456633192357742660454679154059828778690929420601790671265771670093729109133153382847709624090261594791493973213531193571583979947729685485141803920396838962338403168343065473099566935251239600045646144392099150187076645980095218221173448087347709776608331392427689085325843231272555558679448060385507340594458304173450215686098037137811496945341228194315724898832977621756865461417930173615782198639748419815284806292776743427110953016977963673551106994992736161676710001704933897931519948635341748047740953185099752235441083123759829615648518172831035517360911478425013422623311261646557727364235730895555020269183831967543509273492163598439864401885370335556839229929608946860627790528825356658636299596088051240543794977170518423419027187433478081179662013887840053536906984219781164228820760235847403022718338503616028184458694397566300842708665453657930723611434885568341840241662773286964221655077061656339775653854381385449247271822728962095680953986707024732893831682572928621683022550705076293047461585395734788471511090370368154044467033697450120742226058776346641544936657961326195395596376260433079917497140088878097224361580656041381914301190253414608723836139344827521676397955569575528551531268913009179007477095071925951124206996460652658450744962946616176550159058193773531560428444944566826448214584371840673561359483917475956842704764955954769808035809617587271449954729500859067462951158234560023704216984678724952894176353596932064866999042518300535950646669345999458348101005211076945832268841804390203759398106933606169992316601519984332298497568243241949902318034143996326605844783317956663189256410069792746771436123507635712375076966486801021715788771001014700225994409858284329680233721205940713070844942430269695005659612292747324523999709313681629791679387372245683080240616346377253345065591139594196671935162133093312455056473545062003458875712246977715103118670530923673956166799234066057538988930874560797297580564262180483523505722113798196540472806726431895178405042432440907820735290589636579150564929488144206372540763532169199390615965704793166855900195172263832282392499452330492631529960067922355365967509789230999803945951092129594118197997037258267200814196066581098882915556108507436881473187741159796372357252225499886415273047507617317698213936503325874715075430351645213445450575495283463734523985753257060235804747739375234031270052441323634050073228220505459440871425007897501558475793302011902570602499952844784073082505903672470790800650569837482158243568765933410009154940016186039151993004999094566338996119262891920657357819795774398580872756591000455002300921425883099999075332428283963218705914347528919500694527471693514874540111733918160216061062324768597333562582050725236941550025743755920079169581010590819641853440349463293637739051508349543035257489750791401445520306335077360095174788957925370529981302952018157763909654384811786036270721269462894751753558331332738991061357614878325693708281599149578153735273788190845593981924634449049827920842264319774427936272039902572010753645347171745811684911700090860187773160598058630018813358298255662232905271948758716394607259052509445905690533420448532423157286039766431210360303559553999334232537207637053642335832854785879756222544519646444890231662428769028985679568977190411659342696900522092446569516675321367732726275565851214217472341380795613895116175862204053298731013353418472657870083056349052109887931553508892076735737411598845237996281976968721219560054755645493699460746107461145187599296902061628850392501409430070501802011242534296948375553302749303148149660555130311514880400137157879677814748869155329695324693889076975153175601478811258152632291190070565078827171471996283897112730241790240915997868826384369987577492563519292364680553817414262678097275536304544505450128961194895045936197022801890422570555832720368085585427647010010387924926213780546450379287766567717175465322667274807309652511632162964702450434810988148576978657354624036051122257124576055863444795188440992280413161743697003859313708233679776209167122014145592137894578217759456530466270049326251686144627888240108020430896614274601188286484884777925477943015516244231365091983396294380292506016938502969757649141125075825215942912925409977380442343219396227678353744660605900242959366803588174781472940481208257590823382285264469044045808962498048095798584496931645747715021351484261143254946689680148256660665218783807780336863426390834235161852878397324515859796407477990799153215896060853911998554197845801875429038937100266844663104645384418765159515317880796253406737075876964616784364325708919838796718801184120926944578758169541749007346019035104633152565636869685059649858751054804641091936868061573007311046942575888379480427829747907991125670261393756057575534604698372771548019876218254761642736660622391466498823141590791232428305666198800872216752768083683096633692574251995878627598937836767208684406395909751892389107535096854801895136081376951763577911969797214126752522828623633840040274546651161143375270752459267091732894906708378775108117337805999005439061050855428495520912985488576386185767076874801093713232554732864312981687755716343294583224071448028577848205476619258306212499696246204109291497923335326389176953264836350753411009641549611071212906739257297102679440654652576787095996424537364597183194972874254172614153931286149943193972160412128129244579790856133641060435622682114746754888783824591543334887672770766714329212374195189564060968688339636189072184640674909757706472523973094758204836528013060580133368344767658969606469197036883643388492726078535760158808030846148495677691046267590582123966569939416154594758703641263013925259733466519604096699887107234229911583738452181320840210316635365023579699224450266817393031988025108913024896207468694251012903810695148434205030918232187345121330329162009867576534673498981785403413867091150603230184995668041016456688403040643844714275453322553580216756124367689237486653804546952554663595342954986190081797110643846084629357563529243532654079806247342611052933251474872706775610821716472144601022563059473236536201700686214860428801081738786004948002279248387306339555848219083782651169329752977696098847730480856410677538307964659222207031286655262820253555848953804502332566639913685932258454647730378599531218708250504076331803014073622881961673846039221052642035896683394996654626347446149039055828417318021933932880067766667438738406286333642025674291426920810944346379035769270476033809447083046968634907693338193786860186981195002111433795094679818108979274941900570642559342038280575779254673834555002611240993440792239503465038005066705072855776316061118562272787969639431922064706283343126847010877829181631544492614934209454289085444411498483311139499272545536193396309176435799005152374620055625866596912961686607236393474659635271650770203380796932077491155089566091296015990371513245437582301509233892026983670001847521706693130934804940250981075690360898623037272463188021598274886696328134247105654021861728611288059916935987456219975291174114948771868451768052900863189845800146583019769983251856335865144367767288849694865793116014401512678319503193448639407753664414276218230316278175848413009650258488624284010729454091231276126098328736493076684046831775090925773890069189363195186701063416179363078970214784093034884806423889090372738030170044198695481304818714634168216554791800182049011041655514766833415331700966932041919173047159862895392914498134239185729600347525334347553883771907001111138903200112012081552998334547652249970864740792877272781263908653082248830205792178831332549422603476435639098386434765625750308950753608651171889728505781524974795156990313492253242817971759975255391613536286693730351905069234474464700350061836334244636969260255348085502691249590703173805013523990084411991300324544520449443862934484295249012452086087670028257572446585808781258769171951327731068039175878343502024170976725381201315985940796707243703472308953149315144260188661778283717586733282356788631782877943758663797886800493911515631975526256620977494133369734300065076611950960434013853791339221072409192114426962322359375233102267698533742208133056926610631829982253152982325679294233408589904729782405599757204882633712436279537701394752683531347942513667287248045229596499506017797060968504456325444715104310918125144806838863413026265613342815140837226987561770885325497971637524613656545771821220929863027551697964665543289819462714554488309744949371600776258896918105053819253413599367646155204020849035503652291355700829856533577577950331001307759898351877411515966980196522751788789121800369064633207200371913674358035617223200133161837720929016662376165873146413527537438013060902890440565380054759878539177526899282683913425741917788972352199485333054328981644915417784037176654500578565400594191088237667035114350269424032364450221724749247452981361804941263253856292903214641368432012100538119724072379745813248982784562963112647177083109083729983392144735623002218909605178076853500700078450965218810724168173249155343476115840769617738615769010690599921031522754093158017602248904942895681528507778643260670571193084146574267228345274912789502526858617422068248094684318079889165239507724988272999241495125771670301887803703962249190269300566479000518244162935495783863741040505460034111874311133314756705028049772602555850094662369179900573942173874189280610219338951134743460786795260131060848097640848318485871239975743100847432839104422836522056005855199106471898480357522576440948823385371668340995021010628489966308031178739364945617626513061320509786858409099859823762917625480487551651480346630768186027237741779789800657398093782658103872955940955340395436645435568183873877358728854955924905460078636311891445534048169160046390613422077449703398979286718685346924860094510369301293691808531970749677493620850136374423823383902149690933667285911097472763790657561099939596876890279723847384831099458238420381150294400076221679335716744772226612486134263172972057294544971218950222603904688289627821060857456189864784902366145658229117786866806568406496681222162482431464337691023599806350886759766852896676011970674588547640220721887430444696114723548157523604382909945581389859959143729838641691136196258828918449759560088724969661900085014160454789282748911956298975881330266177092004501380992897288740241116978071066525265323914523762222446475479641435600992540233375682082585137957719530046860329919761251159613063487889576271430914451560952444261791103349119724416539903203763336235443872394566321554675891076829391976037020933800060762169258136595470788467639964513849212621975010984726829978990916061150274971463946651801661714997360824080480307913324357919417666611690534772185990379647022541333028711987812957568046176419609422704336632845588135541750162301368126740239411814916660096739342598095481217214060631946826244551695625582062069519970028370861484808786080658509188025798861496501085608321539123382842941251903378389579804868377629111020193603290763708805018709696249848261465428681893176478093766723249478433240991131652121465784856485541683996680697274536394168347630616645055742173821241220899178585612050575143867679196509828464881008459958819508632237752186391256776477359479754802596247681379857417857132974259840850333339459047413076996262399730264871754010001736520202591171207943392895188763634111138401652555799135894646530420643719807353146843510278060940274270749888466846486499961813719805798544415264600376505978812440948250229265349389006467418484503138168052839503259192012512549891320436508482512873906211243396486458909816477101843767349697774636925240260156278970537836993271421112189060372215146455386638529440017403600296886089150571012599339662085411441541387924375172050769782339225110659729549852870247440453088773858713036882412523990605646297159973550326732659942794237967357900093991238307534978918890307233272122470757805735820472582363535566285505313004697222613939416193664331068209685229711471254491249710717131343163418799656056934037889833773441537541329852336689967228319863690468904476173252328559080602094420308897554119038699401819509871828864677818149309540470500472121850121901351810322213299378752444165742539703758725179435198536010507742514487862264797452555692799575288196518962072628429965547203123261190955970840383678485032610449042468632401313522513893530990965949421280591967365142195204215923794022204831038989700207483070849423636462408413350761302923047049518543988452534552397568340959905179105884349821482727262366851921067657222825894240463314362303249946754568131143163985771766791565818664323567534998849349085206995653590765934905475033591205657379533187651747858401940982908610830033595431130015136014632310815718875936483122370144736451939904913978669753645117063105456560682844317616958770867276828187806928811583647392802560052698425623549896245327529639783942430635973649199549931791884771635345797079673260485338569694733667931844933960122778077123556840095123028883367277957230964829813065934863989295332043436814974427743429639619896707658654784736871859153015789048871169091280053497118375974929911168692776939554112288099207696429618315614802813142806799594790982945377979869254677159216854266732822220939399189625488675180200354810216034798192083222799895600543310767914986894085453102079582907885317499531614755981970723735139944208307625805472831947061857406202874078359588606107589746647652523809377106122259634710001462942480722330450132587307212247287610256422807406621974732141128495334167679470654692083231218678198742715106644670241983109235598214804518880312160718245327128713111839450786334002779939154647110941777208301681763060396568157278387134631363297221988629110815977965811207931076602399848355831505396893230592525627737711012247113443587659747087753056606728062531753910933881434006663077111492118868747679981263036048936352783301934911215202984441136204005937848097166623444795378813914126062576945643666347040613218428391996935618081610462174789115601141935429521069403569481269767744499150609263779894120398753484792806654877590228861674965886699593735351530895162567267420480397005559042971174577347110038486341611760253300722435505725374580971001669274718621065992288941197685857976902811816987522448537122312531533891811942245233787029439826317337505114857801144632109457435351596197551296812023010932035055968860920750227991527096064228650592420497730287286201687652758863012759021546846265180301255104339742882526817375235200892433145395052502385009909985624423322261013797706229812729315581305885134921898371227795625483361515555332714299016748821484295874578236412282040561645351735532987644724702768814965383308397716583352462870699673790159171983772426724992649862160716050638771104855963579370064478359714349224371367662978675708422394916963447366777755706694295256787505888324767362654470755314782584705806639263835104226065485496567876857779193600948449697913896421227978029207289792292038906539506846591493031585185248922215223195449206214138788004505812226670005889143850788911053361615462749186827369173818227300034189651645105301891498623784938634109808203531618451296908665567668162843015716462997124016536412894848570358359119232931866041429857305205952394202916382531870114679284323899618568705314254947329118699813858502652984376101445013970385060643927907570124679123771285784649740666256580531929455263746436962972574157161017621555622963507601815232643979450371576294931608682354834981496505103989756898899380918507667935234005007644849298202399319640469740881945896809639403262345712759853601309251912776809408275326581600436959512331901264046056720446664746447737523092169479228001796107075894449117525874837952742970711571913681505266630173630218367599982368469156503260059543010556011629882431941511837447595840608639738719414594185476160218492401938461253474582761813549555610310956989072445301930771564605438547658936333797991419732057637401610947844474316427915887774464051711608224787308076244125701040677568411744910941071700806175172924131315380136249642409243352983927159021575803398400046793807721356563472592596393536352854466402692557658392362566358631421342296365170022329458552756856992451502575312243370305613934337840613663415861389830764784836626034551702123054604578830714742436340585869404841881091244077514602071221823803463492167717753847730477939482927631855303276218981283688934066135571622147923697249032889919217288753826690409921585149840834851696035194416543590207552297939382097299544383575967630667223341393499548668796872858554596756789419758266506455468356263514095406737856248613664616392642250695872411338996241135296429460101375892979675609404505961051569983000028622842057282102101864888628060381246072793950309774114105976399172262219960925610466892525609942416423293588152521135577721219232085320777230496847293981482435759879708801357310041494779288573304129286991042298375175087091731999574679413320792570352255921305766200715307845449419974413067671246841712272333679768526015840695328423814373908449907352475983165842651709598106965097811159323975015233373855237109843484560864645799040666873295994373946616335157936725383574476705950404162573232984023291050640950345063278631685320152838066677359091566383622507952864650779338190218433209404804022127020412738892466417068448715630407165976792572626680774295347449153032244111966559405810314838915014660694465886137974316938988800726948889279801722153499922023270137417835566006448186562148716111579215858094593301031154959133860390634965887510202094073921969584741235890184020062622812221722116095057466952066801421276818645998883811947423034858113129010718139898890016184005545481766287016798064915875242751828563388953196467164205376684568992349576605494928698549566736159415240354382276458862660152246446128808702954166713157480066727205410140131890575779070978700103731891179434949853157777757992608905875081360155987857142070229037062283503500908870242811397731339444320718919933616917721623776336020850172452405187958093952001532587727572884450216463037615458672590660731707526102575988426078957033236060018075829042191082917569224524365000004331104846111976620502701418438116047820274074944486458733567051638558711877368344762914247306473929960672096950556168767255662653821670389125478260613455060700515793708306189870106934852416937316531804980312964517147373325018565843399412493481586359959720773774904324744302020392316991360166689410788562636011871367368908734018106731249581615783703037689520307844529937940517986497313681453064354090408452931035772705296868673355960970730987626612886459011451748620376923910385685863594204689942973701449609989622597655899857950463615367235300413600848350186346606021849749765678110526806664798521752149580997358433065409893487182752344850289868413319523119201017411007810413116308065007586205759425539590837808855386859057853222579153394366822237017557202180257453949972318171498558130226545920886899294577624032298745266260543036315420121292145704912115239131752876869008926113501760469354195464192828573562615007239351644625833576687284252249217149018318006240997771262723492026443182903465492820578223631335217642269685400436032457587734630502251898042103262588907667279794118266734182755053697659750497249674275590327267225215803961371380867906833139233758545369412036527214843537587278006995269064529916116777305621516904511850672949432718318028685204487321418843868020978316443778373015690492781488510833142594408954375214098105941427110152016085792770037758217057493479548629312462472410864449543264736395942213700375303366151390199790574174581891808004382312644268089451326171100103596969481043329531684812711471456393549789230372196057972575540743013486121163387303789273832494360449565496615755132736045412892108940990005624119919549038103079688392814053728473477653051843713300228551082708313736006201057201356442485278173785659044625467881936340597445452313976996039135188991479115454831497234235393893706344158009363720012989222358893618722737125946503360311202851191745568354426966885831136086009117055327991184692063743645642941121876346128441649138797181241313949120162586965626923999140935008685198974398986263617146346079859214222617276265974871903629078335365293973714239099275308265740940433613108920508419796434568004770077459633795853633038389361613075984661570718700663003728895667835735917483981133157857698102694644547805254695177952077813238154338713657928731953590247367386416008595461451973071794255646820314560479740668631038370678380418626121923931864175360106968974702030388285651281871771722066329164876847140616994768542656446059422139390125736650936568205264722009368662864663281667010902505626010103667694291694955372357356339048087248559346234901935303193861260832877644241441492583339482657392647070968564748556692955387192262574567790145229794158767442456285492467875169515707381077543727281964630291366480542689173926318890178743007079949399033916119598210207822893642754334097282705108629052213577247382070929538350803341517351843416503852570596199281609529249230627651398107512045639148992150752367193642573093558206402981549163797814018232355466209311931100217736632066844650569931281212265258400005904320337969856438812697322863524111097155152258463893590843528283611837575613366611743626779414219028585659214485021099700510067287092116610371646101603429805181685582829571792137266545356373249529528531568331642452932390781037234902307510912113891787593898774904134436084950128112247127358782820855837039357933506760534186316046563331878926484606350282142373041376833451724729392797846580487599119571124754130348104127999076072132853109066975745940604735490784317584099756478352435159135208150952297967475512376178644660847615494896827317954261882266802503246849336335319553788502378223104540227350003997570274385768536437102377576534656973716439199126069154164231124526012874980139016745462770783870202197332530831565918408908338599451251185345524165541080015427042121179868266858882775511185363723637745227964233480142629723175886364595290724199767449563563197942469980758505720667892213343087223605326899906001895825709599930399513630774502350013920238233920511469157455037335640873167446614562737440242289000090094317377792376195910065295851071334619507043770796203080398201423351055195856195442307791902779272705099885568895714756814280475586349202856160981321730399509789762574436595498276124326645805898538308064779866915558462525658139879511512571395023695998104758211306062903036742510410601605299877620219649832697925525059078588851180013279976013825724921439152380682793487282187275650029472362660533140921878736060773895603180267450067079914033052886506988796543606925211734959340118424302151808574392424584016220665247625335935591627934889432848975025509290497287371710405289178713716611371156408569371067059691864294716768566975289573966274839468223731439989834767936699688431002769040078035986659615966837408715501722566332597933656267091143856485946659540375057203206695297248319803698501723877400699699364127933249734435193435050103110547792086435528412136235108817766009589247520624830693045995881792228586580085277733971871407743644240063086063870053879508114606684093980800941512725582506392327167322653922779761452090730500341021550204217340477889482523667207170452913939359573848483364305207099534394500919663129279046210055150307118339547116504185700485984999022140415205087829030228089855064334076011510987510672300143234223817430833912256255784214593109015169578617392066477464547307462058948417198122731064546457961995062363758887716082849091359955254496806052523852734464954759232466375049636238084753610567619764040844408752477590639498864883477003395989023058004158288185738787621378759682450806089040553565429731731993975498354562951757808987274551415315013484975530815816527158662433031020762720069886313135095220863235252461459824092736442549128399042193505575711861129927468997799348769027568702997957823362145851159442160869454470406763456880435274492582074555462195900783350783587179168277141328577001150900997341058927592017706468962279720434857877128477374110317023135992800430078263116867308031374189350083555526082776218412016128276305027625917125648702844117330847793708221108875023565504757877440500130500470755207809936571282065737470735575909023570403875722455897012964075782497057908860859721336129845962960205737562522316887591127624532916855983023299978822454944652921790961827384225036695273691486682055506602749194107740907944318565780114785709498487091461789485407024186689220774336639031422729279374584932328439582047215936745321275084717823469045877844020962796375231126938415132624859612408703795143223519388149190958858008265626559966096085659598312320285637311641105905306616985424234572330086313173079961473060453960072462078813089850428023015414471064672289744953994310211492570462550426741614093721461858676479422832086714465365909099723698952981025541433765032559938721909650700171387690282136183553500680101292251503209068604553252161439208957007220043157367484596878294938838374614425630104073227194786095283923784371553901631584091351585212400319497148866849209564298401612714144288882720257874590079277912117158534053268043488963924385038176894798722114392514615115366897381299201426335581497591945338489348347651038036692010729569509649298550629355755983586641313138381151627108595492217423319618138940269464068772078313711803798547924170172250073889060935510048451010037530707787226277529073605942972524093383955786652917256528128181359312559727426047026990603748379341622830036332079922373111589315868011435947348956396693500688402491613997779277026091492318424967895601718290480555335532489233328042114884856004600668593884796374993175017518623904589331793310096676795363767324883450287590864988145689257204404329721506801346213374088625546104820205980592399148097474505945357853301092926956751879042103988411163841617940624190694744548822983382275842598830595416123999620636281852251444398262962384541006139221833880440415438159099697460822019627171819483720700202596747031211234061248125130169625062693503529937109286590951829881683496358707446717492258720242302803661013323281858324131921965582192066040250596042776617951631248973371786095927235777015892552862962032332260707527872883367675298220666643578603624629292585385345236198745243385010524689072456442657697875321943920861287037398942996704614320329567006909113335236271299725552322926110477104619532571999069949832275580839137826208590640749088766211575075305454513863073852000141108051299021224569874595415073563168167459919292167823186481954872073711358008018047110669337892577772491978830032623487773651294208789644069801995493598827448229797072843327253801731463989900044439855200840616670067963600681551154518058367827438828055906226773281055765643622100337051270158161016644998426615382654743150728572183075881591014620800278873157087983301498325701892428531157313530918290546482699752463322594100057769884187987305440229560938848265342892380422495828490599946939188532734013661811983152175180208273938592080285257814381975916350771418586548520921046474039968802171471399877919401304346463369655511491329985647601265190043867473906571561794041342899019302414789867554677082867825232775085483812245894321175523400270529292791815411581436811320865432621844280433272697972164149006960444704544831371784109514687038251486199099014552073319022714982257521000002594451060189907371175397536870221421389760391849231539570524062274023927285285379300162494685937711142472249309461781719645151892069671322139298819900761489209001789362275195855924228334378405064331823568453106226354296811184912243793009647854859882895776486016554225306480736952339871141140481285681012595379377659606472281380249978832736233305774842334080936591777603235635724464101105220793767332502374895320105770717150595322252951830945371770989699705698863279707925438941427687637456638705639378521307636499397279296033454214199673737272627566234983885382374415174429133305125708907629761851196309990380669144721118908333569794124803913862026229166423789245710365253769465865603400816633619769575074378550930778415979594667172386928906571091065965653963069124833372322523432562390439652354767015407165415843976449194042268693290889834470554569553683977963134961212194322157148680599471784408865095861095920604194361201172828757556983314578930366138541690043779865666985440641808385568457855058489149854049396005457308077445802022291424644900260626591436739925223395295705826405093530924044926897674269211747019299265431576059033103833188963268900241347804846731322961885746387999542816512991313552968295418411024461752257543556259897353732446359774946965084160114490156404484970561719154419844305274087234011018656113425068311150292608845142188794681667204364435904987624202404608181417948430207234064273592169065326643827297069831462962951740612833704871432105225433005042119774873979070530443442086673684063959330887666835552619622149651381126815670427336746284067552983539362312918549218867591437406311433391084815942741869446522209983332995601348520676506676344907617633162889024327663352729593003762742595423771094427949014690620037691842269405351346923459417522963903478314439144342739210312901629917345616923059608948488012380534131747980277118048756836982188115235677336716536038184446774637515938627703916630634661579365578992457057309083261198237117635864112130858659724796015212935707933373538335071178414425232288377341748213088581317017325860874996810184884251783278658460932535814291824954368984054388504701116780956273911150312679436609099234528607664852426389723448291171506220504232736760828793611110394054293952443492372649330766464429471797511059704533094168034802639608047039455024861082602424571230492329285900418391511920813771628444133438377966181525417352798232951416205922610034972100058056441143223750902986426476047724461642673928502778628922733577310613882824580838187288050322192864146104104167275773699796980248019217832734142526479687810186900697991672189546265407713160293483387703847252000782128865194069325687147730818600774483606571670674672873515728388670848641812190252391552609699971313178830276321483926130704451348537632534697922453554444710833988629400951650778433523281327585977993233255722272202846128608424973889628606408892273825559978358528211236215239302001496170224741398492733610503659095523250105717773642091036212706893811553975827018354411651462135758606628513194302916352452607237809239111640804025473234479557524985872464461981658067593529499313777773140195027806683787204974010903602558269983630311940655980975791943245338198983406680697770480621084356464284804600613923725160739351379447583105579642244104253683740544753939418309653530031372226037070174528064670555332981937831426976075979144258950098928754367061512378413326034023875046245242544520498990343444448024388365662529937707459756218384260883330187751321586532430000862306097761576726983895258776881701532968588509435835467826637524445532345990729503281363916748917656192856770390505101042683983915496708225429042514866995553897839409142762749286138405052654843930071513805527032213320996418989405650593025740508481447124171018899309751642512281321093631261163283466665564333124493192272881724613819065465350627738075130322640407187578516298451588824030396846278721203278879476105739227185824590632310576603224877248139326327006944983519225016275940304450653866253813239820073036161200760153925120858758596269659840242928955961541984091814348696954753205942036231927634269472162301046082633876949272123522085190305737484069431098671612059209094098141486903797617629599488499429065002853072885575900919833244157131781434949394841118696310038536845041755360403247948420134638584354991808508462631017995827376885967106064091051438453202568568491387962319223979220143266617639943967660563826841790706025339626878278738314379200504619452761222116123439719237532386957408445193596933277399310015262882162151519334983230517057604031894734578637746930696248471154289047974792148136576284697238241551547751676086869522616000980891706069735046943016008530446673410204218977314031809920846807180101875426378037439518797047817464819924581627674296715239522828667033906643364470487261962641366353684855828422980273622833319478178240697419717664691872722577664955359700205523299000921559513538485537002985019324289816161765651684545173420732511612466325281173260806230087511373637932459043443435500925173839698972224254816382763698685338978748814589565658903973060296361834973979651772217095868144437260285335425951724390865836046974689613557939567925622909200096186714067332948862708935576284220007760464217593756320791636388600102616150103646418462444940359501967078553908045848082675314907747455296299784573070062523557740101750969157603206015795593364967575323025405414816419761977559031569170624743634965629177319609092869589381086914775425655657371584827570210634030819387538704812097250672675910832606378146044192013680865456756715314532360616630259806378068569515104793871280679810293174860086071773736013204089723206810741922428954831012551792088015764509879482004726093456112949755350738242865555649883610579717106065186841671106953147147968899057851044856238907562843719987488995040926241103511404527763278836303363419989457360131834842796839916598438650091096960679610281881065614271934669780891217045438579818783258953511370359116247413704686094369627691249987798301398241121290451359160801058143797962754971491215345840479053603022193834780200297607451184925782704296005437276663844737795969970072175112391743399459125548224958109290099523269119791506446289738202068250598770962460116001162996818054963976685723617400062395998594688725348020801914444576100284880244942672362286533514647794933673667651213804566954110759027040074817462094879283855218422526095654675807464746309709176768383358770183080005103712499926296379630799408639943311375452459474822152870427463200326245827549794036624155942557936911519535523887613566533546478638380004894450846157790621181495410275695542854813594105709631594756208195992532678644982175764451007640902575499895793955494703016875532307778006534126457490573828010604445294136599834250704805005080926753741390663942807591290156378542612740085385635520384241077713516932034621904035844262515019872748316784716585611472644520016900678907113014399244135295713193335959897985744808424489796662573344194899023073231720891310251469216006541357985131018412408733288933107347522184953790762942934181903759093003739313566324598108999661845858381108639296480813820588074495764609424689393335385028859043565145188451859891704911253023539295655608812325770269972331295397598070467601677278171489907228790114314840781113153017630471624499409552035894450349545214490922705911797820931676026871773390838493257992935470953343378307080645027482212422038532418300711106230054139788208012112598031519340699222040463543189969343691556197948314501345659085282182139299289709721273902956677033991218025075180766768361180621746366930972740009386551868631080942533847673264230482542811230306569857868692599571432563502236412972165004225795847487714431564743274983213045836708930300459151290046644754678838482262667400455559902907546557643396004345070914067025965761387019824648765011568972367054172610154732098736357162781032373214011854146840709814008521947111733852054063329988080641955525449935082597625573476171433217384887980288836155396962288885143932819988263701349231841796607590389346741448099234434478033690593425822775035558314079886125857858469068455016296480235977597362035138709546058503727546095461364282967229621092518803818326377816617353945254487430812186337241752392832999443000399905512696097901004945718792938163620177712845211604091815586228507610925486051482689719500977530428900867370539683706977957597993283964808918422348838120790944852211434571936445438940350041367261781882571050879316511510306492909954971574580644529284141420722916296075705409776852322485811560004652980372113558246425508972993346781940352819178956261277973147657698095497216973265197981547996865048196850282377677544532324737859576261030483348760729170156754719202496715123893436826995729540943623707934925420386252536964809513663616258705848518955003327132991040810552739196479854483560933033575459962408409935632506688564428218828779145816439760999889905982791679188974034712889092557549752264883927485137308926607606736917704663755920154633365916483918027723855600494447324878824457559705758168229829617964324359572513999212498127038989489200752729138167868660717170504365386842004007201040646637902462581608849843628358073911241671983540618627529413085467814938110934213032471554678626136529028039924471205006446208135056935525996076931738887116038817139466836223551505812633721340784991999284673768970756020239710428129162923767521163501045652401641622643466319423718450412860880573720303816417865219735170626631736547464001249437159079113621074421722288812536007011390892237428337690655232787502122702547225801198151066732164407816917946073783627615192882524699730171126915527047337498971601079616865768586723283353638811861939070942906889399591853606101437697920510681733022857770386944188386878684163825676667283436216908326749701713802197037015914609656760886149071164724248136667584014791402594998774145903089978112036527604628014480210585971721147547623580131260642779881953552702296509993524199820635608089414366791035278816381269478941364311671023759937986112273372123230997517044070741744407846860115918302126115403964222215782040992063882894408369971672173405936756136229072320119830393923100410969935924104933169641749460557003098294218229663718619236985649807310382520115822583083814177538979922807124500474586209164144287080611546289280004501006819550457787677684608840717605542493799458653528297645469032793662673941500545724902811329340035696000325503688856467063327330222123004696701036082153148522526001640865968738589991965146630158660564029101475024853625745263433994951622359402158259185545052374964471249410254801898129953071789814543736485655170228263511197716101274908027513541388468504176453313900058851470916558913238930796546958270177762468054321611612421082750802863607804418844831373022229447190186531419972458083048966753405948710571661947565965607581064581029467777492256266926291962488810067832498595622184655094678460144249720186013813387354480803737140738464688071380343372076150180140180958567647919444123368470449503760158278447816949936239376426489903762340909817262584130082837449751738373946104529844287705733339503095154071410940428233129071332860615213048754005446841086941058162884286025823768427266742057470456449101115352945609978262778630244042968056261585584127317965352447367300886036729211630041181364844859543890374090798207509171591906966716649588023419693360002160263953638571691121452467688171839194966450051950321291014167170154071468224684499840545800145151404057231658639210295058374610983148190836131871530037059841096234766590264600996247505589455228456659403041050914684061380755942752889099392224666224182409653149099573571097247004641468095912770327233762792476735977435613668936447085965775027375758004662353822274568910122840765861174636254645358507939101165140592285757205791246624419873227853882113562634216100189196215592574917602822932953448186722982082347538207009728182155568585801629852303412976759861353996051119490570855120470945651297290938634245596584860502282546237248816111442363204558971519776915392396480540653021459509762269098465688742878417928684766553185476782833385652359130361221279786527904515238823929291504627720200938048880671457755113104939273859927671603071044599880965989439936222994068958762982611863962329213589087259866946915790529251419263899279308123641703315488908548107774425515144689432408774671239721373188140728335278741608916391050800735297253771479056523954019420268724005327237116359977505489268242616117468934641378522258281917425695246095688070389393027397887412377980029373621374762999722838079657861536179979628200351953106192639173044159379620870761176073299588583108100818003226886139039167592686622447031039835489750800826128728451462909857031557072226590312016377078480546833726188519566133145764091841411844962041488190457819927843105747851934065607481467898520172870571961640489035541296352786015313620159405436512775200795653596520176240302783473046916329088185660405018746488974090267422467491494358800437092015241640710210512304626189356769584096135617439560123140143013065401065246319613408596513533673374307127185430763419692145921227797914976137715094550405481128110442250800494724961703235843726013372607770328384401015645924034089891311438108254440240833182878706444889242974454817743128020809019240443784036565030403939098465108646918822573187313992498274468363145644852973781380908535717615749634220560675965837732544271513805126431382256514023505191953591773380354708572300617381652985611610940185045339373397025679533355276137273018795256635938787899902656014139007994975708785901853744232682557498006144674877021491777712557016445397034680575457462398371814356811494937415589048275254686093927487196103669861482154245864624848222616082738700664032488897559381262588307773308447807187962289812516747809640047015732228683300657471411823257126599377651864902488094952113193163478697261092668008162383378827187412629712260891132372116580063709659994198158479881175399680150305955669322957697475351278287526670262270758220574892736418553706249149824100727827074724346101796046997707766475581335838902220656328119479286053491565094068420873302257022417982751318815250945921513097457713032447306187658658774297172255664177722367942470464412514488451483869524535958611194512243763421382793901586673544971744595671011004296186078412280063007825486385455965514901070957891722054886724261488037244379567210153715597143631406735960428623249851675403658499157413522651176090590917514346081292987914454376438410486337886519926260467793914760105327963448860936318659670965597758713868973984455841382248130452676920418348518834971760611752884991490985505700371059299054655330820445528701272196854435479793585371228292947088839343095071389730608708611266015678238426868681450032365190929072491782717521337765623957009693351107680703133793441429031308531349150818745950208320990819164054262828277742038978028357379767511704451830036031162576816444420928160743301968336729087264210196002708247296282571627239747620450630805717032762087923357755714086413697277906553459011387717095566119385306174110826430151483253949564620229244746656453621241600143538694325884427083459731797564653914575605594000114539091230749880783410402792436835885600431602342058672416747059027341203196890900886173225501620758082009714931046377118658723642365509294371978843933232433705320064778829384038004315271864788410864722169464705878977992188378290652836329496414393918231587735450961676201652799506905143376707937089128126713263609463936756386001906609051798332991972852243082574794543688203121732692282870925931731214411955003007402894437655635240653928976054881743377816808716993837892912165554462001280227111696879071175209607090319367260928104387149401368496063076472448292857660518623684719092846894824561865020379390784654679805898764166742043048962868294220520634022088034597908353839913758480464130899894940924892223227713760515879126208286933012498556960059359160562479141686317048297787508556383609844202713359398003439737395731112176743928951278413369715519129107631839745638548331544603579350120008316146741865984994020165682667718028261386396154527001208969219209216858837960891080910096230699893466400897112643951577357819676713165216284744756866578303356746116680034940193469092777794713453818448274582167294320710974930110067137225453940575656162245918752159622435769672482326877282916666012510611411094898210697909548781245072998466115956342233493850138040005174801784821010790443509456312883635407251920856729789768373128064551072813267806115287973313161718262878419572132885836825667251851390857441709091463726345791977960633161203724787290629404681277403021532649797264785492166224775098452426449126406646750436025432906697821988121200791054978213318889713507243321209553161384494545841851288605689557487271099998782924860523089960556607410725674032484684356041764047884461481761757357237632354199874909659300203799588260975651638100642169838394114972328724913094617303837916431444598033061008377327146012652544140905591194992707290237188284996615587327000459876617574114678755437324273236448766678714020227685092762710108256063775802272345107290238763977404134964972751802579487275123040313915817181289375555700894912121399270339949307267585130717914166471106623535008503184899088826627882965252061259000677711367101510692050347409138767295745868299823536118844495120769188876703763334974414336749012993352993477940211996620848110835827249361345497322527844394173448982377050541531267971398280354643044605918431231583106380554212792696891075221635030799486645335670366554720104495090328712814739359943589605157718332672240996645034939660894582387544096453824302492818848588155729413969585434109411332261924556613905239016739159239708784867313291149902324784982988003069731885109695720964534317120276410780379728844579429371051735999704996805917111699176278183928597134046323096131138363964598192161830522734262933391875630439604493489709101561576536508553386958253695197429440872814221380010893428193930335415312064927381349865571459475941909897171262251505875245045755203122522127859780167826385287533180724542166621425616265913093862872976957371837013128513865623139985517529939255593220222013499800493236024113743832481259663789792007789852819840191634908698575093399321028514735581002298848838138317971092958508533821443983070824243342722512100609902446142289409824833743149165783408256744469904957099207067636057240380131791881450798379264624434361899468586336235886780557907883099372571698423875735248152291425570625811236870535138764972486366373638468956066926379022438773855780104151419528722917974474433755767756432407625924761016754577630503331317137946112394788977409592216232241061479640360730689200849284830542859508278647047888658722195338192927590179448505755970785828759866693263038075510996907929092403747069793692656651626923327841699779325420218180927772800412433181857660228083415564773424116359923098956661390243605339418754261355350898719993767089816724120436315462174173696760186178614571132814689252171527293587537804605045279955208705719979561648508817281240591083246801176031187959221354413449571399280613255455987414445694591446512503320581467459736038704088280814527606634965413305217847138330070034245745308630975071392892162355655774524202058932513769812792578278453180658045080018277228915275580920222470643628501515021360841249540506727629716475398008370896138146129694204713731006063715623180703786943021150198880353187997365022440086574207915628088590550983893098215464811973331488544447179098492285688301521606486345899612426005579697586077765034669328336004442676855094761154955601668853115316432062090982031305913467989993767798801901164664754776418752201611398895127237752947343879153440614825206711368234366504669653744653570325590707519616263144793714454449294871832603119598805988804660466256080203502052452820436360981489001446492479832076855319791788741263140461632765165775771166055260676075079012424545496752580281024706962395978230156888126240858801277362921737611372168549518100703437103870229333864131372816781022439352804156397221918349379147026800494034343206671153394659117393466020498290645647011007908565996133098117121754269431965854092383317667992642383238122627589237876743483475589458958408312418167620916249405443306433665786658271419435910885277656403382934829835281814791634438753903101593579540960007166053828234173304998203100739540564072765324672568927677657632431511756256131537988131269810854895770361701700014585298772563606044492168781402813109054018985472024730079898873937561058144527694900644862077932733839751707443161430433372746454833378497708477342618872059759572733655437142397465580868526392636219481023764341561660380402933674128300383802759604371032366981987144435892130281182942376725561037425371429794713620121807698466195615736233238729151176066756355517209226503962867601212969093186060159007660480267802954339577332416750724247214724831144290733300392723312089254259767588691220568942889501759050876255866920734143788858186187347538701993196712995761388796207359744744394951866938781122976205708054193117388588066172451544492750326046786810275958436434678453840903349584467668421019002564670447541551335234024205770259796002493692887518546754927684000204057727687119702307856690009406919596138132415237233202113453745093520663703306247374831817462013965545633490716574154975816192699526714101748877250277219783723907694257334217580515836922589095153754709676099380303325783886796311847971889174693193601269876283833563420622196814254815872110797277380771470105343074394446558066991636171624721995795449078868318942901399101460596038992757407847580925472808674277042788444050160879396934110045718855569932630582811391407897047317377113608706168048227526955640234776071283834182766257419983622412042736997800677779383661952614588853865083774783827519417007358672539090298674045678208378772327993075751423291589439099440129407111665963210354492767812914269829125374518948883201323000121832702533739655432976331391823670985290920706615146035536307164944964898325999368174128629293573765051984042705179847746698320586974020938521904293875869548157557016462023147218442294964778956237321099235671405483367994176376728618455377338690556552362121249815606965066309178410048628454093667498173715894171751741365727693142303197132426205382126324133222480985228079972403415820331692934410264796079321498550532405315076974672424639377262830109311772824764425532899214831787913245611947547233725806783832102130456289758588396666764220510003529348196003757591301498786315893820178445766532103201786273098165293291189737057990775021867787396300583239613728313225945604610746115338137812151477497011947179209974594668144090761054251977018341922225013622116506752760366145296691300051963938214371034358794275968581605659411191605399288216497973320946897919163645567277506059453638838240671181719740225458084711817426403707291805234362051262161840343716040314356456344087055673613006685752638796193756615810700488376467035272476175160927778505347486973692208380230906089647627618734368625133528071871019573818366146898878660779181972959584565688108133691902511133209236905183566455662351392442339998110007216284079118517070232827943588407638639079157716737263724998914131564804253120841823383390247532713269118082072657922582595156306667690022739499071364607813316365434156875980318020248967246727752935013116378497100953406143864994663722855758022554296390649382295730752791921701769432025852732493812354662709571544445787370214645692319735464272443447808259577408785511050820612177131848777948077058695141591182288160360021358055937580895666864033009388386335940224086517228347464092899281532310304047242347346643008574855739551912958146815550736618532654600711922871259883977580801734103888063521280610627425985276788023478791261575397381072578017373161958251164627874975117768303317512037722591539234341500308061272919691807569703865649185651326894715366470613689298592069292771698613497223711880610054314464519426087121175026948963298505840792682291025942939502944497900099908237818278228186360832216019562810992238124514906016323338199041898730135517356667191971615828562895353720264438750029569640985268077441932827465611069363370990445226990011955244783409507365357873315750829594053034545586137680546319734345784854844702649047360048399605077146979299460510004751590679759025219116099879045417063559412957229759644456087356748951785317613795381751476390782241200907574082791640029628839283279670875635584909164830815190283750933188788170149600762815097977924256941598983290502393578955949742818487073602439276297173678395454966280309563609068405500588406240265405889606507559890644396980478028531379143585432497769665178315441896297009137970583288452019337499326514733163071551979015564346442407947669826546192390542463018534856962860451659747666717405864086770001672312224529564326266850104293661783448902746431132896489277114835283854298367405869901465973176310937194576956466591289216826725693267105661850560305924610395498568598605870346903933507862099978937847660771581286728776775217896252691184195344526329703974398262715275489953021583528468897261582545401002474120842231606125837140846705679533550827943287843534433617741879934708810625411293073628440268885803242816573342870814398829895390387982051894830417383508356473667040130666863455959785703623420665587391704268725347342548633773839141021954129890862790798155659301492257332902777667942290343094641949933420548312678498666151849738795254588965032629044459575133409184028340371167083782319902653646334680885834507865303284222642825144694466442888558833469865350308072386043546631625064800094412838443439619733436688503253135903674944414127436799688262232057005036215440391290118739005997721967906761152696806796931621016553595373375161620875553592246296856107723924073919872343263040167818346782345122326570472134288337801226310436946184774678749814711653029780179816066424718718898953720685128618406348991016455672302075907518650517920359885917637254251689498386494066454738782716323981441565975798941760763653675524361041431273394505787213411212334405128920847295927450686518309081032960731756621337790931620218467290211512942055516060921817966347898841407969488249312043960303971084404172941274780630257942058563936558658564478054086473730604699380490042444110929907984473250461602359619124325993230010000792800474289594878058755815265775269156725490736429943836022188638866394156344777085851493232174578698373338147137053744226723075593386454878391659222328956944273938574887601876085936606326942404705456474708513140949547734308647355152678742282411730034075831150252323461248719206667411197471956061818734929831107951604194467672309770745066975153419526917231290526173684263536464756704106037686754902277144986193601742306042180424045855233933514278308560342488426500630494668642708960155016641443644403269397755950964026818906458594184017893448706338053505243770247549425669346599496671451287690174472733317524025216469700647448597174159817341900625957742001893703283050130569060641037575137725687918486075990221836941146103817380509705042133600288452936254262930839756384535616681242288873842609092956523499998295913839860152820490447765239759322198377410901005384889256322776582971345073378508965918065466969506482323464397440534500524284865579428186851549088720451889442785025562177150268247206106314137395783796799073291477703684644237679244748954472367844167275327963786250873356966017869011437662855918362376744803800850242755877177803823408543684064438093504197477235454147555253394546251163835218960457463129341902860885282401917918277060240814485713750291157413315938989562854012167006270034434067675958301283137148314323581515286827514875901354987183690374072674048455682318798482584243051685884185324410101533806336195313747256973139145835845362358531967673844335575462588397263776934514485082032806399404893528344439736389780174222429256908206683798871000013268214689517683928729623137491113079687030377651848347874627959374642496989369087865829900207632957556518330811340520622910902881060312538183056441876104869272230186919445227838556725134426728859620048290645925434131721198987458216563739714515397965997070886965233180829217985380196766949972388669182335220544462067040106002063663872399284335878249636219929211121462769586680851617168947139013774991338264646908366311468337878990430292974831258238260447621136841863586110078423584768316405746075468990173090905806977174213121245510584081398205056764788188364026577640859121163896390315457613009307918779882395145539274022307803436336841685692763423967339450976099474515982095561374470357072343380157914564920413128193638114085649996088808357146459308584158781608567825852193995413146134869359702482519465139348164065310006476411568239292175494579880099552539780479781671847145957278543656073939881307699279906409735134992727331096963579845371676533209082333872062807795455722744771555652195909700370949114605999739608748121499578339040566910605953741145000326305602000974923093053742069524483493782831609891426142725227683451224458156089074393090553658612788915122383170146640222664524634156362079352254787110369320497823758562774320425883311999717714121556239109035707877487986873245049385459137752349300579709790959907633758923768723561126703110650993398063732776786981507357027519911407813698185328203700477649047775456170857732925572627113240206351221276513981527059549002708823313029939667264735521320154992543064712141944858710639127078668773746981506330930875614601780450042947811359418509885628900938127533589560501715241291942985844214002108869677006828447688365488666777014977001379986923846397384911576791282420644709867306390553905036768653954869266978926396532435317774702597506465828619866012327339461944173222803386173794349997055089366988248848104839610584203665374231965612059674335126076098485865474521359566881648141496420473103446388998004613992720176610060467996540328567025389491031816827024588244800834440832134121234957165090794595669451735946715324394682533502259895986811017911904892693695580011926580852257301810173890095691808021272496745562664321760867647812610950095785274795663804239979849135923451708681943912424982192645378222937215733693813852736707656594529352815481967035556664422188267632548297391351104161678343560693838707960973220160912193764564550985704329539634709958121034561852611794048746386907948555278574282311547944658446752262275657182446360708512956389353324761374191166856418836330222094549237303017319251264787379267264282070103186735997027216604076928177060043981366297874412965991522324596360970320167543915059674996123267425019327817434417987877694456215871971187525194325981537284652813595060270941657802821201038679032097981181334266354546293030830962609374843471975224443984694650612542781848227472110846543127474827593603403381672765261242848919204744148099972742261696740016294817245465589492707327441272943993753680694493615703268467022600532178206436581085849193449053457029005093030813169198636423578252661856890953725864511721871951898760885118354953102873548871696490452441270466771025544382653902476299400116261386352395936866756951418623692030444200277304498306020756631490493078048611831724067312652474608053090676214800991628925346883043799032719851608501607456093285868148698867249283982506072685842603255217106029172523425281352886913515922230682215339262886090682336566746811971164161134285380437097319074506653498388760828778689181715735162924665607138657128214877036916020906947257292408095802909148408955535069828084724237771363957170224092103085240992545131122787938560145256854302523385338262194753804544788819645627859373101875933183014493769659207818615721693182271074702717487610046000118589968879711504539637307597523674159582761715901610251507784860087932568184041798853714355900969075129109107378187603873527778693255020640866173508599127320900483101336713120840000063714499578356843654882554398217764569369751555976431771606856109093588957497768618291828995647884884768590254388557930172868774496990268472715854775518587840471009694276235315688046092216751034915289910919405310708860427995304832609815595881363624714179169598690904552276427468830720857910809621316298316104929146896127677549654178821730552327058919788574118222848850164404771192972248840710120594050621548167978282381323916748181142549038111574233001209498378966957101377925889444357552771508264163474179985212666159952505640711787750552934546803555126408822511343804010828942689844091233399052697898084841014190701358166863353224198057311465775428606206429454372027390363804507674270781329523631566710156834700489923940640297627089831474974226237285296470798284909768230964592605594954458783343846348054253128063798081356031959176128580770010222454098153026880843872603750465226754781080894110737596011953950983550498736318909587001980126809946995896451418538685078505419106199820098228837089929501691321116077351872344854792508992183200359358081866449314406196889106130767634561065931363051727572975394246684246326979906968321690384603398117192147248883879807193091270536439534546871628934049379277569340060877237740038050047255073668370071824522060855115783293913492336572360535881910779870579293344498611013521971634738272865847306157908686718497535332625844229846003629047660773822975411817683843273533297073584304493726535426542958578022785016136019999067276048458503551046563601097746104196982405352798290448558345913159392108385778970152666110527323053828676847840692864688001983545227149414994720860150021966500508904551939748084703429020160400881846439834274194642402891788170817760764182425335430081010771595323289992612665473803016769332889512043739229168421856074447120901005474771551807813706175607246714569967141232529880653272580667661768702197734833864656172798165898706918358454804661012529050256085656163490497822169458450834465352806313981103521393550289132275537040526085257249141060985486977750807302469694065894037260334246040595543635577773628439566662215630844339206314416039596512455974550191337306171779590887017480477857549306781440134426473199675368570524352294356933017316057908167951877215653969347571035900916633593006239247794488491615884776564202215981597110743693826278328374080736339279342942780797879546968487822775350830848684497460985939388114059962578225322897439566498384242423904290266167536297741645582083596086152817066507734311849778244688735562856710767706050254212620030891982538118561270956757191428970084398510805016166622196327050116139895234960121513711053457212705066184400168075233424225075116298462569363436633578149393406716269030896917093724578034910504950371138105171236757479291587176348670306369386088648567992079602486848255243834398253015540095662899811757328624861999857043448177516893458041171970683634942385546592636388312193994434878447655680292086614127664424452082366341907029982724485675072808715374874076263385722282142602420941753593015064317014683030099228446371393746168724203892971026258229076242685691026492877349675976234404177289902370422416218299739708783353476735907054873147280218839096219613054313612975722075248214690773915306637723209463531367246312283869543766689414983240911633017441702816314733479683781186791441431366987599452381037314757796364168579077487824805566048945559066492445632437283348342099992679697671301366050693607901789491196508570109752745321143777163047096843322430822713528779310791577947325495717860353582409693183214250619630588111926777605794790404329798553285037103102246310745861212096008046454486958167822696161002667096603292216552441312473487782743235087289950972352036627968746056520925690058235368264986098121840432649567967010044734777251849149473831263005849659165086369062582952581049019237825252299495436089028725528119542364172338959317716385118048313036845399153188377343308941370685513287774615740775847263372554040489145095946557472237843123420162528868045725720464254264615801534156519349462985666171388469332292255249276671576726802481056498445560322522097497513975962122186542967075771655663902481814747797308467578408060248842829837170239111590936189654364737472990164606025382777559000147785663777153213525003901193128163237351394615426942223755405088323098657309961542784187216803902693808753884539347754194895660439734365182884288979340159288317250788296442695182057761829312205551072833844437484851898780454367613037858519495188446476307945618967731992425791642411968008681260434683743630758935930167715318404735628159090255890423026251732956817037808122665641437097285403021138345777034122909575434497231679674995718495934806215251290833943007274339316425834726878340420054811227343151263780346196257608647511489507063872623703683043573814607477846807314303426205789622524525105457564933936075247035914041867433828594540884268011419592014320479270114103001660139869150271384268740033935639576526507180169545212794419460747931835679105220980857026584420652495248721570609648877801584763393115180944960764641339171373144062625060797553522362904673910441007561099026245820571100500005882677697224462322833159244144327134682952735256922677312404150885035510058262523633609713580663969331104153738418321586434741023265280704515827085848783049746576508674543293520290959806396786840430429140150064698047362331604570258972878670636110075011773674617831733693108957573048450227370884204422948136478386316485546013271613797668588341132190559914061421746270522601119077528390813101158873376324865861889454451680475941210489053832137913175831753520208624758567013177378240402954123648913250914085359621082589752343133403710289043732961423250754866219081110862392637729935971334391644452734512408144211270213002719793465771514979004649184275543012080814031559026852507507947779866252340093748452496387452596602618780044753882480529876449643060978166442232289827737026146028806426484613214540244840503898028872212481823385339585155622114701545090700802644097092888364173280873382965990245648573908883684862117585292434913362412679783802221638082200785402852097463917566036009827712868191485198579374590439184774299282400514489608147076907082580893013764985737519057333709354569076248841948040543708329146361334093654386554180429331911948701849503471235245380522281542350132601641638087888070512452883849704267315956443028331992122853363163078767248288432664468059566494141388011923545476979537496939277254288938940475695931491396414811401145255290404682659245008204661842697550642802157753871812573270868138996015106719165320551122506994150017705579409378538345798914657680938806610378695246299808488292255889234654412007385710342321547595726836624815680636881235375324262010547245600581981650801108452654518324754083401635977772742168141627463578879164922411730788177309709953892116007389234047754108889150343835028362709810527350236187473862971484522887522589675823928365084274906484881446160775218049973995703521313004970835437874146872933433160692049530464973715086639107751070373360667176176104489140818563992205361901973280857928137636599524908862744041895835633421755217087035282439809307357794353882557637715663934009087940371128411985631056118229043829514168522969084265550758569530704862639651004507209387005614854277895579511170545970253775619779826679725685291440489333274045579540521166924459982084586383772679035914078807834374921831218445754692992129709235706780173993103117463861190797594763909050708482636531796212092678532163190914952954542852851223416878360648881998446716788931163667234750693816718418390945350278219643211709186655681580174489063855826254425364048284026555425668460097066754873457814493598115819461814480311619649347623990417172157221171352486540718704706267518989078763718394463023093234382164658973493399464685960795078989568846183606039256003929456642680468920437935365574026311516101295273301539681289200092738732066837795153109091318080038234595615159558027537328909855106848469744290021553037939204142958853174893186392625719939943522896970278132812950735131936369180946112686783849348060309008593774226588675528107519399933185761148050154964870014251356374387377222950640321830799224104481388439727011197145962887017017953140866017674124190925885583936097305466218337482063385475682022073509685584897577605039040244764561286281127913010444377229556603012338865893118967678029057935722614086494249974904721023018978693018268864279743756716032453911886306377501898821611135020398113114026282392475488536862442664683290449500876128076172326746543100723365259661916291835908431503423621789706820821339635160145669037749197732776010047146878624891718568681757633448273476608166079571622850923198309822861079109065307827302669678484921566844036821675374565265006786958443564438911741441313460209373543049519183672820122371202616327497872333475886495944439938158353634755919959849309802837316434269035081653688234983574900996841548639679108522893380912932043018121432161923888369876940745485257664343235141462080790033221642291076212782530092337682309208024550232487242841316905844922120347504018739240971826239841312200747091484889422387194320591565185306586558579952997513919243771578822080807379944388188482591476516375361594151141879372695216353736393713106117363412906114856192318364761061665886311797879331385881287600665994446129163077484072439439515714473832893349001414878253845718062024415986043217328047237513131544103013330359779543433360842574226285777003305862502632322968459906047478140502368248392904683162742965939969763597074837512892162168879005066132277638653685951512575117280477318764942213430542569661192259853906905969143954974551315871309326299743204123754990357650253321446446111590198451905232827313001788897663622376145989169152570152806531770583836060192344603827930818389468520524714220368910480802964193146578668415642725379509948254742444421897127072911551468771248632418251581543424282822393147055338556012976664346129970305015331939206262299793189768453574764505778180941886257942643993562003467136833015242889703744090677267371789082388168587752195088510773430035024911528409055788723625587226317283965561109548592039990554049512471322950481385626284516881703551699369400468364287450205320925821157316447284898132578057840955034855361542853548085748462347411305599291802246364412396251645673944166620821625560464830290007637343022896298198897838159409678808000518295200870716034087604436596348916449875505048512221360038814371602901477274140189410569568934356793368363151784073954266034091485238873374846558656953015528071505492630289671517320356304188353771998939961485429997285108824538668321111062226786469889561745487792876169667007114715941425194722125435007622680921479918103472329110262437145372469794133929865280053212747003962292663699736055872565273389932800772905067650078401759608380152761281855034456370411551958246931278617324267715996805852060615613309424674300075092947017390295111267371084838019523671280254270346415867466561289148528531753878297631916785950534368711764565243092578820994797749188423768919831698132791483362464869839143388214491607036252518161597484910503656542033096012973824673657421166229484390809047559727204047448603451240874560539507698111886168771253679189526198999709155878011474965230706241773580875785024916017167316493310744700339691394295561923216058203122259362625287997015935248368313918647150389917930980580903591702708740796382998629792179573659803843477011527093423712351774662930568577669138808437458847389022698734533634648535095773269440405121974853786480122989427840454617499268599878785177045498138080559497645346262437093492022705570911232652574242908426686352657635997943101620307978237185083035325335670813856231147504578231469670666434759648494255580662957608666258783660272204890299213905877191871543031597570342237407077751467743161351802404447196018807125020621610182820342341803212319148675623043124585199794755369455866463349212714593252638388365071793487983101954124578106387479130740339075850435507431292098670212739683891323699993102813999931916785104008462660448145772119675882541622753525079028839640214033572591644713011663704988572061035120474806800209834688900289159473369878164452768190404726399434983748646257092739707323822477738225236807239148794277480033063230806861128167624632204800309347424687714669751303321530121110496243974889824972912204043619655752355160546920931903693513248336777996199822990264583452017597124588036829189656071686412921317283013636956017157681833186098508604813754176184032095764244535494191726357751298927033468929439376056543277488651847515655677898425110332210433629745531319088624372514375413974470214545933008422325846949449916624789253234937069001221516941173599709775526894261583348480492653663482878852895465369725854153009455684085669537361028071005686592730778177408095510441888999470903840199513638250857129967224235832123785072115599329056574157884344365614204474419258401273889461579288217061411242859214326812586492411178626920379168880277572500953011745388317482142975131006647188768452877013833364460435051718065201806275724180104889645618138614623842882855854126351245724781958678997040627614104425659995778799392376276891413387408600308396918012897902521050350618823423059934828300841348683202895409888816658715105472945171614244992708201694624313873516452377623587711002643267262620886640756522040396647365803100709041717804668566733211205631633031013088360922629858831165347217371923911127599222727162778983321786232342966535540291719768302829188672553601364682847930055862378034044158934769260394932200214507579690042300151349855679350004424440903950004217654781461223536430001740658507917721635932880189313390918992514850318946608162865182180338582590545342836034130733515259646892599962245519764283481182200240767826734250110748617423724809309112360675719015913779416245162808017117747277271816832776697410832158988782460766162590565142376375959591974783688360550314568399385014530916767984061537024257390316434711505652762290005583806062751825073705009950824225865926484111798915169141015877268690191151738424005712441573784539412723840410220735498636588821672008403108097757038222881309401847006003372312525976499316448606672340763429885837130564316447777517874388210532803932368878359643428401012102981973753510285482875891233366631175875406871149265715549558916165187785329671773889433435748611760851502472675939180225630484410312276179386221772455983162404389308826847759261567274335611866690758831743461066515032317856509016368215689535283730911711194943410659264367704423034858273598163277888706032930910781995088867544276128416594814453230263487551760263858919564363906429435658383277091426061048438624687846707127679975732121062225435973216378636889698361060863370290827653729678472728501591044670484799552822737533140560134815592055876800159863528909977817493298880041161716869645483876193296467173730245299660815006575050578098775110005390014167160546337572593465676430926395879612399279992051530836833586837151854076863813511176251458735716002000315375484059407905456630308767513646518782039538568371145988563469823525230229753894208916551622709202244100241237119227763145034285212658802395237172704650907903393296270935734596781614159730067245252822091077181205727300572502376190602571742122392994020116847996617880159947129017390594073768952199056009504270580538297169099348844914505934848111529023364223765651811292422111102363181800411660465708605001804621995231009126165364107110830535523349485061380056587080179504648179144832701553272710105366429970581917010027026624319654688729207592513270116933316645375847976772875481724875712940620756857170508471513369821071717549620371810879843613335138987342176308332538780302915691536915627784818067034607439456502400257562992851437712323393519194745544381657698652322103781306516478887750769394758526647591451484149856652537739356853091430392250862943961673280517184204939864643884017712023481387471391901345940900995074351547396002000056631963766555780431194448997834564409643009101120296093632914258970380420736831284987084379440795286481830681254015583918543772199258233866632293937243752544543020701981158900721355500935197894311055505320078125731428589739981965420993137260668921979588165741885992637462436127757431366724831673677615831280132170934775050019970857163101643217046494361246972626321823498131394105613595644810728417232636834805708624926676204232378652042096901967423710337324570296408470289226053445398052922507457063286806769406335047061485653937809498937859238654905517310159352391891106491491641700417065784322563350003239749008000171437769759376284753945111713745831778518939562399458856937790484698621339137158216458959856323063362881553344996082349839839109580150938382761268446090205168562278694441092436491786174201684922651553510151158731124028259404506515544887443679454344474511961293742824358181143512311803805959572780077007436310206727146994123636612909045129260661196004639629742285801771171674797115498410677131479739087905848536034493614770289467245676508232279447189755478473193924058266041409559244166828858658373351633298572659642812584484155154213688934140890338614590631868699367601751211427126080739943221192584268118671034734980744148241488419746559114988077265644827095879250583712674643870547396889235486810460429818490534365171166259755979785702061512173737537338465083119935729403695340641280666912700728508684306864728606135654687725401163285696422787975341131447208255680684627509615771624238097580761314288555910465198504785934901494802990214441176783218154704901913964044828112343818553597715172667804303376991445600465197607644792491234022479344540950275806679426713174005377722911417628909550888203563297855451792824811970378039246908780100620782310515821849731598757250878963356116701225998874702387819335074532892770174693716337479994561828213880617882534219295141750744271696565109591003269412593413691359505845189319923215504750057326515820505151937226682199796489306257163243476384896484824070815276256024947763509849148438507421503188712104519249104729814063340853048353840993574887451454434507103956824152630772263083106126546576668416337083083300281338868519241252910468646908720749166798194807741680351592035554642971813001726994056261202942751147452617674536331834649398080242181560347409024726826602503074468066430219072359936919424714830058364017880957559013401180628608273072003442818296056275005967437487429405728743699274393109303680171018251227856720628098154999583796203627764033783525409137931342618868707353194997218440248023442567680280229953570773295636494704526063802033538117089968110682567801908080425130265769696129185159031362356499204533473572368734109850486478595548953654161879980562608858817511158463730892416298060410087040266088100185525387876160141218979910176275766949917704268768800393082205272182117555153757551273140662800976276566742334429654658323296555431087753647984053605342912483005981431243758401191071217475772824825194965274554294617378014072159090979908361705485710762211464207348351610801583160833760839786590968418094213435553076882754911971813754175007348150127382402727296827544206268829766645326443824154948231996668701633603223405463729514469516596701751845230613194531939434402837092129813694349397924672978324681740345194239350219672209061925928955474700874729634561987345354186185245632239593407587817925814566760919021122221510919925206193225843341825015000153118548444966985731161588587745106355208939229073795570970460005611524748138291024968216223057020600855380977422504823787249872483897522205656137021350855427800658923339418046624204451492694843585004629166632968215714898743152029080686603646510297365926939669998463073342085178865064350123976820737738353566927597938499360947664071900427680849697192694854538203594897898751218287772698350052060152445465352737944139637382621058821778755081425842125564208978952352746033191911515500059350557466521691661218217609694927887475755426642614870876148706126296008909767210395014607466214482020963499539347576259914441975147015468871327809358754995447435152462388169926988268466364738156676897215245357772724378321617914183949933154765754306711165544841125780508372041084222502771454841620943552828969395746122713776433010088272323796631835276806042007687618715519996111274155979524077154734110676394307059048888611540910688544621165730581310060133280263806223972281275480327622676977110118042859429772115421491966190531141924291937580180195642449863364252410025722210267452224482629451304713586371468699989907149184949050736756801912684137769990210825030798762015773244941827423024859889623226025642700226533885545793043317559719864608325914178943788180981755935767054081610855563663939310818516441835169441731904819553838509063492868158986474714823833967179018746433893961656471969289232587268552015703463099961718889374124269141198881147585808959506086466220945180973116976948208649645894873369283699686366258749527756844117263447857889749721215985488448151018755359513793950877498345441543625380285376189261404424334723553103812580615764707137513331028021586623929614750715412838781965299139782671463676569375581713866359974339416525592512619021075099689330615104208079156863081746055702004106490704499001967961008710958449263679998282871884057229793502708455189280379750051941695733417402874492806642826453119951872203192454012807261271890775565852309455168999796705685527492715174989939148877501225589151882582396202442269129822978635101460504479599218500138115215346903237813456484786002042952844618863383257508412205375498883606509988240087681758540901446510090373261296874962860956299939329630297172536489115945467368796490861461991235800573890435621304419137767784448503553991669278527360950606764163714887791228288104421878866188739380343084775539833346917354096749166955625457960627266224387073269952110856778387519157922401153288377762085370560148801877421666192343742009177449664591343909629488501655421651270575757978970792762077473340306104475403611695873230534041748501424700843959249470497028340856839035346391454361814105045696540630515406098686698630921283963124565490424581136777268037312586583287814531068912232352560763062140167614555982428891140499618457090665806940079943502784783881252301609265544740930637626170705822906712282932732959698931006119318920468243460900270763376127479112008262200915556788372781434381932742960477622449222966192627537877968354146078637979370392196332338437712676792487040052808018277141778929491564675735081887272850383515083087141086250577523324311434107766276077271797227866578136544064454023020322270577913023665040990873992688606608218057243197997940665406538602816730022826624447789207773212610929000012531572738196953437714958894603501697660644954286457691837847536262150691957336938320804452140347845733547438649464104184640394167304224936471196659664656178990748788614034651869346782254832443653290926637132565919147271192458265748976965836688647169565056892568929039052647938541438923019598740853844965542172606283619949940588902478049689527420755543726307566981203077518930620635910843151761602347795166171424778373261192388482555269974887996217303476734595437632044103844145904343344458256239364174748870527064134153931708725191994321363524505646907308460397746865507535171502295783275267126893830662332528309463257606554832009615990598321854781817295932519293728527182382049861139229967572837987509003333973491469130893724045459715762702414077143154390201954919976957477037933545290882092693431942059976398693627335369930480539825820846326612074109867980133768299438685030913227104450250132059130898741726027789452419492134805553722290927229937852475277628034711358667347624691107812234579347917027144336381643414092104626606311351818442243475610215613055483661099359358673826616582027955747304990274988261785798209250635789076585640534676947187214860991798566358228884763801466151162869217206769411399396109166305733989607096948930226181791618545856274297912251849760536276573265011849439205551946573647708125850478024633773189713100345120149050414959643321318423380473588541443798424087795084375895072751646884709007780717275081025863506499927821097103921152961033952658317529744898532270615718739154817579916818941887364705532587325380549315501516451402705659032671091953651475505032229599880847356899971722331938716576171252048505175406562559356231222986905000949602339245140413735858235253656232791232008361160120173601020669865076429924365507612758652832336955429507008286025078970580877773529097234844092296994235562291834246874264817629624992031235220821301526855184063270306152224601651504620193494009889788780080481903162897470164273021895735211240221800380774815751289746585058616952543716152289633778784059383932850249161513323669517869890679492019357198997713451139873203171185729585957080862058537502528014990040786127350484354684971586967869180769740929294857330607844619612506568970767569025379153908762673212708373892249471453303634191218676857387693413499013245677944506977474826193284396485169831321504646945308636214746237599918368328665564118027291269297292953673159080467934239506842432118017854706122461583171345661464987667769348359413124353571620997234083125034184723751325299232770107138178903324714588881114691276547280636576179393099252797611450732638209873959786881593975873431355544978687063022939452604971449066913371145273563544603410329537928317537554809368936026400011622877951673579442374710918947480514479056767465472638214770695001847174570626746274655298960164849492294705547151802864821639359147085160463663777325733399301122901386856813779936257917399101926570054063201442833902064217528696543800925151823072382035818340124674832802755756812020979608518587529009565507820157364655594832069748904562909722005453992976123617077231797433879691241622791830390127499788020974133894759348779335497836660278818287703844837606958700932782852626348114269404370624848791662809077859723616023757262152530133307777879653419347745334709959281482934279581745479772418736557483752912829071128188335048503174676921334041348168530677391094002386235127446826554473774385608339982141307550572326992822961875740470617859054658010310508410554524376013738716275170341742273957589886165711152323178763454231299522159430386042724717155326736752601214560891086512742144076444438058224080956042108350794895175286736626973389519319219968047505817767320882744996516356433850241231581500103120291126744720423838739045450827657140802936850196950778537844088185350766381990286023356720929544895131155358813007046176902269741372251010009447424491242393156958230933653888957031096173688274867240021678068300133123811832825160128735435899897052376489809377596914222094976671531128946923316301272759717987653084519176226633395827175240831152815115916730391694177613603712965960182577948103543322193515095002010000070933316073212107084181377600481743578252513686275513338054626324885576164674704971713359369876835977723996824099856300244194079545702639629997707208236524224185227735373772178763246591628183532693555207756576304373934879641090034146520891827442810641694419003082267876234296508259351906266258628023534796858371188135747155264476321587012688376935761836266483354030555441511362844241349612670048027632092353649708335633421547564032233780262100416422781493867131937678702711969418511215746475861418544349588039027422695854678911068242387254420435829686430470085990992083166384287810363232595982575963534326727492177213589050464388983014834969739951266628996302932774882631917740812465162203478613909570354621944732308395092387598236671931051221832707068109879153109074218495300505168781442032480707116325821764711103961246065069564539569801733012503546722939130515142867980047277510758695415097494541047137271606121038975666349430061618809940745759653041432032407912018988141458455379733755397943896751883850134852997418497166082689226115804655814697137094752580470474547715187182926530590065909283557135570221548846840081745888215641602240629534811896887619390406655103120806527053016858298542484588921764883340337603577000808055837480269816321242913108585674381481768436094706348797930755468270409332296395880274514554110652430314583549042241852422451355321281418912830308083221650457787936724599832954311045241782179551210437473245194816434173741399616691449949097506867756485322535789556906369528016849373485828278139602392059221857058734655277486564167781059006271507178888445780173212456425379120924372523106770554409389989936495049986689385620255108935409834571088745019805578855092454541998188231639315450602871823578179931510593713020655830131741243280778348060593351419245280734786230419620497507495133848951554580183639228855525856776895245269335765973291460665336974103298917446200105225610186382529531983493199159750598576125956102463635981999825546250522913631476881411676514257705015057404735347760400627046144371933354712968485968705445285186422532242741796054839001014817067848887337601459041714172814252688629278362752007939019023202567148306782955699698338607640534571613670370640550547315484901244730835777290373035165452887526044821839525951199687364258400684836481483045974957906465614369425396558877981158723283662434607489445739666382717351065588885544924849887364052859323704772891857604846932536914480658947139772001790435758688685700971876013609409931209333721210319884882343845839969794232863838025954382690659360192789932680840186049492270750564150141349243353298772091136309578414432263809959365506815078283141052321066326512194319126393239026749137463729103088916082110875349343985141480955885671530105719063891712799715870531787911237912674444425670652492382924368657743738263203271299666637693086877027103906475933650645669970760078523987335309368196241973302553993414857495263690029099041423181938648067640806345511230960435451340072420539377113289622663891826594329368852877955214579202264843444023770665718362170233236403775649315808960929865329866531659668700117262005008837395877883935114393444569876535384159715807367777477531544723113191821492520876392230661115299494823313704746756133922782792050189282324211423222809314072233190558422335479983453082333464771676230342087208962761050805285782007030658618487877688485206033500297227281552384087815648353921648081826548691039654905467899458344350048805061669572726514057982637327264098123418869130187632401285976685828194278865181844898379590385450606643856986668108730096517944687699515699169884284721810171423892254869534492410120765403208282604674292447834529641204140358512831697280194503007213970436136989306392152875475889082049086363488080788427726306971477064825802260110186391393846801074971809707434931317358234929029957591599323783631130863303689099279580185740854212990350503960296876549547521082170710765001493097362462937448204718445217945930540335439044470637466238531869904326267358198255730859960687388670682774160502720846207146097805843046320129707942911740552740639872262501270047983631064877047815011516321891656022947314420892651647824461383780200722190951583867193866437315245661658005180114557909674747026569631491926053138801716573375286730492369177273970712105196650140503322928629716340016748633954931540555269038709237580343904404456234876598814721170444719474581075457436136870492232324968681748749760017986930877324721815672371233186764906073442484454752828504892383113222274823736213714462523604506770807757300149544540908989879141556215516566914288337963491738222767611192606884885313815533658952408344875357089728784587174421513425619361082109699733058847032207995370859016859864041423053685772767346507176664463643116499976921484849822837585534166208462078805180138301862518346677478168722040196962556148360258005502872879022070959001111009019129192043020432071675088386940729213522008361986015266752902625703328328544462674172534126985341279602032558048257274637159263452368912930955846533433466068988751081240144807167734448530003055619641256458628816550602919673184475840629653287819377565471577077823526762252208066264699131185312875738357556658024958407711789246213172879854467870742348823462406490697249721909382978211712623628258934293694403123403047513427045528879976310391112040174888124357988377762294470825095134212986771051226117332476324848531536756558597374689669377735451548130955390324017258975427829459423918195553887796511707930746804432523333504167744004988480873842422716486854701064750858222133852051406881571501301288992887197207908939327739357132919657341029419098981230684120717697991647248513303195870402340274922794977334762023352230950163086305294946901338101724276197781432790090516292896630212604992939402583517106851684808487980397515212892606176978373185280839165110194167984756001161875229794434997687686513728715956782598508872613147517206082968558554457579717664560628654105539563760175693486988429052888782806882070053026548842546740586436974618228636376803721083116850255053794275579928159478991332342513764761804681888285521195577541302572722119875709118050571556268816855940168149160742850998382765659129848568120288426778775316698756096233724862980317519273655571395222360432018616407257742855462835331196991428410439284860025582980047422271666327985886395062492528807128196329909649170469492382981435348890842042570337361568574211332364156108191313784838648208903204232603198137566528417165128208730373231670878259159727953590664080655658424768153601901332291434818155373042108662296437415178491280933899728884074747537684556785920369074064959160747735864773632994653567439551042053122637036014569528675916248048676818863744359195755616017176613177324118347067252981081605821268146623320118306937995734327816944696258927075328438185098913145099669517322639223115145034637111695784591903639831013263746689675851411083055227817975890861470852092987583680191147216235999686467849134098733443831411671096908320526428619946541765563027090382658154034956667475577369984584952611830764019802915592876154677133000840716466226960941313846798796718642845140572362048543628255043179221755076518195805066843682109270319302626528874695333744005236272844221603106275154417432286925066520204224106744717559415344265686464471889042883320495231377757516541641891368552852717481905493358645936734841693842370540522408465609121979950250178471500684374720500164075031433331243211538847318187607759366469300405381544922634699154354757909793350780336952385448566009655602242494144537186476075060033265832167290246618264670834601984364292316493146519498980794796292446147674772681980294194846962359779812993399820613209716008302421441085344029067904171036972090995789925978685500975539836665286245330124766323569044370811474131615833034263830186632568953024007616190814301944420578966652442140406669322123018783493828203402122117022750750335365275044441283478540446704000038725650988679293501307492857390669837708855244314401664047081479833594362904920103558416241487994322563222082065934970082430665897032433282705699112345242644789342529498953899709111883021357361248547814731785268272102123122082342373393415062229545877741307103300728606397748473662151058473418963032058934347600925593381393480737295807700508552121774348621067065331451331512734915933461353833485578569761477973425786336464385117214340661354332296235984295678374133177645344953766332257565574751745344652151003099725998838641284052516934725118897061097791968502561476164295300701394376569178206630023603098363930285119915863699627655346783302396429766427669724936557676390170192350367926601206171666588794333780906046686362696697460420355235991353065865091401818786277270758830596500198794131151580052099383022198119777084240135794026377452389862107197182477535393094671840329123460259714236689272092836463310106416217314808422314272603918853186087671774629660280599937857174165351153951333802599312115941906983397364307033359787689343475068530501711934641101341369061446039702726213010871128894939107222618769236449240525048160895242909660413414444547254340047542916544556135975016517355862417605553791003498149791099645841053150238055321442461501096141375220988101347045102864070684258720517509055867084565235314373356593735315869826641226415840492451564400243081725577631943640031701213443561435300226926848873040046579860526996275962448664921282027109539501350658294621477891770671552896261681652966451317675893156587016501788059258730713979887941040108518796584633375937845090578021285826500204435488344695406193041061078594290295258366248727994072916500060799180646665286444740090127279508139937883675671546041666733141843601428545630533238972152380217451486415622711178542956858211831810228766326913250270071278380688274169409869338602627052449534006000301051286337274379980511464868981121019826411890092275682469309378168754581935884372157261871635519334498851062718876087350457723656150554775879888621287085112483241296515168546889023264572418054501596113122092498294144461328886071264742084294919030060566378608878169466036614786755277364543020788657880859426623720858316307226507479502812990346087901573241500626705579013195815895365755815308315271012430672925446034974699244681130826694759980273782064588606215486298467301087259491938975302461461677531955898017394448668487950739280771673644189913580094834519787999444254263081723866767726630668092350553071790634613479000215915238440554273450864003100828802508658951687526250369377422974145394396288115757810162038754822978368248197418938499659278155244260254784452115227052002571459687794074185288967077747448675661299471436421593688249175745152922377220704651851684750573491408461934191835181179896509407863281528903422423048015862255040995361260880558088469067909656007459117826714236551895403407631833172276202195485824629013577287766955230506457362893436420064913093603985735139017071674730426717440461665263530200466467310514022565250667621033083383470639759967935935334882260004622458788900600503645283004991834274436876363498348064510329595673155647285547133672077052753061504149484096821196523428705586168065164579642387032630389655090537838984890676422742082468705975226880197094333115509598189864268947045540715725733461235174878787132817141076574055248297950385970488500868238198633657713874148479420588082345487698514308966610068855941358601387304462590151211657551257607501113987224187374384144890242146714599020663351909545664233900779197337846530882464277975539004265539235511212640151835797828074755741412597869230747893057475630487262820171399378733147684909513540613194695071883984226154612030474925103231315410876339040804324315071474388484018128596127691037970445336794379094706402934600368815950514688058816153251711637696113844368512044707354895334531802504516822835915025586211420619364543991203690798494582655859453877429715540802537308378772134168277641425372632843200863709530607434937054639766605447769579000229320749998796771052694401604160674660863616670722256862059569163007619782991466768424138875846749804709823212692554010779800354868374606626742927308803757721804126315685305137938139116767286698802902358117581043103358748145738466534679349152791034754401500490260667957817299547311276229220247571807068628750535202004681244933018529854328156033884537428363447337028747660452462015872047664069983085952893852585885953374756345033729991450771708247920027015238348988979336069159568665489039469693151017075199394714956448686905672432122500529755601082013964294173534256448365741976642063307972470960849156414931720070390402062915035045270979140001630245854073636492593864655643806831261954056734904107031755057319245555683840960775212324565249365078066005133654529872709387084608226073584677205032649621154423977641996155417042332588998054513653058109569567246907641407387902495672849280634119951127980557746275924368156221887337045102265045738768216044711564029558723532389385745637898552628733954075609416406396526666851045684062621200216859085846050478257392400341955125134085542362630694063789729616587102050326723232307247882928498915006286635106451470291212171999840487063627020702524501397526694993785647568759103402324458768920434191730424503736256991571606145977008227099107727926982543031956211592562091774095844421453349936694233339190241968444952694211525296546203131654872350509495380793442043458313131058926434411198127146542928586880357808550550875101945989323898784783538396895089948872178136043080544571646013772355950996663992193170618597960378180998307627290342712008688600784460946096229674063087015313226998789339733955191779001220941188350245030724781740276122378340837139667885863256263656900944711088594635270590999772406542424425611682807355936230087116313077356305271363326002787343776518505632269219746796844954033769128058727020480446757978093059512229384047447461513320694530521999066611131719513602808748801966532062164817574655993148999460717660442513065658977552760751415563836133261313579331812295443754711848763290276455183197148267004193382079856878118207920315411757330310870475475601573364869339797920516585763311431141089349941910162059376488281023577799528525833370022827541674024119690529703694863699835697804636137747658289124667129046801423996259433051543715195268525127122257956615337276386948282780335275832534086215873615101579506662616045214848423165462670444578340457249343073772182507544626243730012239141941059494703142961237873932230255547583496381224248209874597079656550212539540718643575469439008203194803048709950328692982972237896699106846484022387920118565838607738398920183504524907495294022583849895200516306020782960728070550433168896044063424857726849794477866761365682390284852911679262451566168569705281453294821432157613794795718288737025494667524772901020349325082907474249718042906970216750040466744967670899587151946870698952086010248009582065244646083814910208977440412177511060946782323887293841343471128035990698997462203020113798964641716313246269280064927199062108114705871474805334817738318430125696645000234675355016816296171397718122936123901522093490073842037960051502352108862355604794771975539463017491572585750637713299215239382139074710477309322667749346634547107846621858913526337504478485003276280889403207561271073280500580901918941869992703874392224591441032397753099236173843092901275133411230556651565565130739654039536040193785954751369537924455078160976062163351602571661913804469483725707603197188003364846129345549839722684931584693303807678530568464576282694036710941227341192515400975302468102903587270383879818267519967613873083916182279394957473261325903522197109643203241339674515155427113285255767846000612427322512421621646621106153635210203250011701452347547621818443532569377651385052223176886245007966606815925444969030090228735698676468304602745749117892061111120807796589312380642880435981556837266584418790408722650956850850034708484140494348861273337891225038120277207987015505291309153098059895026935709243531844971864373317890321325300676895668536485528943159777113146388070920706580835356939093120243261725445003212094688561239163287028053708516991437783431888810559949251644663801382363909373721870823380847227781496317419815875139216290709168254358106413026477078396905394700493957007967178820031382849759862869145764805774941374533444865096842135525954808117483560443197224989691348959364690140119506110293013712042189665161091996068785590000657081009804988644662307724789335648435462498029249222410235167639391403512974805332903255564660266370563896098937525893116212158225065906137404821738943158824315148362712918287288262628213989602087757738640724440894604910262088394655051635220926968134095777741804471069208742980783895380093004417407487770248589009821703650751396944676833577318323697116621397469869849982840661475523103907252794291393144229418581728173139908007446195694866759082707640966418816442811982446518053843067395152218906988889918006761419969619053804758487323755654329926588716334937419625491013729889828802871213961796594496992649424120518429406747083107350585011509872340972923370766609522750253061531681082152575304995955860750419687441356882335033929344368585430748036013557537425748219782194512952391902014719994122132789982232609644371118361997214657079220505223062597594283698097462977341277582305761079338491626464582764158104759713923128995662629666257830603093944900323856837123348799780935210876376698759115436354363908750163425820587470634094384414549597566849767120335395361553290269558721947454272643543821182419661988989661082917208811567373847127202526969050424487371347128919742246728701359783804164269644267884833338126100667210022718015567024839456536218600528331547247973445264444029139800323735458852596565435536096371158923053519811678172956322957414621904699131732207784659051227929370412783430378630451892660871715072944750926855852528359369718874429714769372625705257766401530764346584050005014016862910184759241506903816966849609769605955421824184354995956599376730624751501301604667704578576859065628950775246715368580920310636608548115698255367227376120234346282650086225360617097168115851773783014059381923928411470267866196809838887269282173536517495734615728424461535432807524245355114871072657169203940980601736508342210939491210293289032569049371584851237930419342974921095358840115480898926306673953913692991547666145293984475469118312047438454333906269948904654127805364308146975528264791468742427816095811805910625602641718305528424617816675294000781048370264906679405565861381110564447012441013561252414110967349414081758998610915039291503530767564633743110460072899972395695939715395602208939366174256432094577598106079940943594142239552562388053080293964320608987264076087230266693418338984036782753459270347956669670086662388251292635456233139698682028422304050570170521531523908833331285536142918433863773918959728952110016573064263724710630867280940811834785521637585829852923681374398208027098571375850119868623467769509387199363203027213470748233464754235708328618871316185658170064054349716899359248437610370400232963795493089648464256433207758908612748884381452981825476871476294109022458623639105003636465755436474061071935189730578080191895151753438134197515017929140781977105505889890573219818997168349314696658308101846636782477875357288890209068361359551332375862634881140704780052360716612069261866837473450638711209102641911378579749527863869625811886910942734755894336970675602374744547842077969542851809963911476704764835688843728445583328939270943323030079408292212906725371274624616625981037914481860186934683271464238939508596863453592236002821290670875999850400091800709195660240465706473509680295968358543202595111510785707242704939191507030085317250028628127877651530759777933889946325357961033364359157226907365331093061781056597232543770330177735802664478917538609455645130349237218380729445109764605771498660626954889843872580730941414948239052519201558603989384150771544765668253891509206793308499353334229871434972959932021677904390902985694239966460640218523213272622008522192894043772461238086378837868753814710139006845067599223145565941432000732172894634385807426464618985627376637472659083411475537986769296659790345312098804747785291031841271199597689438750125870947447662693812726576327892062534098921981091558494178064818352816884434686214624506735194069222299890995596880776523913803688754956048111268377503587114807221444413370908698059794216050933555088838241209931228409819916531940169159602877931674775605951156101292701210137658681383689040900012252694430315819969642367424223685699968589018105797743995914401583431603057265754449363665782716785385114018418644240629051475156331972656876142042350375334502793273761170562535231285438166668586628823089167747614643757722928781232206133471584429306772623265648955714611109250758561352645881938328049557401254127004979044118115441773431153568881155810640626301843033650405111214432885462832844410287262892479297632179321432737617839420327280144729981141073227104550974581746183746030985568982835544379453270635727013267097595315553731920397254033236102808154627000563260192516037106542189672477909283988533504674114931879954855798183125665872318630771565171722989540664930793321943089830079404275037293760937639110414238210247439899943212583453667286238162882696089467093955603706210197564364626124463874709664749896618155477487668468353191466990460918210561871095645063458272083620522959247409034874062345145981489455082253479787480056235913560172114516148488480140483830102657043855100455836936336276062360764563885595569220878525247202534129545345735390250504329034629722288355432354020959749810514963504028099787436825495928563651533158446937687273274876668057067385417959501484112922255652554147908246327240387520678036719671147828701742022574657348518305676895943710716335940305375263434781625861823816994011110411457290073588283916051355363586471750520696457177797309223111094712951700142883921056350782148200007041845376555236152814750266672997193151635050970783211865300132031389762747891930954060873991534017532750351677948632923974430498665630652337296218797095656535384603723149751538524948081572810553607263101198396855231643448235457502389379687850624129712459816115135821056846923518217971560050243539754393645160168027918175819259536964435927174599981084455402390134534676051624991160549113260760630074026480767857615698949901680975848190158556953213030884727415835648396565317306837278380538622960060946556638311615207260393038180759743335758735370231133223389144612637922823752238834811749505618351621504889856142787420903474175678354619743272408891866638562460547512887539458153689473224935846375198789745161267742343986459234365418702960323856424156462197159553575564111300785810370947502290675226954062121279524878017459757688721139413053443451655133644947450599109400146062516801448476598626090249149825183834083191599625145556069106195779133240420215835106935498065767605791823889907754006948975842012282789671064530224628552252880706026604598963666930726127502206757885442047791308930757139275021091915950482084645887638364525956835492822681697656401351191600883262511064111765243636881476663592282100317082182611340147871145460176178451573598387907297894354095912284984517637711382764303927057383536286666890866479214607186766530429990632699741195870106093945850028547593693440939247602299768141495629989217556213254439551697964553580479938763526516812390805881852735505191921526507481503017386426631818337044489603315133101484135118991526552873470933174607689677867496568291396736727087793601654363832362594661998838168578089464796869718898746679963538335341232843915633960737268660002269236055353490131130437548775207221112225581987893270120558326581505864950065632047173144337724407530108646322903357844257618856702272557109998372836229595000496379119422441623720062395328269506502761639748750639708386439196663860717543645570925860701715340589744558969106723043727039626076325445190286782762833687890247581500945244660093252815363114093387185058825484529603911928388729882579139941225743217809276244227912896084796934069372197704919214397463985177209967789821054747178702650090363051057981700820332922571369692952968993632238332844787631599012960094556591401284715131910047961170707649759049249660135465884164184793883956700103609901569728945917992387196836000772866650038242616591697110203407812937025620959924192404896361100902551445082936432300969722199140711187509667684750544634419839335470411269711998447355356437218967158018836949335100669210688407289470310779750253418768594435549261654904701691624909046452877452153041490173223666890109825153173819922854754444198880123466594356838030104910311254455846418915311497506510871772876539000559588283581334398719533444068392066078529165361288292659869525316294813475505941486710030076060467546220629505207194338049772181570134041993120465643329874749927985491718328010951434686357399042371451585797386122237222976700340505296107230095687172476017193354265342000320187742124625144637330571669824046212335296019308677980796141395275707198658760528417280839455182779012766075908290132868577031480937577832635838183523491997374647507204912738478158747010722150581487302065165900167940554050742893352839176356305800575646372110569238141494351376733168827725610700884094536371470555991569875298767474751866116517085141757323409518429402144963650565434964746248513049544888223875644089038034321071295508347388502475579075881655697864591937280565075373627704926986207459913201448174320564471808570562444792943430756458705031704324690897473898674703506769090038373992441315447946122226218474176471504514922846197764129656575541187236946927445758261648419181067923118828512735160961500691439875968843665759821932910669239839831464225069692923134379625561460886068605155403206448375339776568095274784762038839955776999132073720201453091689231993980673088565742211821233170226679318784125630483587583264783575424072484185422269922344345003814140269274410752488987908099517445950241701516568697250414744335915211975735014455323228995391432169058694271482811588868471544684480735162936195278875808295846568669561598907695722984010268523703568240948949819390739175096205396394263362800396167190122119084368490141792598439889010307181277929265830463879478305978924715284010005646813659243920730647098182105746926460778156572700696665266030212543344967605608442664861660508097320656004039283856505834849864732773926147894771157820307064068325087210522920522253109457737613042748845877670412824300477548446066760951665635312475367647237195363606386925240052339069539300444258521689069980150935783598168545327359839181958474220854309150422318706970507697342008736313512225322997592931218677806227929577685228775226327668579337141072470583549275736447744797373248707114432527061524060843719077204767726041918974435745763201506096581562826232056400932350092965552840552299721401138811128449572584261881608601756914513688837589157610107290077693457481153789832543788008177417698390394409913633858183166363315520226864314477188473345035734388236891786886843342717372310394235189648772797001858023797429349250283330274640090599682299914304561340240443915139253175391053890497775922743434228584566002137789018982218474178072711737172333452431969592784424084816533726781884830814242613842133818291339697607783637184062793167132844576145106970724895716761187794161871386390846402062114249058731713937383438808446603434988413325050508427800502296004854704841937925701161756613868613780816338719247211707551869568945462835130295895727390254261662227868733765017839874210331141779277581959083947356922661697696606980455294150378566632332097472554550173757386369205082306053954442402249874254679051958307029232703579350418197280139443889270049580190344687261164416571848483276266822788420931080360385766286473462007633313493789650943567783400046481240619038728098588693110058445324669500229243404154256876704546299270605001191610022798530548202347615311563407479540030723386904943493721587581733726481153197006344092032639577455080081653905911865877601321869561109246189420656391893135221598294946345608830701964601007423314834410942636717638516003677074942476160340402392197481240411383114786992087420867039607954706667726935266528431650021721632899080036501506158940390010726669659625487631793982791310291322123937607572696453252200767030105486093599619197992691045627263727683265021830852845700398037961785064502036446471216283414104056025203178875953802384194951319929858426252347335149777603247133509186736600045009723498846575989685238808325753448448912367372349588459845228815484007119556789187617952157528582102441141578744595814173645655160426438122861625700216323892950461908466528205142881761317653935595323821108777867783539220800186414482551370813983120151426557365909213880977354125115981463655129477353360087130964307825731356339433231175112992392062099500341196418738130122254824684739303749621722935476326849454623881525433174119909896805579189138764045945021039893980028830738110256544604822225026701618595512657903262766541947220453610913895039170246480524031556835071722566244102070200028508939619445120137157268274640150462733045336904842578341358720286483623562986848200150142983507842389754102830479115435671353576102426430736237664601071088459077309247405251396491576093099187043806218375357177989364515336522208883442362309020853801747111306099810422752615774977010871470223474353967333968943575796868538517543399638910250586303374005036766431399015352938063791691864492309127925026192382295711239811281898581353776664999494848062873718796314208617817801451968137618729767072981921220475313916720688246289699584418336841952950007000739790009304993171142689780012407051027538209565795960699173012078003824822242252754395138276974979361072265697953747897756780460161722485974941703509317667777164693721311571706675565436831399609009959207690176008848409881164184448715814812363646285502203843605284284844617396432067438983131767098178169601136185145572096545361786944438598956487752422323282921985957719529431061675351207464229224308590378104790887774407228949662545792064956286786682705910300492140410068830006686555870102556019021519988225566881424416428482322893509038946936632936166489175850344100689461585172416372501709550792737135091032714758406084056838205812186147817405442238754220651834888438551241418050330709014182644407559101148122828120349340932978571291560597581747656437414481245829732359993095051449654471866486140736223573412101139989668695615586589949637770539216035388900779771536328566263663682008911136428834596125854113919737641819092125264556310662005547190866696765028796418090574472501547465779528744549837678948203310733057559169448709490823576014621467564979867773916017857217596150098427431082561756047340714038016159415005095762433043213529506269845440083560695394559290688402923929801563026577329529490992006980766485692715146993645167421738857244653108617298255254755136304230673217231472243349654312952028897292987219924927472357902818006408089232925718354735009911280617701271134284470407013693585494458318611515650286459131350025102512073615554730516721590514577835161297464223705278359247451667616803092593921821857180847828539688239010087216809121012323909340045362011747982651003645519873900833367029585835245764695914978115728413784137998632882603514871974091741780225182996296699279830709668429050644547367377433500294073420015791836784745627771695118350518271282350203159045112483104180946284069214670457185850273674478032060201448453298532006573221528579083578732827934765109196542240451927807245045608029645667847261288200025302050836868882835872099005067313271838116928613863781021904714684642840164853492523008723767214721553152590844557734206807762980762634451434784071823862790246343087489572332616606750848776029096821557344475922927325548455546111744876708519457616581773730465479053901800457823923160644412396810165336813695208579365248705450339042645789014240045257476753569330287699853253829368343924751042354842043093799014838023307769900055853892424190092115043552928893664433573823252834659447025836628224232505265961299431587305188138252082492735283729027788646895920739278358246394073032492491000949535072274335287398321080279485324307081962018422729784871921919151428410897222035418514962481123113934793170243297528556161535409923059496884475561461198140305995681680039406048519325182537610603338747156821455992514705822814577434265875133998426800882022164121699288961476111531416438234639365310551312314431298470923741542696280917278336215029488442405041520415408776435612967154987193120098323137624761491573209875805062217979383100657922356523935948922875364641563783782475882986778072141155737849760215568837783751418422467437608317994651728454379790975420607855586998663638217427879839179256555159978335738031021418283611141581264382195081182369553582874650752897255212293890081139904630494125805970878801497064729921839278903414821591845519597010192026828809565366281134510826724723069260154028870256583367079524917118037734286531033874401001495342538830489269392051929323756932136701399294170112407410584655365790575106342851962942248904556388914597004751586539408452928665895950935104466269538330160457981996667764713196259625731750249564225215632074544635498998496468518139903718211283595077316902170236813382453472844887551151706935239209839686135234454828495859253048913381908719266699860614302082832790701743853070393229650100646034182261371850854086946790213334828608203943501360207951945281177187710660562414203067888364637530048807848735997651175809530105965779126312741443338358027929770799507402308825265014675196603412034773493348808262836005188793078741231907158614399485477075241553108246719298800471824153943795644005246312570186402426677185094310556037202779240169615795779054529380738169668240625278947749566251817114998217883822456521343699103979643877331726194826687688225317687316272950192706888646134879171131083643408903876604574372267326910386971724644707187902142012259289665423129181830495856450600966114659987581435873573523442043338149183853724350982435279654253829474794113484645554910930705994281666075031004446781332723413121733880578711836260165310862477235202569703068586098718690832304626471429932222414965475374786958463072890741060522781714727433291947239769575653233588249211425593253615948084056862131010614224952924937201077719414103845833024742349304537419844382523433265205706297197604160484973182468903072372235298358974538693166164234857855112986725051273808000389569972691193007385100835518452891561622315655544711634637188775459867636991942586533844807219793545541028165794899503056399757799844352631841643197316711874077144499600898376624425835896868018129967211156075023095042034708992102813787597995502405899505202975555990071411370153156328981356590243634083197456101681876514604748523137087095462259941580421857921501173836449825540868491831668213358574715998399529696663303379004484467118001146617154247103837673317957519238467907056004949228145843917761589405853149728661564710713423132470134848398800002749622272363100924566592831304915697777906133149626273361175763741262170549833631011176856831040207980961256513493890182501207952737534097425978638897413381653300767852679809461482718774496082282850769110794227129929211401605644736936583900191575434162564845108377623298014716536128411161184670636500626468804820229208993778711384187916877052170859091169979984476680802504795176509468132469904542153723639142019875170460777132028537531533400543122789137985155658834403378737629902321497769591423952959533414890130618978949622375747950244321686044015132822041197271636613927884025818841709921740832874768563756554231414289776583237558325804236791477445077309203005805657182278724327340248746106224039445317878164770173409403573637115419481465748615434361826078550901441632736550711262813267873085509218176241059951147919200273595193167594762351151212963043995666332447799042470572379146930432543850012704328790510954570126146695988378575194378291090952027612673096921878235252510699512115704999910984035433301550641410685399690269031245924446710772412732627399544957870866870313874197656535794739297628924146588470813781694323269908980654993338826243981457841831960293540134516764533619360139975543000634813446241104804609447706310687848474056101880351329417405318317562046796658689350781388144359320196695424922264394755845617771610324250568706631462830245569679465927243070034963886997818002285299334800266950288330495399569954888543889778890689866477098651696179246070282052548610407370560765664476133186343908934587019565750931000410284878822226394221407320895849316041131720418237721311358842711449899053996497480993768279447156878719930783705064169048364606300660206366527887777348234761094701064472672870992081853855443750692655522978912927077275214628019258533742277052077299858122303422488209495611097096430332525041939737001481087873521835478648149433023032486680932249992388755063043732780523163878439707979822600532677620285631191206260313776109358779122994200802812209163598687294013629592623800564126698016940135485073923574652117595700181585237737672759600696853423292672759987958864296650634259520126030302430745808361103029396665620151354776960417734424337081567464058836221395859442016184437569225296613950697346820458448073282129265818258454486187226528328010280670160208781170375374754652169369803680491013588273513783120079407656979646619529082893335644484363124766244851785179405509767675244601720153415897700821322727026842078364110123503607535767777592606330209304018810534591294895213663924752135732009937603085730321227246278153335199644506767873485764416355449782532445197504452811221249450357754263363325257839345537706280698041927000833893686550429703669885441043804799319876771757333909735463568115617602852475354851082653527375974968453088169292005950346789599436039426854889643859086798997356324913587551140044759616905686433104123679777031390527708956157774647239271086219214969665239119927082177291180773917372169273747595619954427807570945139863888825896661587475594606668331484535310489037914893110592787378701499066473923878820490428912705873127284014457752805702364988217813043270572033660075167816779842976335540118313317307511262308159070434319168999862208782953828356958702627122067295640727534567072865297108331693052487452977412942654477437242948236328406219278964782584304795843501458642571326973246562106419276039576809139936287188760165552013243870928394114821392586418120276948951171802200048695445219175021519413660338580925437808121526047882622351372756284525052776576920444378978643418740664160075765169949324382842705805686809889139954205821289882996718598916596474971551830585439512384123505311423195467298774735921458313653036832916136505042291813002110266824991761942284571538444667504039907475176877429218511109005625473645155952605312113402079041118133039526906502525172495759415985857985524465850119672070052551894752975680596172937692188925667197238715559708739331984485142911092698002841548744921527781956629806630051041076465281094015992566590459829948444957300064154250981090347199397755095697857505871043047265891706171873147550283914211706788618959080074869460763768502421095396548564529557874454759892498949241694310634473674355299351625899544850838688630595223650899239288907293088633332809468699013972813616114784064482245673199507717223120219857437885603225983023586599355258226595721729659817389073484805079572096138483040657501394890986222747810356807259481259479643463427261402287033756653616304120644913143016816802110965471640280871923788151679737473920715516467442571432382117813657997291885133955584291174280500639541447541928663692082821692622637208606500036282796911070682392309806541600188009085689895595883939086334937303711253289854129356409557622337104423592514733126280389496079391437058773678572951529506926325364901279727119413657840311203564392789574514318032480968205166333697784072047135862945750616249592380644344911154063485369190063015207260579311797748001613043351656939100095023902135890225034374909501650018982456850347869170098107388723286740375800797489826332219252374866834115075190756622871129190968755404195811332666705381828703827352918007323140598880683540787112642075229544350165889807484005554788707283539226062635767205467692264250999449583116786856593097617826788779063114401990613902958766923602681614764250693217194405364393710172824037895444395549238520617870884479963361801059132486713766829117864979462367375992486605900553333186563317106538957414449664550700661208196709612552228321829208583139389796391339113328328425941129150901844991199786477840282677865074489285357698291488542906174565160689985709266141369507337983330655341432754123338219750948614564944716387048530976770074499766864822782470114334551089695141451485033385871910057550333178462587860249997344579200830565716882956222964722209380147215536393596889322788648461048425970444315010328931641697706595542116920995098530351759027340346459628889945056643334531314033284495104719914417245562400010986933176530253081066331934562601079059187286454788826760423950010925625959460926810336375968218434458558845098472565486859134737333088384643188517771466272892387274750789749785134289109292612102331796866190138908312946366016059912366434911038686853696652634178724568692900553346128632292338122015785583558654318732677326165443942026200468571768397090449606507958084101083682635942733218837640333448295331353966909754231098986341224338836593512590765317979837441053096468321314170781456917070103292976567838025839556358085678432718145952299081001917919743823368918539478819587890914686318129323403982427971160845269943505413827310759119455971242157206490481795473822901862148447245947856041151905787503138154229213937857650189113676712142673138507736180020506437485821566507476593898551825339425556171740615814308478070349493626491946241501748450303825095943707347548178583443980864332750622616485203919150396615457129155686413643067746115661950096467295731913279950265405616221810406573094968777074848652431899160627560734153755291008274309640307009289322514393658225810022877112187399608593211862730767451324174776901944704208743059191041971118651066691899795264120391979614726655746331683425481881274773817844125370234203945800016832563757580203279241333968963885156728278704922281704645178482517573790698057896368483891714689284064192370364425396950566086971568431836521081057647018695336849174322994485955632458312837007531010036907967201235736803566051506643863584830327181060548357721748618901557800175804528677788460030913118430728746248142780919850832346126954299109751994551937450279137647280777123007220958930252764394320400013776917469210510910940272753703066834407583116381131827344072326229045746125258626754145569840147420233544588452021937219036431280655899415899787792841463832138043859004078836556608096910705362949282108469587050326208229048198538012119727695282568031008755193108045512580008657020719519862082337999919174252760965470234657310154106899269220548936548603032854874947399855171357380781816575278657969600663821442352945474349971889981754988909596764830580120364089352652400733742921908694492201219795250193144105796656226991659678793346679449292473318535042689109131576514488577987632057995454776475877907573894085682046425808061069593864328061440913967524991195185291243321786430864677698148971889541818198339089875583527375793731862992146722742085871841460404035297841764735477692445107121859077994974725179923062535171014493904252509094331622076324259246096023038107368371119347789645965807792449219952199898338311980829602083934448297802590701328746679636056761751648669760218138098321948471379433907526512612494785775330266066446721092827011324519822750442221650837257356531989155326841265483195325975559155422317313814685220428038214485392804439436093108255093766198536797776823759628482694810025312662793447320150146916920607986263815917206905728899628160785113274178533461856281846936552778730125392182637771977868866342556128095013293033999815395351046005267105509203825977600154400629502043335980236483560033235516598970628274370131073021574162199277592094099411958774738010338275380178567486024130175655411541654880130599680684591377767584320263006831659585680682160683715467733788973472654598843768153419355016633872288164165384107275332567190700360310065853496048959571940889350823053903289197407616144464844724292819895643933506702109639437279615441226924840590868587524130861862347021275377782010562439893132055190648242593867114740106411168259204419353545466599217547224327251986370734547551193992365750440989376033952123959370511454756656006467166828910241038514236785214971145224750175805683843664281075730166346735885723609842715838781014127157722295440913619538627225987183903215823495639239117345433085985112743198960375088048831597008972956860452075815725294455810900853720857893553103660949875834632854655787696623621691622528328503082142032374909474500162171508945289619577012113951751911248334587097792675650240243453319095062437990932025741685084125612422388996825504681969089913046712404738788458498812416746014136742639292827349828407802278149463128654337138585583209882905422948635210726489668638465889000611884767055167979185595619352408713993021222286697038415767485145501458217636774945256804804637327631157153321092253174069137156535814751916079796682386929280185651022565572426723052810201516018447486662183803947812162532389670598613897418913247961439191941709984766946503184174312628233690679506928833571443104398014171400263543286791578700786857150868765385453359430039554237198956018439687707492838868023821565069977668714134106302955906801007941651468452227557552386022755569271149152637393505148876344242553075165532416707742538951113961569354181378291118211598791790544444103683210226228452109334632995307046512396942106935217933672570927172875185868122649456736066180585706660956331741051273946866817111754210320935923991731794025346031465232216733756714945928748218641445572213830199950518634996452795852229533112856333843329973259454911437458715126273198681687328381251532683495488078592958590202681295021663194325342112921033695395563037448367308477132301838628741896956559146837889247032759731878154721710122156300034745188600708799269442786710870063251433582515673254503202172499518283306002770872048135944222003496008058161628023782101213807968833812893313717751214691363596237755370833039059280940880029215199085821385914164018181596203185329858725479212189330231657629924331362199266770551489697631262642543830257515182002465637819282766294964867768736875370333943331648661823059157961289098639812549457065547909662529032561008631994211396326631977219395163295865762411786352246770163444936372960643602667659221109627987236805646154759520648247896399518959988813552681206980047903319087746686165794187631742825822904356317789457659871900679957733235773345083311068111990016784742539180173654139602728444800634785752646570212103311381420629890086632289071979679564201078182343737468456047659307932111446556293727089776956278091037685894011777612675776611292551740643692358371287464234156697281944249156091998462906510529484134527570804339480585624880132637168427501587035365996037017243163788253734752105736114132005678236629490229579768154359402233502309806007871458073737019409410560160968498975821543577182438603248870045403641161783376690592773740690097663116528202440792745996524885905087387873995278837404711534990190482339009557644903862396096311452843805526216837684213160125418418381108870041248224780373576420321768832240299720501280298842527180747831050305674694275490884819102740425866365123743479896572534905233726460129915969372132952761089123289408220168019949934058224821394860586896169204215458536611337168784789956212571648800290515877390714186321335190224682233595735713357181876548315581093697011007009961983445765094103109217129643459382526084975409945622081555795510672918006074618273565037833326643715217882870989955814355985897195635707546079661017450087616844564389293463503114916680873190801515879965552640750496590885240355095550038508159143162234364489709135217833494631995908549292397263517864213585348128207692446215220640852586196735350731727046894186005933536467852493252904425069135276373930614714847467037516491365281329544290936157192353807839017111698222348059975070452084197708357411666149470537128489472153748596700106843490278340864591515989629211530276834094513671334336026396807098698499862582913965928181117959820679897595668802485743933316589784225876720410428103862907086557920279052840945197898224918189163886187448078305588065652860040727729886562148394041036877671314793351814269841095285889162548268269952119416794936385356761480664283232482076586434480236393200034988223484982943874330204814215336944435924609888768640553509606010531263035724276029479449304067729990021715794389314840325499244083761231684174353347167602499797342888441422897530226552549111011083195733207770200385337667331221489026372667907146151892122706412884015074309238110291770440022085315965174822741662496311014507832448704791334935625375241230600171965449620778026717790943870784361680841371472239955551871686729534062775622261282548175068773945382823530353129936738389301920968944082929515952144738214288665930896334636208817281291365909379252764507056225934881070325180255735470157054838411318042155949488234525738263614146935427715344822528900981618108016927159906544443168022174299959611326454716425595679889856829821390558347935794962875792194435360079413250134535800020406404488890204765286297577071153269218385933969308004837035189469091467198462848232547294928990237677773384312254957198219983091535399855857813592734633542763675607750633778368492634949537415318188639103324139225848818407276190204583137883141227062745698123097962316809891206910490005603149442962343319709280723420417514477890170299826081176139002863731884655942569226999769604507233528782187194153432159336976639221177879486481179830559164278273942487799392621690971516344613563251730559957140386987442893620477369325878764386853693359484424856810171932309543092183631324272933884511203240784698687022910087953989192938907873971185434360241794446888656463715563973481691313492706662068721230753903668385550140066398860216646838658179991193562041306469431158691577714433838532269195972085318580429352494030174343382783879355750323140259859461446082823549058482871007237743704250829081877176453809709541610845832819112411490042256533620002076563022210982861215497796306797092436000559406374385736797171499931548363255228153682109430810305551470686047788473779893444588392006929577227717242292256963262331844706561510535702151903656358859523048801543645178948600260591493908315496048532201645856127445704823468066014572883273917379255657678043648383336951293190483355071583713983773587388893391261088370524376589513569947553726317309562825700936700680961881719223599892596958765976788852519257218245001633699821506442610622737432693179093877374534985044121210477820832814805462273080213040071906833226264999523402779133664788061729394188669310348469041779813801025044513031814698705722407983007454205306239193964657307149618023100022503896348809583151587310077415289024691648236857697232812486361046600497429982445833444647120136189857167970197536980450561116952971204060637190051557432741644925620161718391434713136960780640262499171006452773210640032930354557587892530167214841524311178110331190765879391650146243695266391328317281434632675494170299605098420963824608402998787669666897695601136891304353937186111579551700566593514838411303940544703068785283235449520978750234140385521662329311494466470955800173269686327083497825923102519941234644971695183304359748386729510922741227742239917974204734636416069123716625692173963399938321973140263684690433485395996515113776714210326906534061272033233835987167534011089717440546587755814981493572175296163918480796885659500302963774304088338879913132793577287198182095094676592233327838278459163439036567792388457830062438280931135602269887501612558648697055526419954352136196497106004223924625622818999178554194948748646012022538461260666608324594630467002038468101578093227554858310184720466612859581435978281207675333204238203914299780901341955915570759002742556875080517744134777905799628063657870200071307191214148616042029793582498944032442020197512641415190656011348806288755897364901916740854149131115525458134770775509009612989821940669360761538004095379120369033047792313046892403439102359458277004252270358047919661144284311732048821195445858343025353578744087818121385061305475759967854755673206432549569861057283866714877906126574714776525327508161575231968837533174568070585404177495989913454958243186094922775805804349400316204642701229204335327933986471145264644717323320754717895077236133044878968340800062721502846775118899300231350744979146128327186492557669942904299333763823656486825322102999770446709780329756548149208171434712759770987835658651141393297086838293830367784385987073636138507172991891956594525970464466433990942125110330830636326070931396930978720165258568643736568545958359072336495947969381056561244565596867235617164939706960378188615725490591591940812576613875769640192909872162059530786448551365351301074483386805949394127466339267945463520672854642062287650200185034332454032284667197687951390444627911843394558930573860863512229874255011021128075406209699702327843078249745104004661695823092274397337248051224617958950256651026784460021953964086597283648722298708818743381553080455887646571305478181805961768718482656709898177920197331601147313973131385244834102520306406750521271941476992094246224152655715876865955535865254381065044104810465329353022742002052452224484140027553783405698484151579428800066882615114460146944701363206061752516010815596234151180723798255933934979254673316491338200741108818036611789626840073693541896737612345941856832978656987146736891225564643532088178030991087960562116162668306050709513800019190229857956626955908730145917833388343668404443163536964912288895509413950357304186430552820763851848740819083039958182550564570522465243368087466425513745431691430605663743337629694990320508608832012717568992946934659388239152630541295337086575080778410412728178718980852630394823046797804216438832624051588918423714058185672372801361675610184012355837128525306376817206878728075794770002589495988971858055293610537306424748200016308660363751421834944353407104518134324979457830879931792349014000943568048161064589498331944691085943830717019716136479825985802688493238304803093432118213211895026247377647452448473834891722035447468808284708803829973803901645234652595911324986019696785757600320060835275288826449212436154180733214062274537009972066095820541582746469060182175032570895253720921839341033259278751058973199633433748304605738621229970202701161763788084652164407340605959525619961522959459943873469624648201238419330158897557894187529444426607793209596005054437523604045756979638396316957657513636919508529487924511838018876691236886936411125969340479176582804860357364531062222033043901293368148491035130740547644610088032634371991188249287665448646338646682629036690378258890061107013548784457041339679687726945085405730866164856896925842365524380382699878076688460615496904107419289647671670608133857721884601414918347575872702736629217604672995104395910938699565401120765226734102674033713934059814999017362277819279795479600967831317031426371676494045830533889022442056893307336654174092031873337198858690516535347125446803500076152763418528359053795617739876524376021769990304082122195435715752288905922739213306169118313814742605660733720400180493110521445483559370538086601946339425230354626051139216167951440430068646989173547719660762590081919403476395361166212358527197717717793985434723819456918665366808288608262368131380708324720740265167663076958670051212520000424055009895595588731864516812081939740070801287709749656236464553186845525018303620374953491669690915240044247227936695797665089745324165242940102788514837404177525222230097160252450380889039815439164085191607101303985501471010023300059512877876681563870998001519421240452235673424161042635360459164039579015522743540928605865064544313038562494055864114297459947110458184279899126728800044037681991324853859335962018211796173146197527099128246869926835970314293654189548644112362851090448206858681503158850839945622116454974773686819487854026988088115559999517277387503203832709103874327296646931720704142286109919513528921504803986820073338903483282528474045160788548683214738985320714297000541198474149264057560243709972611066447425521106495066933487792259698463439012100840601076247207566976069786665147690852217558474142282555478683915504059976191885221682993330835478065087191642037199731806617467049127199928798158147806532635870631645062670016344270334083425924549596138959922171295235094138863184839891758862405207966046717391111444531526785765445342661764076916345956409723080966091274978233816606143267194831665640772379943366417513502610745279436126855432503038559419785773756803265103603957253557952824677313509558861298872542285295713937245085697299506772997467927796389855715209544179039692079661335958613978279123871480742885698712202100263696460743481646531861425394757279747014087712954530422408975436161265207883808338220664790651305861649634435047415220919087709305147516901527522483435314784720219988278851388820590650173917180265265522254158111033590325591886831639037617606097371194480815090258684137830777403757411782893784413443725257580482666172616135211316181975895398940307344543601643917176877467422677366457842204969688168284211679617380582782951871945890100588158332008972685550017903953312915254926526866549665122936990576375839530305241130648782233423856677299294659936713411299474029997713248997121066041174202653021696604063039798065930163833504773871290401219135386039672890108716949538489031762593337232312621514162657584366748486136031527845098917284103469739389987405451742584038857848008456616083197361436396144705392867160838596459636641975302693049704286152316636261794965333916162448634164264111649727322032380234393343469712280518506211683909795927091856866465063490391458654020380110972707431201010347847415173006133154827225551579109365166280114545387127956783628397066610184064003979876594758088678680918837146525505176682232093227805238325246628595134601703774145855033386222201546076934010603233320546362593056349844471708594240445236546907769818185605055473942852819726968215320765011341418683347911493981661989654732696138876309468799055864834696512743921530420721204034458043713072033722496212517188006415110487705330114453868063351671398415184457080573116256742416495928774460033989130548457792803118029931714227167547532673178715599885218046329025904715862176792508041521216463039763076193581929424155206463114305537631777818815290255936713261830051617278007847718615121308542742629451643497841762898440076997160511933059616445350569802559838914919256596750507449688320229606762600833384868480867361854889231471558413781024339769895859769772349944864594330884284261612967686525792855578360009472010001222373824506199353798842888007096376788076200759486786350110908598900228609809132470589778653100912034157411330933437852069260902584389030460520890833463078979013435030789783304632781044857557544842366662360490440072708705423496372974530635832065886110762638858744588145175478167173689122013651376778184208976694176270723390898246896627501016031824064709503556097967405517704976935327014364030147944474939817715168510155043767055406939767860302157983165547827927962338045919148714450375706110500304053270034363342002747755799544183687264463367744341115508638433746876336271384386085302601204078713024848889039851384561322282927437583042110441649343701553101429710377796714614902381155046122674130660792630519673636857201567009445415016029107499216832954683990484112778323789174975950875935174038976842446274765419785415646304763545856491771678051877127289473485638451918778949801984446847385775701180358544962051096386228782208026489996302158639390474323963524560946967673317406996212542295474582668510583519453925128320332291091112018381197099416818917623971578812043421192943128220411199826718758301463176531429761627762480349409320731486436610583832794959672088614186041049145043650066758888572078280050925116640063606566283122651285573569597944553133210740260283953061437987043095404335874249398729277157295137389423502000144282093353597618010930433443991746650305001476483455203411629539563093999849284629090232005402262035544086328235384493208873641020225988023686768374709390478314016084882565685135218117062073391592620157445269615892205557274412559334752526922970367952097947386896881775532995598478008523104525153985369793589920031910785644777920355683998418971893975226319744779375959538750757177653528896976827300942738194650789685679844237684721295713475664730343999188303050855755433991271566635715267738549729195529316765341969100188308521524883488658714696477919756228847507324187613371498343155072125180490360348675768665864164994989724496015900519691316375668695582482856125278303731199769884574759350472134446345642648530753771953267618971998374688559763914869390539969345878278926364871539731581631296922804931684637797186307346689567286938771255799465127777314285555412336730392354271940960961458129993053337271790949291661425830437731785501761162777042624596169924339853142892809018276200220623920638707073086416438972264417418010090564308770244829303527189668507829504999141948023011727073438731518152923267428803262529345987754291232437340109972852958042950919390730757309834546466550689147999577380397215516865253931744678111037033813755712590683008096335309691718733964718415550896924090055180061990141897947343424879239528079298820699736626366698829257979632379477212967654263919238927240421931719346088798547379756159103952558340146895065097591828534570863168801802439922473744927670768541935249187735301939369085264721779698516214783813764402917250496318672147945594748784324627018747266438042013062813162892717432008944416271515027716343275544318824905424436714497883469158195077908950184991075718508640390708836213502113044620160471556346375749802728744974530763343805679269057713414144630218288388816896568485866241121937469537696074906099171704056446927704023511885551434065142532475295180288778956077926484873392969094533637079075524134880130870988516201769608915816336157553498096024147890572285189826264345886153358741488660828153737320044642645956502229951830282624509322810098282093736158026202561312896937021522215131095691538482280420753649435559441134283572235286583968394015461994023870615145858691327607738937167633043867403682883829875393977376900070730341007928574555171685912730340165175253400859290462019611087903677759696418519359397549756769053844019316358825768764920861305354749403343029639493374778229147475801748053681817138684424534639313748524755881113089581231684626104920110942066500573191431899814204206375028693584951463720694468364219803302397550789162617136811637515869479956759178527355813623008499544840123720090951918770232193866273045477662415131209989811167203472574003745335738868827846308988395929292056428406616950256696757423782131184103363872656942078724758592717892355374875695639170980505250297395947473747453410564661695297083636250344368579345072219405060782789370571102051208794675672542760777481909526307894953268627452858096930043970534574834059002665869239203017245690710568870565647264838151426724536873914768230338639909720090010057842035760696564923220185621779740998979399671804640913264898311452287744889219525094129556461158468445641355707872406515559096087966000151605184861939584116922915750991346681568233069320629191156041422713378305963294673822073427114312105320260797445177887391318800465159809729484129434824376347393404139543081990012155529051485211108346252470929329731996385082406890336169810381331653368888258385951907901601198187808465438722182681199322454949330509478211981177910372512448989129528232132632571897195089225636475766454367922745501197120648098089259466853269081655759907680701322725804390126487711392431744704225052028925324311682490947774343729534735597144727292801837594450833963812691662647751819671447122523963359842563738282718781126737370143095611766153051991495664259261778419557938708425296021856845514568750781937060448709308561264680277609524983971573598891675519707148802333622859117157779987675208166349632208711238604672039100327068553301141754321741784344391898754453677131112233819228807476281564414103350483472535729197283250205362510812730043442067059206314824844961112252337496823410903320287111928700156985361603332098990758849845132004675789524615304491853603317005448707215021040376743745584645007810501791547376096456218994757815484935575623705437986025762356274072022856236796948803606092218519453306062797003217741523777492885720610724840302688278090428178629195680349087051258405249149300592220985551538351841578223070699170087513180452312990862660686395165955974336737133224210723230501891564070145986077525897826883637528215382372806264345398058566288773817082615354153155413208310957503236061379131786244639549929200859486912236211358327557242172140148257469861146999424749088272260202104384199569659967459308126663508130862681959404923714495074719828846436428948135694336920771215652742040039488580963981666506201265012072275709100338850657542451902778921211775407104664738279277327710487122495682866724214687843058660443998026271143698156832170033882520298236456044151102372622365032757175526447235378095525905305830453360626480760247512183397752710733185784395243089371890100680417391498317826389982144695350475342191385083696499652579382918930485050024914605975359168704313901330600776645822686611539522672180821821714165790459642125556631528682728099519082878923803221883617377687625767157919254661757069181846709940070723280852520202560339780744446520034537666929848964815051636748859516556412602226626810860380607762525484725286260310615139403578081290819748271600896158227704674435537400818611231167879882468357995760691517274075423938605663295416125461318681861106890536518723745523143056876426299649239924886277470166498386269999031246350480764973308762814506747746426417537743693285672071484072172910526709142198826718493845454988957378991508032948277410196994208520557480730675702609852791119412469908764390184162485934388445202780992583491940291593441788949975350035377160898270122521844372484919873547944182595926725180983370901393851503129426942117435466394105258724302265194076643210691138114070140870062865367053761920661891317286676445398872783478342482486522635479934733836594075295411732184207141208584208753716008811142340026584629453174110812585787665307756920845000853171949628702037066921856336396364969295287875295443871319737089837827490602006936391537955001428774539013595040136437503905163909313634259222784027867643541435982027671671368431812796828606916510661018998264941658761790519653481269360228454748104074452492182064794978636590163835736912306808804554126954767573618920664916870998009914816286387619378158505246686883131706758162175912689434947570889967732959192069978132009160059031486676110969369435467773395830804842819871718296076871315197062139726358424886088738880969014311107060054408118966894456317655768437560171380052903983538790862617732752074019463539160719765405667003452424115081950921763856102610809169204638930928121832246787621451110989222363302147710873311996267461809062549712410190042814562750647619060223529279688304448571117054259080785115864095537663164700915422775706240435132277487795368800156065175447417995657453485380448246377662676970319920649739327797031946870846811329388380891040332548129880436636977843606294568568775772703985831440643600186131805445171701308240143743233043929608356063038122589878200610876915195651411127135020143996880634056563020518045194696621306296320219039708500521981828000473547667334861869729437930352547577042803334784231081498423760969034066323446473314610785721021671802342879451990851780450700441701079676899317660503325450039865875322820274090138278622045362974330621764223782309108353521333940224805816253789871930335094963507021527946652995402668164896277117506964523845755008096674645323151862836459871894381550859355728357777094743735930179801318726976773199307364894413258416771377503500532517018412859392837819718249694059426467995146232008865623555871387259392611864303369315712603245815822468678767209318416171075471333991702051411145491805542663782706911794768793801380864984493046579181121699044054046188965481016014290738008949715364151076887181475658925874339133601092486204873488909634998008895342673977521204712981686295901224513220494807758115119962888665126550710837479866794932644979167077909818499438560210776787889238758947471170647153181358610873794724349944128891203430029199898367460158431581390761277199275691205635244477210572399836573127821592590054066824762008218589448786932064708643045726476141747961746538969877714477874073657420075135717080948449611911860954793738653102736741964433560563483528134805473303274159504871344131490451251124484594811622916180514948809930466912953962192805542817753547840729098182023607253488031621106492721392084052350952452281877543565644849697786801567911829820619749360710274076510526654565299769527158565840574724149096838299675674825410951428899330971763087249169050158742572760239319853464925112235927898479087349975712933210473480160866450943721292445124525466018702955210095030067678383299556513223584039539671831380860422886769101821866641803263489791190822667846645357988850378932540139774207863305969348471830213769297403580904888288540856867485813188147109478925426020967656049982692490972401322929795245241424171560770393082166689053486997807330806444340715357537555463880692909759828096811844144926467972845748144320917169378278497275391287319670965994528912633748353753668163840004478526671164990917889909735444509303513569590061802187273096122610001124756486571689437585552038409704896121642096277347862559633113262432986543024567776155455348704071986382387768549561471452821290804024451968046489113821901491618564761598411109321258902534197660601459986079700771206470293956597452605506385808842385718861452462836159714479520522923999572907758788002824748788303745439316864423092733337269623129169105864063267574226383633052614599138857866458745243096550868511886963620850695972309581307094310332124192131043904551971900414695626410502379462843778585611238880583813303561642400370234061144080560587451001584542717873093275111474450585736296670538743030618660036153179232589853589644117024895540987869423133964579089476824219472720063079734273598596571659220097914128173926373982828702914911367576507094796448414281936233299945049908389692121166775242259143226923513648969253057680838117732996099702523936738072659819617885027303917503647887907598524624566609151659634434194991205168469553565730223543144798143487875966687610355618450458930907758310620288957189927988345356075880912938254563135904737820473766934625021654218147390836115016525441008722461265959897536162327911217148904084738196320786621139675366600488705874330359854937885258864335000180061378245001317898110672356913977162247843232062964825389286076099585016163206564305931564385593842533341309633634561660245829260942159184324956395516230968283182455837407155170806422878352477229884264776563385380536862242789591877791439031805915520939808763621410013803633040403167092342999676367463161196449181455498882353881626911538005208777009100088328429643669543054245531329200542641248024170499929491015940472154210069014731897179197078279929381106132330300980835470418948963090034014800234142172717376226776095351937401360359688654680458918155459106769354315597873913135802607879939597333031136774534771349615013949930240189992513832594806782819101957917693733035332615938483316780481092819922033693748395048044110737575600037635408095026821480152349334654242698897887657412756720725424280059422872024596374191320424119728248732041404521150565499518582868144813988152388676364931773854848915573273486141445600991063894848878436066331869231136970443641901179110879087233636843792008785902277677561344025705918351695975571686966429518710257879311739405403212869323643301211738818407384725122844879052408329461791864196930129769172171049498934477045686085378349350275786503186988518108237313664894420975256968722150611791573167885128585902156577306436087242586925556834366134757251361250780143764973263211985419354795894313651505377177088341230424311751537668206098725517109405296025590395248853606636252276553208450395745695893493327322059855705575522665129870981791689610731234768904723490367108654508247613534395549250697481682518833605890161343222822647849133092260626916712316297036883539287250689531158838942823290642051761257059380530862572072868695922329711074005089926694012383595110394507777351846720756576974271017975447300569162142765960163576249501729633887559897413527366699937316587944258101265057294337011248048074977960678333128584717503096388431287089394253487270215053771376594808561320342105763350228520954830598221401735419918058081866948107777729458622746941020442653251548779258440532843364860988786475465540555354017496615871719097742993523110070287581835949161117348604036815713324611336758551090394029388197444620586870641026106263952164037968473910793649854010370400292262668755312163883424371618468635356285996797598099657358747835868930835525000921082950654082372884780222549412636690086354384069907457576003909349465082531543304791742925064996654479394087964147598755817324334583776468596262258150785750264762861720243035463629258397103052387873966613365630446875466412229043561355768706974037439972204194525445262512838902298989345035079594477462462570812194193345334452332994953710316763801637164686259156456501261817599390187237290683017545693489840582822592488507058452784859495723256586726822644585969468082899691524751795283586269546046066909901943790831195823709847323118347161742921972535215160187747525524386187335013380798016788202242546659313308877298743129581922696855602539638119412666009979377901776708447784600142340508591924515689323618594655640444330138573129888777198519897507563248567635619343823398723070321128741195995115950803822390071381190811293634455426840068504568983973546875040040950956047931050032692408583922644718760571418536041756950956060508417638126331613047222309175240783476780411858600656982543440911738784796452380124826290717616985799370076191972499257083320567921867567811306860863839482816890066635407922456564442476542192624008181600922012928088458825495837156872767006439717120640730323854386551492982114026569882595275772448610365313558246813730816239012738770204200370294963301121159789539600603552429842244685350718798406143116801662232930570609379892306046932229834679007471583828604643340575681795399607952636754224769605858433472289069645595239903206677454092701214079596072261352086892604491379000161938443319278996172727863381823184067613186109743064418338343167146203880593571707487379110194898969113087697045424491008617611721021583142831382215461516271316763577281277096746417354590147428368479789444667975464151936741508282369585773423546202494759623937841912079148392056121381306612902832639922204247093074035556838011790980810436955443815125026072730746960283009357744931648448814164063297595375282652995428030016369984268854501470082421523064630964443758102718532136494339378952549594000502549311557181513651901210893139549642419944104424809023428655947933684088700874360382571303756233138148462712321335091286636286032011876150415230883159817567543502166684449925180721967907783963795654394191116120567607051083065505355555274530307434278721607191352664393835481386984783989573800328242168153443574112173588847014180752599435106074915399149057685210428048244994506143911078282751808543505096500642328467999178174337748173601648035461515722822633040520736531026514339988652619299826386160305930932595937803813319064790646064761265513953927354531400539167862923094674973073708531122396999699977223511249105639815372230085411488211512937431442493295663035739622628763107310445393298650591845834606119140406981849258338297793142434915247444667430155258945243188835336314160295016718738725958887507991998173659218568730102127987497193093130956440721967001013357961524073711248409063088100382510999692366482109977414156416905557857209065565352115589366548816870570149529296551006322859488568642137318525013685142494362186624484467050564809092669624723517631521866711184048862157958146991777340622487938052223638341413665231869019248621997685297962016068535534234337461033248735957948928423963491130474966059966209338462507815116645366767766638789648394676160293372698329992011014091662428607798177681476030004855335096383292503137538887262754472111818838631796690048391433768027958096178478561660977628311863641140873422069376789323348301291220895393193292128458309171265150490546697159485222286938817695056649020451682330695149546269128704615653286739463356195057200177028231544250760466011934577835578179233249338726902573320855858457673953586645693262103744396539107115184682309407052156562774923754433605997540783613846830817767504858351860473013255635713842127456576006614628806454178381096121889818857059601604381691775063639642500487939725928253178695442522243011619735109401655296992097369309493547285224095865575278637925426143659631511275585776134043900600577119047854686512013840098272915582819469140161646773656873860503401578510525858371001289944898756968977904762486340210475188722189437110265357698038291765007665672452028412348713017651282943912288370699137858035733909371859851917588978199222864097035041104544258542994170624889473435113371389650858142319999458101157927447514054602268120375374574334412400283275610624400807968552502493496295827887471109874765400581329913116730879733211591409787521015123578169420100559967746498740139369059655465993584390260330682363332062401742086014222848546611239142748551267761674211557558006330801214366010545643125301864939691981210259864280236750493434093976435560683429567776648503757081259678503875826504795954884959087176643286136217289144328318893196179199384887268841861901485473199450512822788685071991598145881844190426614658662334599035646952046608927196138282870604396322306817334957227517851548997990645829193447894657944457431324860287270347570906194016117879885481967163273723700772727777928236245065693484543087998341571934373876211569756595455412964640197855320045431037239250556692759291625816955945646679561929235970129857069761957268057579252293435273579574442766573581577391273135570030189708356602848064953813910744871729113665163462248128598909653885261586765242246384494168335770451296272728043304245192065497562178274407870914884418172959490262450017048528903790828261804324906218051590618807181848230104678510563461463129117777446496738767590685936183439410135678841543554482720469318494926368635042353034443034611946689893768893085176034712543407278686515702203786126976925846508680725422791024533984905794218899735337327443133584971094610290390555601229245381831779250805236839094405818706143920710112514430663867708356558584844333390267159152351866901415518898309732589671811456888872209144540921759470773494764877872193077111525415111716932924022083420982783285384198060586760098075497375365688136857273592185300333022154023907711416215971716582776046297435412915680876422877989894138476350697195693768904329286146409223667244408500123405165836616531019666870351174528216698518266557518699659630884763033689750627369824427648308580811642022295504261933619718189093956728607826806909291743256767395630809915504260214800458908427904209615956358077127048955104573599561588516180303443857358520178891694021790783407409297573716003573310118507612385251559568505869370610484385649468239787805003273367540726123085494317190564502345436321775949516514204889581722264400343537975603706195875690887332207899492896756199329357953334002689358330159308857968778206664526561941964131532295154436434929464231124719002914629048923561092714248916508642751842876299378127224361254303999319481245878850199859878453783692970255914053953364748096055182480853732758478403601770146567603714101329462512708192423700070803372703135774931047942548761269586844758572546163376234498729051021993621827160706962390814896021716420598667283873769947750440602092393687012382537064008184903690602086284959208423608148438797563982823162681871863363324933963427150687481643563112814062561959762672658053466336191440429111563670631154552083310946991445913638152445757297484357343373046595400298372986503659978276375798368809763904040401661511038305043551968603429513879240051690429940036500860725396405816892616642254979764526855887923395138625019934381593262234295454514557154949098753852655758726795004629780181371005712336767817845668560223246815100644787698787155499324031844676699842976248169689142938868355350024407642252368317579787940658600392169570472402055641579465793049380196045822796400569283643424150195797113851440392624567068782162269678909467050613197007757603594427733501603460576117146325864148921225931907135282876493766464906103068629050349201100373179994430200413987580733425730564341521333351642403107006028876418286351274498369752761598542024259336055500545800901820569056254828236104447706684691779874384518088601343511935829005099317659939328237611506991387872126463266630367649763670651720153772216890783844815829744878029933025393158617127315851444806676172358241701599887808726125152654887550574743074654379511348251929836983053885484783857963919510270956699461339606528956521476960591457565671839823516412911584278139718646282067302323159395756433940282065596405976842142349437857058722709572208586905029372967797205446739489948109398581936231467427991773527885344884634912717686152352227199619989169287088354338932567984137686993777025545542697602784644890354755397493534803276361862846567863789853115896568519645664853337432664236851634412333722008915904171558711427221948570336582707984477880820267181567567090062632543009142626740819093493576885216317663169304077225554360715157606316186006907845606041041822631933227069986462023275222766085702162362864057895275034859247538385850090228823456795194502398617899288035843531565196187250814142905417916346813023762656807331295827589234353553163552289972973996009642772338322050724581669263336362954959572921737274424293112601135391955289984315622500821731692399029889110104707359010807742483141254938685030086737980469371866527794232950103946338267619377859411045448718826352505303930345732156187588726471213151792172490794873025898539268793478665719701566261727231980828340816035601871783825986341831357780016570792907559529497221881304849046540080409995553296761008688093376566505256741700151283373948724385044319562867751099722642762078633701112226179827617495413298571623609419105814605788901133177971864398018899277471984078458361053972910147390691048968090809554519151189054346144441509225601123491375081985592712555718121931250117616334735803028329471159497236316113560895836012428464147167861298431385208493715454490513870730685212399456489555129803036257801001461602305978849099994105995834592721622860546276564664268446303325294604362686137911882069866936201158717083433759732070229370401880970707682740541449151722559477300350816592713065187604623674290134031289159118083732419160217408855447309191412784831788553468567793563051760784598768439321677784346964941466792900637305771510378747401113416702537152887135742423537657082143469900393286569834562192568170940976880508016706299303408049665003311061837239029623039263087092259763924014793180137646370035182468818927066745163674748295865832784776524409386814865515150229667747782607098039015552475371852694676027044885296755588966691171741999567183475411039776094645003020681582693100776370745450573228839401268196705629311559432484491165519811032397467456947174402575730768151546497909659695227710369025857351147044579705773659767044854074334763846638318676211086256759244913453331733973050621198870061716477049185765425787284135045508941850551296353522995436480000748132647437646220031455358807323004291736047003398979012223376910617200628258734327068587093770005444779947809187712415736863903372214406804502360702738869501610589484516999121010878940225570315902924911471078776528902240284872569734764522698423515450023857503222646777303027912889539763608212636395735275170908215906130717700439577367162451570846896345097605155393771459397388222215295735886511421677761072113268795680906721178726073640241525025424900492782637368698653589755669665156083662350221442118356995025309240955761849828825774092737855118628424788279816888134275385141693233594554304559048745245770588175217324938592522502509463868370775632442051806771780150419322765497547635322992763359262122097541242205190613275943625989526151099749691341252986811700274902747882255127667456145524227698515167826735039888250028172917256880911860860799597756608731646070427845895167009543565346738022610916469209633978018936700975643255149239501180272217330319592919991342394747754840181072170997431094638105181418414041962793071313469852272024865942647101629574228221309341346336414783505640910527562633983776125774416674764588922802226698670560080991018305998921961420847905195395894687118943623962646849014408379473392166423565522853555869154679474103654852759122783758916192421201137126887001399439097169884632101039616214095560191890938266935311539220602181586341467936926403513102168475029173991317469830429017619382823541204169961396827936588741476321088109493293162138772770033925029443526578229034379387305619785915554312547449915004709401060784064512086582088775740810750509428867071982728352423624091170168902993296354875029574458903300765497607044491949110856939982966433084166519776984035439608089783996101469098983722056035448407778852765975864970152590133455359790473619838277953061780976986907109978074876954265420818173699921891749275670391938049725117781684496344525065578901151548364081615382697940398942495295224825593998618810941364032441202636402783669272327651314559186684059167644654737136806659802697479755724449725247494933202736859326595467208254246034893285464707984290997662857474161489173716419609159362474878520207612096106819708672346025936938981775250404072131608047792961563386253635337475932528564312500153064144730807571147514935143878410524159810698889727434079622490834897060288935583638397860183629910334968994626102125161488200085842026836743213283926949945077273265190227235145741084462628061357405895564168452535350056134672781745820006811985272631966509745375382187563540241046856903024227331981239728057565178957817060099154650085385188375434942413377121314640104897132283445893847327729353477144713546514158781697743684701940924466075275703090704704137645429949458143835306985457609369815888960848940610068768292882848305204683071156253480221125861426083800283998498375094751245553405281224577712232896235354288241216616277219251647121301761134234462870130412882450776469947118302356104392857299349225992725984337008506374000853525635838175486897823269305594420718036131077787759737413039364701798131445539172121300943093974128443342032097828513737199740216661068694672345708100763798833201261676310468553821611924387385594645314555337174830637816147826609318950706437943768276323699004805598526322074018753914939279378402496935116522338628081919801933351229238565735418189442395061659839791336562094345946488188889597431855776759806511471870766087983161395421214229862916703388962675411402547129514018721471691348112668162452914399392700264549333726178570888798433025762169573255950127439300809574059319217344434756845669137248051854975464474308169399820007106724458598120702169694700415670826236425472742572138578981871158114630481796583371703199134182424159341767764692831913398433528463168471372526613583427328303208465854287974004843383140037530709517966416266633944999375739779196227350533293158916868834140400243746910717050241436211282380052760326102297124119482933113940388761456113502711999836944595195622101746583724936944078544632831562247819585575968204786551051891708448228231548507546166987489791906035521931600235144322361146089761283970841362058075322918437217498386791606061459923157992655812416768237434931675988090619891858395155894520974833508702228634343676554583701126777317619639015783248020542238654771363316580771998551503003866697236662843883836619324447816838842463594296905917011814608280591598560304399761490019969725460032741441137886800858844001781841785545538119183095805460281407185121433316127304484098391958945513990294992470576915725810179956939055156963523179880866419203350069418382832961276229121655355138499696968001634224635082479467938083940014837324780638498111916878074697191943450637528603462948968311359497878975469591330424924419010224069206210001114204762650893516322197243178846453201718984818469261440574915317283052935976862784188512506049777540730934760365663544414676172116519562854524297721764450845365378022043781785668042892301467345098842201266165291562660378209273410035756966596026114551862758189897196428105916832523964917425552320219110996825202039628421773202890211999889650429751742214816792306684235053259690967812877710296772192688813960866742630938053428461844889845706588250942393690245180841238625877203655161033330924734967326318553393234844268024477173778404766504312884412157573873288768768738629719943614449508617986201378792304076037790954733666458165569923913650729522060541837835337797090863451508660018103322125252781934273632304860711585002543601356552755095223984334231171974775359421892550168851083359826130890193024503832981424641357697264448914434786293844917969527687591851148681715525729780851271117105803305915634985972049616818604707602033799770928417068473383083078216873026383291232278329802617661004312770460075448319029417115133829402598777808831724031549662194817470268513495993251030705177889537109509127944321230673939061117967114917683417122514401300279925264236344261274415760943302916880310234045596702315489671213626201860570820374871675395160574492823058605507654523903726961218439949752518829350070606812941324710110468923927885239569863815849941408083129077818066484154519191064545076119370068978687310139523829213050793556103326977321841217764346463778302320570624284670510196330175201722619737625929992398498556162572486795236995643493975870730591604045243542197318840861471009928654437495260911143523385324031298255887827658549652866347858893874152046461001604631978385456265522431292052890542575388574319725039362501472325718709314402930582756876302702019308262584459290949266353260917608342334440507104343986520298268791125019837871863046245227031708808947116140644934219979234611130579674692885969668192056368560867464532803925868679162954497963110347062601626024715028881332426995256309106984898860694597217466510614284251424810791629108727583894559900396892546160235040981082157276021589315031346594804793042713737521271801233188230589358318615635564827548474805797969551928210918693061496515289980397273183833617714916581258869864244481650342673424075065016332229286905792011959023954617021586723155813191458876295554392507866317737688147120487404371819140361478784064037351042826053712805471799683639499873354895303295829905500717557360606723933362576523270958980311260153273854957637092474650188174895781253466797689940877797893143211044153129712623393733635519755005506496563011303124700670294238698549824510015402392416610994289251124982998469889013727430548932878330609869708699533171815237096938816577665725701709302459807351349727756276189311824543371941205152012444848785337674200514458442357512942270550082200640571708847884849915008110815727696465896456922079717104869138760807825211073017475248863930544995611697692675664627705689503694800360078470772562618471825309222316172124492029726558466898256714526324326063918259792669428651486919977190941946979617853946423364056155568289770949497707834122337297543677675305754473083082447039022057416803127447200387218465786165281497248406716546786357739459159938538612507046645670048255898014477888845321767389753537879318093229299971453979636322577528421602369310135841573706147206838657906800627007482208381841224911355913642652193135612052478544691726091781029640688985133942271133131963568796035865576182389380679637541674043278990016776753210767880485820662220010336024559255831528595950861899151863680488379342764017283308073868007176114677738716513872819205571319314133591145916020017504982210426178679881974684129480767996849592309820644341419149844427641028310069731754560969893092177742167920258105988923260781461149509351595477415698444525238409187787133466754460220098524618870812530983257878121369486975712226442592170970076302871385803266523106901053012272110197888842740850983405276062611110254173852813181526300067592179116121260575530123798244005930975322686201676920367664662152538734335998049286599464615097018329757125309564844469840566665999258055494961418881885306441743331913606368125488160120152615012998093010951218635066997274977834630831678550891690589829839340159622478931670821274687272050042015807441941962048615990220129638292744639891191021518357924536526221992448626436880531139165405392406802723453895547110807326380557251536896849359407610972141146930369616505145525213463457358969612111351902667867686329186613527245620869588337591916861218149875894505071950853596732897437244736450519992788740685778110405496154468249234103216342468305445787233319479637388453327564325868015815670303470157183468376131438238290355868258676554355615004064528564900420803375603636480284319750324226792286121439040283201536024153039406873439384814994854758287174152367287738249579216918243023693918897918283328310774399784620871414596612414140262701280864665077105692399001238657931554056019957396908805807356213414975949772716869897386626884150020801232386951920273891780782797453031636567838250730190336455322277474847032462455748238700683180768917507651479313905493923664141548602662980305997326147348997465567899450258847390424971724218204561792326434527950960701311304395430069975638319946384365219912840324347919862324810587845661239089074069205003037534425640495884770507986464153539061156822574319897330748541596959702261911944264443918970534499607318084306201849476728010281030976025330124459612721691605698790261379133863080675510670778714372563742234784928986244732641324617468757287402975475041694064165407857926468272296462912298221393083080122122451203704628495604058776748260318448456174362293626358713846478842611286037857305792398730440669878050510174161547925400552859834611788539908299188571928899610875106005217629247056675716873166965710015411217575540502696436173957467262537661828014242776365345201563478426909461464348790465307341546940067518999509687067138039380379598686090670997955508435840307679662817135882608140453432705381353029602211100393879956793606165327625026937486309483430064695891514097247710941370843415632947538076684814603107943575272190188508772994390880215778906188463352258180688685747388988673183632326012176806891971130743573513855159243277406365279215894560686617319350128847584723633739045107249734877857638787000437357280816920067506293788166855821292497720580584362049972517656653286627103668343984400386836481488794523545794707264275875152227617935012179726342642732177459281959197882366027530197799047798568613322789516300821770129677936779839097877700846421381006122564463139889113101195492123640995513950476160683306464637535236815654686301911682079329475921607579214483745757168558423854934632728663290940389791780187887933995332539021953586224086370851516769849603077545189501970614017643830709418089724434793742992177563749084700841403589516970971975955392734900768890349349816804460482341974509660741248432538122740218379680274359987770198672551787946319903625673201890417952692088089908882467970991552837194814867510709388009106060120327862003241992741659490941252646159556303977411368197128682760846168614094132455803140631088986709447450751788348341700946630609066612557029742306084157089450853241364909102230267933699757770575706866911849526146870372382871304982648804732610434473097344388326465518088259985785586277466313433631812462135797702386485884517216323669343211400374421181527709526737926143961550652542372088584497380364761213180775947501150692220391574908369619677494217697014608246120365029645065494384124215242051138978595749031273858144434026840316768399881568633782711261210671329640732013526240280785918658844905672035438310953068075834995180581526262494289716273558460571158095320771814213702621040345136866478037758771001253922446007925788006291928992701405553738877252836411881732500161699917437956720792021305578183902393505138920444215356998973289157412438131011078203900934594352449450627985424481724797946137538829088919191972297945929202272785370769594599103765861476094752402804569390641529953563408519843535829115366436707627373906651649290688001535940237057789108525195654252611206958595443064591656488745285821411502861491468323020585834103548069890007913108105557295701105320013968248680527435830533957067605403048281175366756732235942600786830975904344745382493293503908465447221271673854708003492005020937896473471692442907129949977471474920319067798467822994177373280010016159393057829016937432470405609164249166934072078457755585939746822490381864966948482355459385534423632030059668437610132358995964938748326373980306749910775719717149626802065549453162760904398534479149779974187637406662989528747840267644404349127798398766789133234199887339870267988752088395869351521354434026064539619508263680277991979519629794176577332675670771196953149039591492877154372663248797224733907197148448895549422210169165698128649710543658813606486702517349432132916838494587276887964617049552099547972693031644804208408402921026953342238731130537772243807561825584584588826919322567463784796512153618989392169980516363449305715972865847359051555438967784944359809662981456666578869423806657926448796544409447897546528258987623415973402317964135334905253507297714699898482270807116607205205259641048392727129225070885471826668295753870856008571412839232036677654343065418721380258793094329295021692383219331242754793287116140365274834817317684566961038391853812439966532270450227092282240132115035985679859583754267982421944753282466197087156034016720046961304027803652263961077815147473802363783447889241185187821712568566250864568470779143668990301034725284065934076577805761763053428928497416426804297956325143414862346517456022955293621963108556910507010079017949045744537661488238863038284392873429436992394976826672741176243227162168680808011944148237392940611719642510752788538211648202414144468031041935530649986137412947366410307545818365877630355786680858517496514493753759730729428566468341831633378022431712223488143698133833224048502906084618631046353833194779380652803060572460355352299194042339248221001940792787270162161452961463899641755375056697675728931473520315405958081299538419891042694813576351342454852106428708188331661447370761183805577542225689341286801137139414580882692820273348153605184954055573408180277281554928592544228753674740999356114185569870088915761404833360170538867089762772461991202580457516604298095705918455968058446895998703917251505964609809868107838254963255349571348677827841299582893336739166325940374373476510391890613103584833711130267621918005994219187709740264384395302296904659333269045552380727553165953655711010278543153823829009719840873755751520558338909466628815331668643996490063911660276508827876464102008703971990645150473320042106528127252772686118236391242667073565282890146083458752501735647144536819188030030692940344561060738531539197054223574937897928966071941637453155334213277318451100413759568461310705415987625445353673791920643480664928349283110003052457476143092182519424338900316595327055244893945585871109097169999348372066266684255177683425152331599675197627482692824696546964786157541751799498187427703345436775504829651841208683641529086279143809492155565634319836770475406882443370042977052530085329120998668968488204415084688577570372769044028143958278679704894868781779132879958233825405508093923672808874067630933937421940984047503500878568086125932613917284645245689320822879074076458687271406288710539364291429199288776021312620927078280924075836720045399632703806667599748133620929500879611393390068702563965670818030189291292347792721880349548298050929679093151983418003236899306710846174158992529051288752304260648260832465486239754232163045171099106911284808377377032944626363219652341489836232685820513874412150148049500065045596056262619209235825323241829507723990190295658825448750797371325980176231976872007733418482637863624485730732217717097956562623890242876359330753112921797359646298746897037578900801404630833640121093039403074535932713782813004513012719542152687317224926898539321142904179830373017433306026050739797520151560623748754793975422870741814252430292077446321439232131219260920160867038089584617537591796199084989380166313192200080420656155361708000841771030560253752319963217587629431348679937655803041771271023381316529310730715655391644295637176222028390707836350813429121336241022251149829212314005537733943727756100523468185610441559113298385355622811215299394537965406350104505190907897885593659541517389283689842529008950709406127024945964696650112517777502407837126181186825238375275636680116113351731856495738881762679184407840298845448045421381295547775402953492261653553457667537230045118203213102489558245255307252503804313974138382160381321175020192938830669877112033260955502768754578509308615693978737626901611885463784376304616817534252316236347985270710587673009087759704014230722507336472386901565274482831523146804317772580212173425576947926995081065742864760958293460623167980403321654463141185829917352023976055745913039966816303354611937524963399538035970345762406149113639256615527845386042053379095973505239396432884702957517692996418654097701384330847785318343415606390284456603375472097324021415904817377774099009505095908065155375508830282974491241951488398807079458612014559401566286512188012424871814184192753622286117377837568441121419454967668919125088337176855056359673741646073740177645228787768059017704935391921056764995783383022048596813532026320218543667435715913714131959501709074780433560836182682517774724960533819969940396478235816539937997700916251493706911919221634407261822399565955496633545749007586328875620689191125787328762976212257407030313924752412469810213721401521268976586703164870868665740257396007108143961284406935633075694962287988663572027119821307075783950019836699768708360118529170414920330724312986441406783998646341359008977198629931667651694513030555215274338094347419920079925141947487060812809865885388949080168079176549509291591520236750768412697285204504409331134461938926554864775376236966436475051053043403249503585907145912916283967747981000348609888551839674258019757267177303013159109262001034948213132922911473796853089876351560533680703512901237507695728348281777790835980823361167067006971358487778436187164927263295572883319990091233467086331268279669585841984535601222710228833371392897944978743747579649518962631654252424288584146695605973558830531445551037623419756166093743315744376386983944676152468040340686656174924064439611856680191527414003795770261356271170721923221978782166385309533370462261831582628217944498540852015709785603992541752968259861060097813862684606146816252749464594824841222984951649229217491174723328257776676513915553727872328497639714835791867227607486354463092761242665336512865980164478611915685938700652873159614144302192679975006114983071407364825064339364592527546012891061943719598542782498207533950433848117178676529079978624882715212871434088168768508062480845453837089206855139254722421481750198374534678326581837149962670479405117583179928787320319843214138023422773240039769800452851499859854712752763175172365404074256116357872143768906965971888079896752786611351149816336805769383871522837029762680990948365899452013318394850024810376115740192003976879339132146460354710572123765801956429790356100926568215780555843629231419209508652538226158072735503890172603390830757042364055662803102809033200676658570018783873521408459557282388620071203662841517784561733399132708423740256950589508021871837071613807631344303599044347986954045035210047938574597241906790386064296107733181011915801334271025546933839827161933930868981228446753458426138411973932665737312359822897679894501240629836140598993689798787113935568791447186772516292868482655614934105314754010346037884151744521587325218032995685208787010138818076623081881107186614660701577641480451125421835963863925666582927561049355611902122779601189816340385140828667060768993811822691634696271945181255496393441510912349281175932452328248982864107655299894791163029657172876608435619841902206015460845189070199614229186508873070640843753788634812256602745746171560068093349929589615035791601479872868386022976794889509900854624853223154240735455169565471226962944765390572098487866274088763341019629828730545969701142500034676157947617990239841032496141740653631551016559385212187923102361337476495529509783933048552495859279814156182032622022147387397790232924917357733138436386501656351202607170323300464746319804356577243368878314990016658061477841738257022561125075483175310512499953908181978386187014048943560184887029132098954719343974039198055847169451127982655155365228798323652233943235039237928918905787493811547790023563268198571373557299144897572664954775067933347101323753566337635890663811814248155377597291090377722612358487504331793223162191628017143968017783176015899666483749249088729315518510912765398944879584183481525544798019224604727288648005116777468936962766649853747000151974296711693501990960557255015478315545483676127827584243134657486251957653867543100774981262558740202427030218464237450556990254514881252780512987550927969522232165833372046546779970739442095800033489078733498094428267383592971489397051668782651362341508662106627846729898673727619898218161797279965872839562235036237328832584098869983659643661286015252848361946491541240368422069545782555995347892784251840932231124510796240708977466390662284405909568587900431674710979312178638056365045103554310601399820163968602047998523638766030523375233588761189729819250099389037209880381853499513988308884999011421672087063934840796399902725234364628182031551057211910210501304831058559587747827219092480400897845550244379730541938016393592817266338969390874095292597992715190868349452420446111230974762392447392272204688728716614773443875169815470782693117413564369957215036299457862355533843689118302576471622855865916942858325731300923573638200063282263877591460269081475162675501620851276908103572560178264234656496063877730466396566158251944739750283856525485296488073260053420430695830666275067448274296863392304999214229293974890933671013988423447292520995773717046235038935847797036286468778346993865095615195909877421528415064626252053488439396069925362889686046863921427735513582512130086544920869770628939740230618905601430791704358494078803873142981706939236309267341049222296676096024031496643323113921450518035647568792026212893274193271128691371077379355332832433292480122680505558601490416623767368179163154941833086439723340771708013317966624920707538521912869878757707858197360362881149852979609723168854466205659569310861814831899468695714056228088372903656539384467186480748157650395572056692265462989954755741244852147510401513347670779200172230559060751372841608766501324757118775236077666739125228514842054631493690594204667238968898923882756883109714663062727270667718151031576328248343342271549875742887640078890011736976750612197237424234791957164545639144065028601714631266900912818302362438727991348880167234024656699813972098277147638451540125506823831119363075384936580530154856652609000479328954054423196997279432056174028669377639531021664690797469360581567627961765597018744856626404191771922547399968518697609852369670834273000211095818574623202588133560587083605264229440813185773745864497316983717743644028008672830294203370825908172804968706190232374277313863996831346908728541844031312149842068655557664853511383571454198300974331164629917124716650287374195298560607707692212028189038416339025536435085862315737483253694500175686132875455016557971178717863443982385483942413497019236206849467607697306762240036086234254878138910459401488155310108475736775189167144445919199103763670911445074266330720186508457129480911823714955322216487227349840691348239213320395104269370852620056622968672194705088944673255854314762847131545924585827779480785989634884256347680115786415077492593002765885894282397314634705686864634191061469309917469718411554235939314294400865762384335788293233614755994775202599213575508561674447004119317198518743654706048384187169654328186631045500187336148725080442749249062340090947399498891453699924745406856619433121353557758834809881118225166008619554618415105435075665726425771691104531287099153783958855472793751927672085940743562788493109327355853679524962402542873716325604048028363137508929087766385385822309581899608274246891705338985444518826127257380156799575630155020903897925318900483469712287576477291542580374659946691881938902858035559894698850188239541806801251186350860814378417576781155707925674720564301258345319185606572110884151863699030861923290794020985233538674568420883202569215111254455206667165537663570121294300929361748732750559116400680719764300909880339476405810242881208928309306839766830670962407468955663118523042958089217263152231292153176204965432541168110164925639875296121321985861011739927211403585151509753477587125503429146375007407260604605856967311315159666368886986859277108510089956736720299349278299604781250197753392114744178288151085125244650178554805188076413617828909522946237667418509785744532421899859158513338645834474908093572211659826041837267533032990374529012876247902564888727520787853953856540955977767012771076750319163496322724951964227044888376069733373160507556451710314778958723208126577188172636971157914880343029343032948379777885687580960464567858691084839369057121568639081220855405247078014981484262183338843579585429304837378995264739232383066700507966269316244160374344774369870446757869117705148611987074066545938237164189942163558467264992167078130395145339044007021089119745756420473745287122337260274106828854441457635096824473639680932416443506060883018412424624001837491141260499603967796501504199319572528139253667180619573262976635788580090968872443508059480737696767845097801048943211574470702644768792831385674989858451714561587099045466622401778377099746323482037583413471484281502006544219905750699677482901417746529210388360191730282467949778380670538679754678091293362740574051765793491837294319033109492211969759108740190715744284032758754743222039028443191683646679639021488953512686769021092642071608001216940153598638662707670140391387644421786065504274745147804540205218620605803497511310280713837179600964030757429212091093293479570643078458875942886987004492750545841253608450530761817591397444430927663470274759617165742941384462687269175786956517751491040774755488531791319343891661538765451376641275667477344314410269771925626139102344089177693632496039544193694423828247229290999944643479403186334690875361233275029007173948865355530973212913121616578509475702072932168240430110649640890819510123319549124744122445468658123552184243060334587714836401279822771414020276345221648222521714597112574057625786524855181155220718008877966097481941035048860708964064908001775032961278312632780779517665963581171614166923082830205569922775466222178696147022792383726014667701277561007252777901833033089369066383492580631831663278861691416916143099961458385058391565052730445465751148096266514917678913975893067475634512247943909940239200915157767246171794624144689033320707895082389164612411189377907946224129442488932048066487465179501534299007793461141608014151826970774286274802294310266951458776478879666272944071803756660866514827583451849712847584896777879553274582697900005970835309232266124742619080893538634247840446935833330832810426026730635928191126620271081303768996226399069266776329904611248517635612343352762302744463548637535314322862398770168573437311155522232996218800817875320086033436364780607765466244439460714102612885446147862286801822609344505638551086363946810790433842519989989291740344146083653612588956342883106080654327184347877474045278313628394946307895286101202479221482149872785299849697853299391980519713981201569352798329293523131657173280018922729741349919609968262202875454241074954177824347203414443604657661016758681447780938642430428357982451933635548605379199423466941616538469808467211086668401669798236369237392735549313508995223409727087986609434839135729978218994209308477691709880034340372288909278942477303802135246596702890260553093379534393834977573225585943798705167899218968073571317798064513560778041076886043584332197475279258340429465751416485024801015301635192585528460689726932166100567256866772133282517817994734954805957748906891284571862011306843949908599668171022959733492273559509657766063298531766546103870869659553556678961906398189210009636653542297711200586804179752988840429816177067717713306694660318307387540058246469815147192534319342366750426259681624355866356804307535949757222651324142916902157932709928321763766685776768947497209979645429658664249068107100368878794380355569967495867258418590114593334793944387082614199118122415511278257806023812600551908067582224777375850699241639740460459668117319310938078922555442184241805404656570323033107649191485676115388237405122403776341506544389366775368698498902424788967478411310844513032618679668001466977343252521657892707285776739484473024030941495089827425280209523164360612739394662512142678768591388647520058120134351261867202798873798503885724517802993992015618972638523618796879096286429718150753097853500955163595816938202516766968436557789418957344015091439558651516451709774709289205804397260916233649951378420114457607119692021044993776247082819053442814929792035015832313315182518564478496724107876605043379598644561792966858990874038347938175534596765101812407971184882652038662149544563420688224892588202035526734246523932504977411655775351901324936354408391233389244814342001992892585760849136955351992546399504368656591815342998313729442352447766284303018296541963996199629831050704729012855209388378528344099756187817458251876990024542132946344474714448972027868373409343500491980307844463726042586805408991172467259944634170139509685079624087136935495554905708660347304688780908496540868901247155340118378907546791122011190535827244271288906888407402611597890733068205024519701293012297045125115737140499637862570200586702152009120326026786035576626081242986940908242357856490388087285335307621447625070040287821682970835543876473454004913444649868786626718105311863652893902124923363584694148281842434457232436444371014350528372456135760695628285608014543090672804427224034557044117447163376616074520557165312640157013923206064704999901965173856137616892196136156184816315559120697944034817844221680094413933205705087682988044920559296559625496905511025102987901199579038302280662758769799285651180274295192142719724287344764516757878120186944547795918906566784558409455728898749895031096674663241079496993283909276947872801635566406538874010516690414849369216838756342421270362334178481166518225588405333869326138424163521270955908506412355948052234251299363406539452373881475356486623832515766776717794589663285503256954963293628736394613645532130777188156923811650253553125675313986472839750055553023946804527615184202846453678129257492772629561542644265693169806946152012783315348358090335627126998025525714349797869202101226996512624208573256337189567157599328855029056483281850888116661764897360174285829251130224355632749864012331542559861345792540807177024141960388717492630771070710889160937132759717622420816953986878203799044689474584768986441234050215245267536790171480475056704015890046018589839830960853303622793616259365782384552092867902216336809530975111495546430786805132971178098498130894435988696504437771014612444026086539007848348622241840702852708300326821229764897796647604645638681791459592699019741321812230733162034952253899407473189551400929674407281857413816185153642411158855032824461757816019774472052649820347917756460798785260355877361411793811526132409334263339031306881030984598062568024894666783278806253208962480527553572962466314365886279116272599683622957443074002971445753008865875376524784739726744486020726865928035280465633681647383767394181427206280074030688695672917561711710134205049283390329599710134551429869706059381151789028850107895961881434293519760120137321387222953153487277247895497029550172311476043641427433994598592800121553299119577140365736937198276466940834961403590370277281334566349620490054916697224204441549949039497836433808398267749609813762459079569520295260661305894236964604971531396923214226369909566530231299796349898963633084310338842659875248556842482845476142596869610265343215536600918860229022726472155208899222759073648740209216825938762379365551949130888813116718580582627251864204707310551163610543908003097595480045725207444682367378878909165572952730574364747175317427224946356273021107357929733175599360280318816415126452446115060310021937071462724088009581680779894675667322640988904493328328640030027706418114116594019696483650297951021302201869061413344898875985230858963902800895705724856096796259833917038202742125251891296337299001312979538414143635534608426863365584847225006947718303592493824946882703623042330414148534664099075599107650618143263485570357818653113992770930218734282397174034531803931197490115258890383420441164635827756375419648364688868245365761639263036186409623162578133484442281487333113276698329421793133888776907769629118344437754664245187384016170147165626643322134980879246742060116521817862798934685145771476410188307426812477216026171026287690414929738612093071602793596003251124342351784087121844287247776640086886118230239540014504180025763539138087926715387530558876732470920308859570949551695793743891379367480671201208260209861689032471668800316241419503261102868600574581894669232062578162614571433689775208496367737403963675818165460245228441019593698861046583265706870561848055041986820136691276796945381861233177236331931042204314252651643099308695306705251853197134200493685265463815196058950738429378363708511914978139414102633897257551810955227648127062961670305939221956861021686530940262465037857499312349384300005610362239112300640413515126637043216674721453446299427328428278909791172644200006221660839002400773742734244853459106764558839555114146351291320524569164103957981180593420637566538668280954619305260696792387301246553960756320547362325847227033724509140327579373835533239069446684599953695981276683136952333910483581382295427155123660740670079238759737892613419139821585919360193605980379033036379380545376271519945348086053191601727553996188466257521089888550142352074325909652820635272375425839812757137501154411944823754478572079346088362087549960125959579689731617798495783906053097098054864432081274938465932257994084366299591357666960233864188394519798941684183218850391575686711121378502990407463127358064485189264060481397218619678677724160114768365860993648055379742122396238520245252877673169108910523490555958579457620030225381714255823344415544314376292240878030425551951208940793892853603609375377084442638566842986863493506558375616579486321047584857584518889407382383049637777906151318608570471140602015279698246629351357203968081632782482520763560127967025901470861738546349714379961714201003819659985519683493595102581140102402310936536050900583842061345276794218304619890607948025715252733367220374916272396732840140013351285821336806515907313777520730863567026211391061607602071610654672593384841311309197251099731362660878073110783651875243202229658321419859394799380754824373995374451442599314730646030902825175324670562730335444005379479115062523804118856094272613484850069645831945330890120252196161156851386639462980162087544640672175235600667479932764869212243857646907522983289851518839233635345120866993917094398754609646416978353322686883892725038901856416827006288343667648977372425417364448999126442376033565073670677037615760691051214457247417848039417558789835232712478229979364237982234710335288520879586231364562793197719388051473559721527135047860988130281927956841434628500762317971370019958405043857139497438177534066261010854619145490711289927420229344616470804829009712232336159775260164950314985438664215346429074025855576425954948591823501269138257294958444949705470755262362627673587757147369349486315076097021725064610452476493086262756032526464043832952373941416957414853582564345092846158931202393249996833653356998414915027174825753929504136827736799202145650580903510373055013779547411269258658676892791653391825448214846779676031436290860380163091615584128989671698058800438372105015705215872696839215685964499868977172681707488125507003842883060351827448068397703182600789043888210419401694978275068560572367828089136345681916783076293313276908414608604701601116337667711340695464345617937736600971064459892358649006464563111316379385053872263480065645002330428163735356725980951510411598633730315936932347102123937464874839981217008044900919775164314628192510045822635219447345656251962033727574307000809118237762848150945736242287441967242241444570499618684986106864135040132539610390422680045072587925404844950647746576080862650795543253204524299390698827977809136684099161564607801803413497337253288872280145119258946875842108277657052261339854200401244431869499644232607182544677096202781087022931013808897975127440152595191059367212415312217697739206521335639488280057469333827998793306857116736118369786578278363618794997800387047823635304477968451222859157647899864015631147207108863073202824731030516029084560681928012703164011121831920920995870642762423126643090588890832205603055351378627546257373837707375567006341755517916966088203174596194987079354934310122370426871381964641703602403000984745785433287881314939823852860585021319704678541224803633907021202658275046894921420911380565542480842312298272388809758219332646925027065238388922825691020441894850137432149230152599100898566718872563303228996839942254614651846024800912177716163959494400520257058670104089756489121045313474856405790163627579710024792793516622361323715616882008884368922112331830298145617811816349912823337664234429995332602398277222805646755715693417295008162960998654064468093299315062048438996598354224228756319440803199960348975737507752721103449393279761007777998942571041140601347662097480213458789802481641257329729556379396748758984182874158404260806358485239355279225234718092648787833977839014071144676721091988356488506313019021939882529955929830957881964443757601333471151072989656071493723004243712219166284915717656614606844088284427348001485231364572877069855668436203125761676380426422392719772934690359062429009610073344174342506432773440079925095351239135639400020207291444160203141210826641626669876761837503240051499266398356452960455535768032562042999700718879286632189235638131857854772867940655174201021229496187105908616737351054382310020058475511893990202580548683108503528664664165542700911871713899814876267710406842813585068280038995653987764274936395916812417382975520721049573156966751798575038422848418222368903977250332230661129691271285062846416030760717000601179377228081924793224137628337053505438909333002273802580405593415742569492685269159165485541516955266174192609524757025884010513711338405112872448443303558873466739674245559512834864772838083626702070726133607510440199371519493266711169787979437661005063924596821375916963434881763588898625198541467503474176912261084768008010118878306978718429815156681288324250576433335710381644811463092386041358180525023744142641691284474592429649229013979140270997495569287102629609750314279589339140174111984119030758360312376177472914682721585791712669108825375518778419125103491477816793767622543155359727825906981100453321937937602273019662943573965358189559949513736392429949529079085547702013122409592223681362598047540071002725457545568733658065348333921599444462605502071214271068740405733416546443097813610354631943365412662683409531085473192881797261421636340246322308160313993721388711815625064371561769505552804653086455284775232020469799318438653199387672286850397797914701360027173977107647960832761280547951576760439704208374017653676080731124801748940345994757860908115769127527340193031495076257022960954055242979856927565862969433610585632785675075252220059299188911021666377858787374233116700365427053629554849629253289154813792832890704500229559871448791893831056243378160206099165729300827841414653964049746511077731526457217741659000190176366926195586875583630349913897626519191440107064319492296647259122424495380162670390157766529332310756703003062464622900292675148731962249154623378201469945051748121743078677705828816638104136655722767300607350529905369686203663580421230960142085955059536413082602182162187249705685223532059145525460612070857808209414503384651746870615195087077957531203083677134165085623360909177679767871097452309208062223938178706917339583481365673895702521513615404348012476092500828466789566644648746027827728741664216757117160833619973089034986693255573916459926600521331301578152331495206408313284745889516332296888745768682767047569328252279656226425531699064969639615678101595328320641417923706051996851010194239922018624498978886822717507988017037473495670499264765111364945716997815583802567088144982679170644239239076927441737368880031516345438662627483835926765994521375060050316758120984206462055406926533561300424083721647359330090958678177823031089881260057301214341655525382011343143289809203302511391886968658460106324229983790048391512286428444666397871871415393353073104001674598688228128762758451350933089378648966743301204661690650519952880180283311386692015078644155252458108300245006403860124284795016407277060306716876082062337145495474533077135714223939124382882714063194336530819884555391982124575841101956192561926118907124533876916817449121417270048612033032346500389795820575535703936184387266266533887594455531663448889740461616748142958587364672922870956243302018889032532938316773889238116842344379854553147798557536985814991395578025626219090631340206159042561154108597659206566023308226451641667219907293172459499335851916569841214598411214167523489617771979268827534334343855582771151643139029166818385013881163259666887252922706533715576783989748485032684751037658953203539674023307043664204958733985004469514063172739868268520088798548020283439037584617568297909367300442029230574483312552417440068267063944880563585217894980429850630760767358938170172929988112471847065369846975829221211053532783828376142391230791433062264793032821368789231880186944299247312085501659550745104977036655176301014067291919485787518274896395837026258370008120237572342528075057586350661227472348198605892504194276584316083067378107209909930033674345084855933947642800563032276914866947016420685673356342961462035321254750399912171438502376605636704073649481071368236624150338216456159603031681617644208418909781433923223295729390447770220574897613685479400509969253092541622688406828834654056599767268921701393010248317018044048232024796428409115724935250245614312286911149415875305896408078579469012196347023832454580388338160656737331713536582878667118587095560427880850326259738588405691249036940089032543800362972443077516588424342634466593393709887929824986941056651018890902829385295580770526628102212274749757544960586746702141997895915038256295281704488813037769294765552162298007675267477411988781727576049691384710413112060355521888624292180498126270797975316401380677039650056411497684105494449844920713295974820512037467626225887729427313650181140745131804814423399008636484888471233839422456753159082524447485775373339099862831199223697356655089924003558268958567195904897331439772675219994659847051960271032334276791396753537774542543355993767412627933930838866205501456034651262334527922093479991192292062069809241438564784605294196823633658318450343664630094800627038753910919582650478128191937862032913246030193366691313745714860094327504585952180600023947434222322713317090336315185279624831206640382924507591950344391918157151846228616331001398689337574766118040914013537662854004842586572032217820417988443720778269623644543675334073373178394523713904013165139936196501757506032142818211418687419578794862532078571760457609871341467988614981540240443441010985435528377964800655866679288604095692286623091441076819232092577156667372903589634089194410938647096914961414581758534069379274860552797403629100401626624944888468433074474610444830309008888070021773307162616342590677651361921344596965349667852565192751182168149163740767081360972993751641007286049905146074654634429519514458017571847506939261415890249902134257681383707833243533381544443405663998363299387235544500163754077252727919703597428893241671574148995754701793450012001925744220395615144189776879538542347324494322651576821931929056645179045910598500330350549458779169573292455531715582879659748352557177472239046264938468814364019327928570043761689540395996107297600022488959100274169818983144529392998649769095684101619766121752841010645884030823952241882604406686432033609186930904055552659286074460852358087010334031344885307253637313773574226517747297779142204346740094970838813244379484802492501353873342332817412638987517195506606516080522141189046373693865802124555406764289109798579524586406679282780867679093371906594441254174061061253311028151882548469251404587639133516654664930760386782152660346479713649330688289936776026849826672510282375869406954834404491730919298502229786376206142300049128164277483020520016918846880820425012757640415482240864326487023510773010359259133106983213143518639060415412292773946907738932171701309401177268710255131213196580876200524539038125164931568992360712667364817237040488837064561072743025470225502265595101097920497152727044314871087982897848472230500782845333465005073893745856925238102065969866706919512630310045884470331172323194100655348970134774866142274642199054545637939720804220031473780312478548658588465527617749520818937290550272544959413095577522825305867188637364375388760156019767586106862072254178837825480799971056387553947958562286586427027457972021598364871000559369471044069789223506962551674180499461185982708043965408290766735360550317105737474580655980593009498305653088517567099486398932811051753254774559403147742647565111952072911373134144267161786950298703801820976122312002835216184003536702038373551574540456574593542086204630620225859686311447182044319955982682074303540056963870892402888760654163225662238071384320988473195211070521711931073553780237262607464619579899666574499990692931647839926535686643045352741534863925892963110791120363671692333201468647249571802711525709505880715640009194507832158164038397538715378125450620492517144858691272338649241689019122601689761116962632535087369221367272187672175474799278375394053464271008088414490289703289967303949210849105744454218322499873845527939122959074806038017214416760521759084530292422802443717090695729450040001920920026987664889185466930205773534254360086677169328519326547742630600668121700922289019955448056134994535311088379173550305813617898313259646732823556516183018142962611136055789031278946804705886883896209642504008598053279090850597543296026829468295539414298285708705721153582224469487640972714537370734970480834518219280961626333189915073060144809626815630748912210132251545625371729704917428727633087941644128368855858418209678340768745362180853120184467373029926163406434591047057197539792839584254528912271443506867027921459347732394651083902065558001284598130572984296816871349118731945967771064816357747774058278709747233322682237639046277882114734261682186529619675225963054777078783138102607181885843966075902924008835404237115005850693125144261340732828190779559845322618129636267350445000742039349499683843427983099865133141593529466383274538222562978491006481591944027527213038022952369777127316427123008104047624443713285005549285091993509570945788080304619994381220606552506738695811527832034262688636113253675847209178058670198916465083123799863420750325105788058604357876466227326206624681468794182139045040763408957279390890107084349539875816586247307163478374392381784598534935254621036556405830134800093360992567347685803874556566731129592134924222190955823988018418371753478492559010790519273537075574735991519269250134204337674624203115543068202621829447849131299239477987009067156389196118929755457844180520715342380839708253398531422695272498770433628283529966567820110745934768259211141131384452611654320267886464254396975518554251453952003714478237605263016479028645775620239552865484535102530043974467565020915064253108809481157328178626415233267118562719532716070121405779720275215774370266764272628929447562272868529724124077852742664513079092157299431320710044613738907012482062363576848679298534378229780436163821904678654029556224734936108179348462830146654868807239689014324871631183091277925466582643679907036728765080503380371714271651777996179881039613972118756758401413095774083841587508634340171720323432205362216877362854580125419409683088178944069521690156068814478552749271865479819644565214742379321280238908722431865025436711107547826182355651027880357241966868699685405753917174873048924933376478137896807391560875496954013897982537105747661610865416240272202823556071061378235233401534760632851687354394030529229764932365232656963221820017431198982652975093694390481826184299514260406717260468355064373275232469414584589581058959309923958121081931324324893144566154312881609141762255922840156054164093059681081285635281312436913268469449172203581558422493493648458080647256754688884642718131313499266833017235347514181921895274444395309672820081334557321131362939560613768203683530403808961907188685112707731285930675650641945596663250543006268196565379900017636773941574072982204971932626552959614976327169004340014086203889925199734587414366788822520459192284607434590729661496432950928943570061596839306039328377751626638346978356440608401605768937059921669812772257257248675564728821485646504624659195510447272109721040616790002842580462806972179498074150999629333892298429646336253853857246750486881730390009537644261309562934851454850649793935759402805300969547326624468925251830939385292967468160366239835793159148754433056458665818542592891710788776073223243054898449875023761014584955370612357686911490381470000362064187895321343497394897132736468980713654807212286187282658683606713864370283143828990371755882212807756971846530835970101147709961435612682852031942745657608979071761872561039328910473623208572884283464480813595452651801354897907712976942927526979194419893851291808547525110049360989155521686456717867150470917715767837623311387478794673864775956979905843272874376601857592989480651881067770430706499523538387727988722276440673612129978847876716408637149889369065611683533409197601029241299398837719292529597185222922593258523499655547762060848772393602539737494407881627118873969287496036539967846215826665073511182373988148884490473773371066520634267219259638168245699578512047393521583840175468887948280522389728980535765651257297049863151909402198939006731440253629776986388957556000138519185401306927486095992388978959488133098988189098104456398150156169769449418318544785125539111641214282994684220460224569133956442594829452432263536115689765570926874749633822675183961365085637595061669735543285093584671458614760152896911122559434686586855664850072953824172420694436813344021913663687064312719870320487949456193326532793668532066052118681123380793510053538075479569392473309224849746274037332921888262530290223872352396253141948274836147510237130016914527951046140877289226812782607966487800373935871830933554322476896546957727914300425554189769577076090528466755403937579738029094417382606647815942942266551891657168270659552223555705735489052083479623120557557737873845730960102367854767989987994252069323492003219780685285429584591096021824020717808890864889637126252108650212678356489740221454454806852080145989244549423879938817429525680686477579803589835406400349429475290778295923097244459778571373587384065884094515013017158893814902700211363838328830906322216760100497992512983143068799404832695952213491600776712567692249227998724037176542841676447398648664874615123102255730969458362017744829717373544868863548235371083333591110660858322312820861217777326077450307467914525975879186723743147702550066040110623846196517554693110057721845269896433975232345191812080608850418843347172729562878241029837925945155757808595760948528309412688323615118333368894306058767265467537929368205256623151351806632933849159462478397313570792339120345953906459388254446329366282700649478034033703389986228574182262428522729143529325080890838882824027903079966378716254963216341112426280031926804762815477972091504488795124633851141728792982834368542683667922462700889346804313156893047168901629773453134858122356994439101276756133259907673794250745180741875759205512971974105000763359342908596734458685925980607128768076594476384407979260815761517826323555782824341789920493558348277662369250782950565568468418036700934550581111246994532741727415121226793499907312726179741309027887797532795671896355442662389264333169279079992447544668786356334766949007582556855609356865028393210130216632496544446706456169139023654738966790056267211797247893085580701600748927681660717543169315421850203148545669149914261164082560213407028997379874808928233372156054096468311510093256227672061892373119325861474475286731511810848207414790946990191624990816476089240207134746976222725183295419006233785363982316512221415112579229756129040887664994392910933845244550482522947463288429087420297048186344276398838878247071995728541064192551005885349988767869450727646570528767977359527573020956509835636854015355803730527434482576441164077836894985354384240261544831384881734610683690977609673777115958361605052244372701670413946006359405334840721339170821368023795144932673218067769512863557426527766004937208916522891226109572613276087814992132858817290500361689708926382139062125340542179654382116847353191359109846856018980134190042657385440275741321408765863973970635648685932545370764005439632311555204849322226609543830742227373324699861343859063620890042627176277617008901255134827765318056712901220280432314718518185027628001753411377786867191092580213170741744068509523496128255372898016146599584667023096230109597882782283366148020620140372457651777175560026789360755895103403126980700433373633895746553148408995012054472896571191309986840443890049262255768583553110119423667918722963460085964437362496518269349433271044844371109067417435123261650334551769251515099206492747054319060047078326840287098191270961506263237373537325294022409042042554807135751135053157145731935839544245338240650405033489931217316142461043149715595499863073012857171029119734294269052999588677183009893622676760961461066129033845928782837747527121725185776382976286592714214039078713384722871640645755521662266299208393554006599256931713185985661428793663866508118775809148868897532850489681164748904847225998391071355927033866083436247609685724622424919351226486599907622209497461319081620197726555971263856785238603145419500478035391931778461334081441451319877298635297765668456059401578832450440646443110396881466785353512362206996021066965562969043664368755644228776027614537670325328318634832389174445353376692289457288524016161412461287970251891212790747753925536693824549756718126541157559096898514531702980906433549418056349648006960843775419337611388370938876610900740069243329075975727839790861184218123054518896416213131239070593916958214211782080533603170448319424035382697128046250191974369358485693500051718872978422383940906331965020145152824113779501233113572304910607263764506139901566583373941454637112132020943350784755859422631202007759921852764666601829510170219626253685171597151154160689599138851713627021602926142461526201031618532779639735893381658629983445035184005299218524373591114912820841354772605821689057329395490792925428236276489254248666068870541493523449001571993252769222947313577501021284905535943375679987114661414694769009280502166877976675807884557213889066949245686680377821818474486164954883638893595882802190263480130684924080616329722987483739981570152265048534424769256903949309967132418750138106336257175806355741911600192284357671428694481411480665440516340066041138761889888755830258053504839448591967597531090565626594384975936760559812413176428482273996640315308434617803914871450534906463575056335131817226328313202333068416365568308033696041960935703588026221875685350158779128879596596978724614283140667218222834412176747536622493268504240701027611406853794933567292907779561943470943733237653312486289518491830023604363630947855652714034671819093299931036113785659909610355125753345640574053916306577671618208273678568974405609337221374231050168288401614001889817444220708403314648185071921087065091926407817611981939118090188087702571718241805721161575096540446061948813229339530106643036600604316012252741445699268737393819611334749585384716468204037120069223018515161521709387808831576152238932942936597070430381834246181497654454634827387656671665683579999531259287705111137128140357173162632292201518032055039691266114816093995071167757583195708602062575711233961964979813836501730381175517722538448699191879960533563294511325420648538189143550493683005548088656073232697717832304920490389005604661948341527077376457878206815333638197108380961644609407714187766027592584330966815210680609429176653187704117278908106930743147137962912783941340195667208095854651634287732112591085651618879485786262136584937442692943795676713050155040658320628092202015379515448719701662956843057113740984119939275520792652115013040158061993214085288492995264329796615246158157773723456063238918979537528124371734420653051020330099189998157667750990039467994012670278367857925299341182081265742793130639516301298619076858972932220698807113801431326990553599789045912248309404555157072848348221314605359160763569035378761819826614168867647115390703431176338485791755330109319030897783740984380734336747866489261490093750371588372055712657947332870681304908145442938993104775092275703855379209352970899164496005629850093060957867492913871396923636509508460042850645068106793437795305606636040661784497814061726984967453039845138557818428679065860345606029564995993781098404158049784420026690783559752740096111922641446739353031827088969116331686070412150531706102853575339710483979633999797303404998889692757689204913332360011374086746090386560343072524348976068444074193243245708771904338794244285697993733540451231441966377013930592405382075841063020960209535330219116665221744894117334514143686959867368233978443630314542405761722419901461618106657046091454839643282001886437322612510543777598846721917332299974080459088894292473022423444035395307297753268157183211550158982057228017481874919912585385018724145170385225956492579854350994978040667035986540799443109140986607965484391267093507520156359480124594576952506880802989429791731215116752946867657002028807788896283160518226192729259932923784390168067665150422560083845557859297501334092136023814437421065899713306990896304356452443466872911848393249139316658241999326363055598347133787094769242598456972161274886782370510215089121675824309896689144401668865860375360830699022754657119562249932300082980770267747777968795800802363003349464965779769591901071660069508607201380206009044763683933163608897694988308774784051479869346019533386939912623602135365462326599692891707007691454722179996697511567552168670689153492224157723072706062295514860935323825189276165688003505188336912657981537644115976294035866214402271642770620173870779922603022344032241929373326486515318537808627910540448251036321365109125182537034817439869212515498278933104072249027459074653383968903205863699505177797627719071688165590026136451690309723152845491734226699469830211961510226727813459164852185635736220723045104276080830473580313986838094213220914346559926816510372762756798419948456457805681736877321222047436991064666546433771807984050512100166528650230381172011151627419325357569102632329019248758839809245646606451590419991584294126366707516118081428616874491423092801331142263205857631800638592685330371309349719440601811516700315983303272382564256123738108604323909042682087072065613437078373229961160533099375962118913488796151136041877977187657296214048455519055510596893099993710984484179533765433807411253505444877888527804584602972853883097708858837449313001083225681370595925082042098504830223206625322749806056341199205595813181954311941043347271502966355819596482352948091194355065258393611219493549369125583124410501571455389070955911622971074924275850827613404727964703726308004547040127747696575373982504558312550412778968686895093299637848083320321820789720099134682863513904164155431671767701736468501629658736434581894767623905914284310532821454129061004478165383419389044724890905835330358001487448997814716501137056009697105580650056242966840270782382158465505120238003357796901735280193280185888586201052851156653452981744697011293056221208150326837051726641877180909543995236416594043977916338661923724525872848897398769928667441619259529175354808262304832618920237907670874911180717157942962356163512333624810052671871901509275918150685438862003858609271565234665904378546224340970425560288530669653822130763341287386636489302261318317489831773142818268711967288709057767892074133532189766071210834429700191663833238559797068335161363924821235281074302194911408310506540111874342218169855735953351649385915790897138431529719768035130520418973589309970712707338524243753059440563428299724870081748994549707376645625089862147610128175600035846322722197076902441219093423543256784310110827635239216473909792615158081768168658295030459455152460229840987371375802880638931112490992029748602761478018570866779174593979187519738418192898264965798394712333953342405615665765134153336630060881909714580700430785430921187886999329293667535361843091813203142601912526392717879472880321689733119434981395636817274530493382565321795672175733999204289007327945026161588816296819598960569904010956201834529620356162349067620242722499778185139659806390354073896829861185892969132548220931024353514261964359993672253280555661440559117756910513002391605204817227020605285430097375738708103906796982677679178898818560017022255857468837633738551612323301667727073756302234414151329990284456479691657707972806754776567609891450099541945346805202829070541291831610576722773745539176092972620276836138056358712448861280888789723770917362405464301199188794358254072239596123825818591862972501041935389299351083320182397759459883054044917651176418236873068506581369898307084771388532364216391425629480046153403155808411831693474673076877888117681030800943545259048810190562034864185738330573227256015577352800467366209458496903751888577052180115455482555460911474446748807221488602443198850958793851140472307459251440249858606702097681005245273349682302371011764351279326126831737771702207460372154057395428295698509718678347717329871179907172368146422463456314450511312850174289159605880560483545502164262680323266022592408846590699982356200214776321738985759052252590249670610856688330892565426056009797962436072660703756399140052498389271325086758387557299196045253733924536285141374923158087565808399164926472142212666810137059525785726173461973514225391341173060026247712585514158930433500367738411523924767613938777253073670911356901563907405876078338891550843303136050553423887118875390517471220145940439122545200215246158397754036117266452299440079846370544570807097035712464980114949411764141562492016017295567402478683813690910260719044167669736631303903569772626014069556951438276308560428857051022673315530555175534250507291914083056651273546929215119350223183332920702217251916700848236506530543998752423311985816457107276110660733827254555487700122592304660999775649169865638092082539063497794532130933965876891182272802127698031791854655428750846637291505731144879773348935163865226708853454172752962427355974044034713614602071944386589276804691811933688691275855593497657966783384825549115822837447945872468451260694138740966033311988239959733091872188294999096385594509177329489237932475859197313300643816868870984499523481524228857265492300819854796069448634100283691108876882216806774487687996497612053109504934307778976032703558336477609472246184117607546558155978898732866337530753091786659670914915356714842557524169073802875137918752201745264830928233699264079329648111699563190070464399831772821647764619159205838638215790462094895877096414898587592632189586993570464067088796146913462001787253045010464650290492783649567271704405201666170984939470696535661273382875553316542395027991238846389205756111100812209730461424197587540525002424244478192172644314997186645758867536965069374846483695395401484875796793355899607534450925709684526534827483041751646630152867525814593281767409482507723432265874385452122239460105064308591521598898801294433928981673843341128401816991923233889320889836501134586892806778942347836071618770210105094093935698132342538822693096325301792723632958185554351419233908938498130530230897611646863098818330107252745140892173855549950446671704770036384512426012778664294565396135645203928554871039687979173901796781032797459277266705024160495943059684911182180315439312219213211017560523330725141227664257546985706440215577825324574784615188011237903533676174131414532344862102534142148899221751687809242448286868495729838150111829609479540937682696203931004515120841570239202764860120593059437058896523621123815417834536874545974772716327362180912024432363424315980713580347611497059056065583104995098513704501058218810387961246080398624204435833593628264826298153701321756549744736264927595867770491239014437436738659300540582477819450309398173686873940010512507744041674427087299988790353713992114855428009539168254432418620896871260120761589107782195452128601678172433540493095261301131603070356492335814458940274767901788567004440808283130816556349798087979125185954077711428379998931103263942053248899114258320965884838779935345734756609922016595832745437079348624877902092338267628190012244516902408470022156227960143170003937701122415978924763341316519199413173875646365229508272337746879523626686347193910794696563178325290250062421107977528633943379930302224037778789479299032858310862361052552955406206333468592226753067780177080206837471863108948803891307368461827924124604458404064727756372225576048055114126670132744839649390133068445681598101036766648624181240369259852140356627078050343536050620455381896464152883811155939652142457982913172099114565781196622117773998959845387779587832327200009191725440890385957625606271652864468209929097603244197657541190389510196896950464980924371371972619948743068558907420687562541749045939231602721906675960738371708672740053437331000770626989150936289297254290418729336822761820105758841296089840138611247515973824880441273718124981731016081492313396935942428038998432384241570137095409000875352814487315390283234462180903659020262274880292645255835223228812145422588114193296545957223806820063060010497624591226893582058438044589840836734152047369149416616891030920326084523315821069849169047538331143571590463237928247278501561291311964089290712465086591762298198004146699745653513122075419939730542505113949585120368863892908962249820765666286156161656200785962687180635836050960368862977049980476042156922371645878105911334087488663148974547526626410321606296991271541494603859031256537299905876079055616447047707861181933362850514591195950594519762177455935167188612315583196441037683505688788346516689991348737185725604373782074866973770400976641331016780985022909646112356154149944045677998501855775861484077206731172073177306987799403386903983092327535134258733167852387547020108388590727185084809077185340466646373258555013526960574560230899613142979245568551102309613753373202335874177651414168613262367514586835766488875122833254358536037255936924794233961118417613057639585522706517475349024232615605928579034606497854516387346296424666622122639020945456785473830041807258536298116898517467897255978793442935326356679623329592143899705627715853153425908600502289989528711824809099514642871488320584321140870145321231650033795983384058173772853141913586115636914475317889754894408775010069192144669328629476557849592241167020351166712658576495782800280002948282958799814563994885306529675882664795641601940084196196957025981646859635519373306198805177289499344367765051373658597503545027942644776217545252305840007315049973738567815198419019942674241781963584232014004198284475192805453679791167678512758508442669388879180973241723813774517655425346121855392467509539928732451664185327375655683832835211903375170533135463988522475124257003456545853495853137385374940715622430330087140893388676494988249136313518946043943209298940016484340355007369314064165898525594493753948910045831702119529337945724538602985753506775794424007037042874744340153434482089544901141287279478236569056937285733610932682002148705365446282907741927084315423365842575363253079593118590489399916015190686741004942077969486949168293536108232068925732976699522418606846418522980035050484378459234026267146795833986853891734833273675668721321631467019438802302632699677263725951411160429318804691156061614615088907724612479716180682936941578414007278588170818788299724053651671510993782792477499841109588413455708676408358724386421733225153813636756963646052655810667370711281181590200430978469659406949641154480828494810900326640491229909183491505111301090053167614558680098394961030380827265695792276900848853405097173974725736311061703669217196814466394674049821548190117028626080304970385514963243740099288108658367977599788274160809304656063580495183378572060831728938386158837700247519903196024160135253223183846649699757292150492441751806661032527404659007534955717573572540180852590877606098974422233770496524642975582933848976191345381915746941916118769054474345716792164909865058606414366390681287824147561854583875925299681307575702304575163686289976791759260203077402015250070286589524455897432353299945235437123787116090182653017984230193340831290148931137160754291479962358909867302059698594080961058613279980238883012717938931325162801481186400530625717124210226432356206405693397067794213383503348250110512591118234926495986923109870580532816196896241941904303040822110139881750105206806966892407421029029023797350269221040299088467046814564392534826760187290790481025354660328230160894579756020936062424985076017403871246981969349562969541835043857673915397056495780825746479487775778344401325258204993789842432087373106254889932856490070621319306454000169591332018204452504014658667485489428770205949035810101780714926103729321056564828603598468120920314624660116154089841411524039635117973569079024440169524988641557792651215471459908659576586156156952627425597802605833795218877088069883371684188050219326832991752720713136011201675374712139619431086242913521414983299205919135991963962047705431739401415246842145176025510465597508245316845303680401330852423886513638885313310894837826382313575063352218045271119537698831843827704539155872849976335034895450559900881578654689646667019663625550036406975350246481449568573124265412235914981308218067516831097791328997459387608754518805228442425897033357044578066732310989068171520421328447683190498276863174738865561563325237700061081629241552776460046340293414271673918849031715082243846612513373105661056166903424403228229540822560921854256358657352874253094950711346227360275167581698080119146637147994461403248735930545832918493023732255183887614394600067087986576105783879344586837703175107940287073638569941271264270253515415646714089893361021689365158107729478765269996751651546658834394314488374054741905645884045924480546529412400578995184286659357494548132582257063144432890313181786687684995783215182804209951610319410342033796421111239436220682022601642650860454857187699190014760460808567435541805489137997838544263300637222336204621383110472067426767015269980105963406812069679962074291068582112293353485469199583651980201128727135862231511014399070915884110300724579948407537570458145837941722977907599540830955679048261116101146938110267518191468360351731755179006506025158236970175664154871598839136860217343579816775488342541622097724340233855849396895178946405161536020708610177591219271683252285355907034928108386576777686403731565097106953682694299837360815259020695077036960543092813468085607578061952816249868467156816217661899385301903311288733103121414270401977417237399200101767049918842722992761302720573939774481905880960133512033712020761159516221252685356078067447662539464946152308541492167972547063588120787081430688570792132747619968180059332617746762857991699717245780579757215398997508171143610409917334621783578382485629380912995935854997535742995973051973279160293153928201582166112176873759499007536540436582196538972991724139887076631187400774160210104264231660797169153139983796129011347047590306902780450612655991237345668466367350959704447869232965641078256677298431089948926866851225294592027075828932192767308773351628201406890193953800697716946008880075343725343230441083799532505118859308349440616309973519191773401675743403606567442799953649042734008508978782811373653269502335875951752087889448214108683890998351634240173305173714485481728993776949755733953593487945425956912536632517947274963138729863670892005341783856458229181362057620549579418902216444505234012605520560218565363250183969053526056870611294403261540202780838554380874631922895807336040373608314212469561406708963638543946143284302142809302708583805457546263493699203738665645018585161335501146927463849765965154579730401380656336269283879445609679022123357718576650430791714414066133991393921744825074244961436009877085461426292495093978608696414508657460905919364049979878136784801978240694505204301350700060602718633199479865758554901542982719020410441176878594463814796899610718205544752172316797960233441746206829524102942444293912761117339435552654068013617663335064872065928924152999497550324010367532006380550450411440176126623427905900553221897788143533183239276120231788086590190742003901424636093338641517827108657656200094872355684277281073975740285483682109427715348764489618312657922445382422224954600218397004163592697027105789803138399632247334647824741556820859010311401734452084256536914967482025726876568602300922591414252371283489303599224957286809965571540891580791412480639873336368083177601231729337161527451744396857709338756896298659091648502479298239771223201673368279163536748404773841548566299624325125159491015734671813155276850246443602255106863645438936872516839175911364868036790326653857129873619832259207974308596772716437310915023106732510832052023502942862181820827879051614035697146891262627566722121337037061765731726836656916580413973226300930082125608971778141840790937061779244135826005886879959611244667336812363954642266679907272864981109461054956881129293567459741351998820101342966381382688845075178343091594942052321217190270334736357839420253471317634815020948533052071679641786361027740217242131301241382297586210964024042245406775189817143831778979430299317682064097910451097938056746567855678719968702594750987536360408812634009275186600772446030458453394556839678594003452624434236315980291652909124771068817925265844524302061635305981631475982170940635104005978410536791518048088679328940402811944214193870099908552979602944053073638169597641052101394625043618982012469028929649489733763051656186658306866611492108358089872479948159214719206021621658928480701233054558790429941818601496294146239624615190255788992447515200873843036417921679253507293422372368588696617335005699105527922736351181920991448409825607802475495147375336515025380495993235527043383067656850973997421108138339221968779466366261289430293656487496215521644755898257633802025932212698586453928725106625053430905152612246794823914310774735426280032245956266929098926493169688555857043843797050762520255477988410013481907763432937765420120008214587264662851441003971053172734992939181643359067368914210588074246856669078121273616212498897851620450524027947757528179043946857832741106005322773885455365916351168006364578307958143265740756428961973579276524565762774771668172750429829270711386438046178413698699044680134614659020483917064511676975225033795381634213729679048208737695331278951161523162894664970173553343217413559848567963638450340684113509728180457032524986940802272676429843137819634941451589578651307241170781992441327859868597206140742086233326858161084885247103752065679098100698092727175332468971569677007566415075436035725453924618379066679171405842871406367088244434443258468280074385495311435546849389896474782574885954807177283733663051881379031392183148326093499880285428908736745339123676655668901683452534640997538268235127320060905927893755813561852927427046903825372721074036505138564963475851201683963813224682298614181688055713472624257496646892320471617867550354902450743609874275486408134609347992063249587008225301984095418194178478531069860548458104934139691519716674053414582655218951191856306949615798870864093051700558032980534677042355754765838023213852754519845950468617393024898298045589303918462579988983795337354500076323862145775974847404998952096340883208063445316206095967462229714759313395466521099541875850076390149364541335535067277296723592163478797983549114477892996347056417213882497735571341726401792900101824714797405534892915463939751317890946399055861160603258355802327887586127966560612380152564246206050867096271360530059574605838909446952841984781068880605189946577240371761221309077009570688063446110204700519053579534108448773832913950027886357334303589365938977710075032732331848075682184837800861160650411756978180390852186675536185583020626222257842381249948306349110578139902100620690038912446143329594195564521702762976737040245648983380713147994514940155686658881271592535297125571274287446865518907365999367036458700654700765121065521334108758307536109803907933515620915574961514642217219844992286228892935997446550873131792836972758773546205489415497776048585945004362719086873120425442704370832629072604285318488799425970537546146657843621923463234745337544931285131933358344614026978462554168538070452439360041899449471411376767484466454159747098867055612934095445143100110736130968520873683621039747962317478428854965165934524180965441580301831668396436477453653084853048154906188589203565978682065197475121778084252282198864511620992821870271927655218368376001584987967397495221732840211748271024281581040820613991586223825242834122386017538456693372667814174179466335592965502880011385317896223203014283796214658764886504874654024266244530175723972015090371107372442635238237761292678122484533648392847000086387724899421065699027650663946879251909375108387677301745964635886894628447468168159651781842575093739457341661186168266347687417974450443913209131369704130829794063280512088572339575035910665188116079399717228648347940611007992914198628223780210470689403647688924240614064889172212787324850586071660242521316284922753245061015659901167886099943160350092050602318626369801817427547180499277937110992477555826357321329604138219629729375388290992778785502101253482921592231333042279182123105058669243935728556446431612067859644356128738733305770755996003315203855946167006683386017591573655648070554393794887984014135539492611972213138555787214837114958484257712275781676012130042383992162529641381628267163718103692306231487879211898988226262558885828778270025499623938352892172622990859987074913789384006689901315213218734608651392728718710097457953529138742083183768053783338228268479275971685056548614713951587400198494410917304410856194041487011872667226984993545961253959258632536452747391701349792837982963479028085006711175372471499939835473229184152113566439108936474112061907084335223408638189444375656136435144424337807105945629157231464213703961381768647505207399631045030841161122553419916025653341005402289947281349165996279935613537773068751666925164308066595301459580743814532840744016882111027366147226306316450896296255892232096562185746296293901097507167367504348930106695077909648258719774701398794887421730052988596749131797770339134271420199800860156463942387251206054244340739639103026298304750801670031512065906156717349854326922999320086486288751196459829400998049408765222118200615213501516984630533039636977652439636222737978926212389120937839965168874208410445528322928931919938962605568876035314817972765751698424580246584977949476212758728800620924614563179821012731079230193267683317221061695984774379375609974644149609335365059872272718756938571608075429809880600696792504619650850844961327482691196207489325178021318030846371941881171683629561288808031703367336160580369167365484376184798811415904662263488419533015983198743527888302394532225244186286152325438740729210621562757134939301788840049879148221277779436210385352203895055856772186467565847210036847603545753981279861550715510874779047066263000198615762480651925618157533448924205465562805521086422462855770191118038413965207958998125410036221490405039740265336879638832933576154727637580566914123818787294270652335847180713648214360482840448537381317567600529697591221296930647560147413520107287298854923536680335726482656672834820496512879112704756741624495518075196664413126056000877156967132878042940517340198573354073560323591742541368246811867791000918606620220275582241868231821840813217886298166140216376060286862571176993170975426774222931819893811496090314696707562979420074757701643573328689133772430257554460077446346595256315108180718148724422210663372172093530139611227955646902198507948232470151020382029886159477277127156621541402855594879384308962642990778573061184295727899289625506314950202568968166382336523266892570837443529562835010674494837695440842062178578022917107175693511715991543677838301036928188008486908571679067864138894971455078683077137939446036539573994099146080725750378711209489738825596032841389686354019170171768678478923226972575839457375367683135444978314256675291626371660133880645909931515179030575586436216094115478385900147189193773884988087984021846012158002330545707462620108722227955022371192545158145541138334731803595942801921149034556284727052297127502755775115626802825419480304678359922991519377618523999329817896112753781019872700245098087162038944452358725095978653922097101581800433043590688250756850170624724416984837808089393998350572408033898202251357576086462811620261344723858498329726782998200510902085606896861577604111581471972922932587778764750353362942307480100913196791485514690481158372367838032923840011285702432433461429323862622185267563999254565025020748704144155060761491640124956210291695794510406040373611377445671031235757993891164238005058134632284246309767786528628294680539238687017404204476592522301212379397836991510917891705074599241792076743350385575267844220169682509509699886564859896978944936267839262509072910461638956085777999724698623891038947125724281985325312680680365560838479351428482092589063416740761745205146729637259541262002768454520344257054640668318926438346988851951052473172189115701877449005664965366478330137701177627290291684918720497137725136380268175910114550676531188131733910655219045228779927663989609957028516236815554650549450140078867813927871979836638524859634659913071576614748271476223724574909247907179248880432986940361980333632120580341349996257419489419482025918770948347581963615398397137104475104951692674081740237605476069060464223166514613640883129864304779412886554258277495575771784359429352876936100607246409162236609713684137191121318620056753587301879364652003379447510438645352042801208440419680625602807333996655159826306599967812969717759843970705880516781413654958734020806626818972872586273980425906949705257456224524835500374579772874587597901503106608212205580667445541981796910479837580339348034144218949305811854390159331437008848041016577330988155991674050751411484124343419788386383310883592690234210655787638535452729955748864495673938938623055392684743286235689097732512038754305325707542656440276808064249110149506788819860768447415305240079816287666258977811941837104992714764032961327569565753417718452984635200925484809223054089577929155958511754140414756801013896796263083158292766627622032760058805524619206356818444366422452523563788313370350563012651041092115159515795204281339933452327361741907258478083184579990249405537023566922499529741803645576680969286441538128109862057840572945141684632562414883654458388011948598551365192922140073151064633315032521991915816349157476529379640802265551117059526736878677791206415376405705550450879080776261890561045593300154017302492019602296792127508578374826335148631567878678353472760282669372280934571050562606034392142907999722205373712976729572813496543801376443671366172893316414046516703598286735239376433197814012752446883818052250301995675129322439743676180176597501653915778834677871641170051961226934128747816127328808555948031178698171629552177652143586037316847743097062789826440259012204819899308613928015959377752085080573898864152232312353437244591783129235418865723510244267457296708500590072580035152737761336203675451209500147710598560318248466438674338560287621087377316167964322796438326587806516253492970299684545573035564811495603566735013601152645865730611370902539538840155503392694041218899279454658576122643027559266657926145004243330492026489560532525672739508011829869352388476549824326117302179272073295158008150023337734981735299432918210554337968451512476379905827698541925683171165096410042480045717711920811775045363065334813952473461916620273447276200937999027545964860122604960923163494899587180116116189120155528840547517211881427069639723827545802764160010746782377441146350629166152689449819062626385602295969545486079298355251126912241600931371140033766944347824701761254481278702140385449987227628193068108782965545704364866068988294383646764788351565861472219905368571101717729091006219033701945648783167676898872032826424751668398567535622097013860822417189920969770471196911035810300210118777974662002821076837671497558410401103536559062703689580768363208715986059909613776193646171022346154045788368630092550623894179551224056271982496705498824806792214811360958839271471627376199533784731482002874525448519839252420034111143880762976984358854720214869355827088009193986395627189430483149386488479853435863390269651052502912854559425469923950926874616000904674966852450377915980853248987935668652028043019976587267599979756139968452551796724549973452036194428039252462286594096577460335837518356609806906461903357517495434984786324404650163934323130414477660760159435802702106750801600377938171126496061370126034907518004730915218067538790498737601922444226372250419290596195775664467668007413404738974816989120529775023309145638621481707980162049710150304475046749797373209820591061679714471296519697485546108192151568840692560215388120593850770954490338550747026951295068381076574447555604516796214375651734244051579758022472646231200091375160031434745345007269043093979443785414061535057864713101671301257513802537101057086893464166657745001961994746652982631830888967278176461001686423695412486911286842073410039275469825160572350418093786399063838659178829167989601264978869159521395420834898291483945660532783279711635100501680283471032212838074430952637437229461954423124865221963936731456538279054835613841700606019780495480721291174763861211751845809458744613605556800717778360834084269695753495132754587273554702057243120566814901077640835496890197202797458156218602919765311298150482825132479186448983253817675671376358254492547480166287503615294075464259056932063058949187694248605924807206281443038624500279834191877894373598234055738860478141216901865179834080353907395761303271734891926178678928673957338054942201712068276494131556497723237936286726034860643102202968863279427475728639520125759179767192809554800861371883321353656929564695665970030669437039098257406400602051444898596314304119065586149782006873940744519552030734458544800157972315471314837826069055055017823911228739748259459770321297200759505644899863801351965439975974810222807025098791517422307909736585322235564444215342014159071323365231923574085317132051611129139550485960827218349876795018850718637743960361005250155114641263589469488386653454996956262876403545814824034222998153128581604095202702510858421237286795294570969070846268522480972279066247475705513958212003151969950187368268766862629456076981322276834800669754111773295709627653499190327331465866241886107840794153095399441077376755371448317109450520491121986842263263320880741070687238857926983676132029475307001352369955146229931817016273087402680188396019515680910929611242514177621483720169424483010063555268432737916468194522292628973184826181717378324611638643876298997008749501387908409116471540625274150856459553379669113322763813137396814755531679681783729303066069750171605326327049732491669959554138222678740572605497500335223093094897570771159739564811253045260441889682730080605428247021153616464698170764757961558710999497930018696650518970110876609227283358335731351710469589638799815208793869462491310854967445479715467339463898698237854906877892578529978476621099603509931159748136217220737648408178065149719634467692107126755601701027732313089193717655833430089076282757069239572683751320676346072613693655053684945496567901456026962816954348470012395394948170101606944768174420642013450521618319212930682649921490923392979297902103668415899572285328729478506802342621297897026978730184827113892273800542877540259757692152671091394234722024241087812515168357111618895860359605314854303579831210401951369886867955997439874752101406498031929243364591630770121005292350762353320722759352800777607553559696040297309597473522783590550769817720711460659340176253833183503758888710566237729686914056138170862417492484710313873185057182187026654803136830688672426690268341557429387227443739121311231601519633461292065754347166987059737835928856605910129461631607494292871679848921466489609457781467942484459580119788688333769123364242554707313416878410147976725015990460051652522286182843855835402984694129553586376815041904720306759495075217825071007889172362197905740136684544375507233956090617136702625848121820358240793964012761916378993598328903586260305525109179161204454046312581052578431689707538103106901845715776835901561223538393490858793899102129822943044487939189735647446128489001034180493656675311501999769229186470230987097501500292328774764851543895539117759890744010171789184677075462326175117762284424866493604398451826625557130373350690080265837091752780461427483556219946998538589707574725441232998150426453885867738321894305586853559189987707214488775323206293980844235604024019855614047309138588013136848884257762261624597736890376981806781996844126645933320313632108265830372030702611203483366718069382485111552000181116446927893302875534480044894749488541897109833514205197550162069501039163730003230356540844204347683452254589229347436142839703460587635337192291506076942656061640793893523129134904535826593467067037362839354928453133216586174891444810906149806802478830360718898363608315984618921884545677383470730881491735096884441075441433769783298252056512769085951943290258411183363948390466475139946484880624417001345655085845454866623098497238223270497051306901699484994922964614578859011599029414124361524127647917772339910285663678869709597665289075798721463047838067362894908634691365791074102419237011615187403994106704661001561231244596600465383022842582266168714764652787506015775687036744014714997064593075490630540061422308972917109046809320673853362474626718329374660200850307463724614460824722110419882874348134998817387132246754759826916463348436774983115094934977692669782866223259052574627698388122103050207688897792330001148771811424824234725010012012179479610352032940637585808921318135637118382354638449478845922410921234450541315833993274910916716870163630652670496266673132576923671033830240172422456282357522499948809516163550139525761861814641347895650885604085571243629780871395985907446877988255823407718324511087391490372490483757515796071898195883186785627085277892983322258366123799986044309881664054285028159117617888457216830435615276408227052796033542931054579675340161259590639176814034423354570047481600003026542173050287324789868105002176011118627237485729586026466670699828573532131935411333300920018726500996903043527189857154372708654752177394602246872740774512384660881827046242702435923776257152472758524317918008402694389159839384696823715351007949091468219501905196746489047212445244169838617718279351624880152490700852900381671555613261613588293233473532258202171514766489695395992949723556426707764593463226612193289497542397066772266058045977159591649985612711246541988016790214701551282413462148332491447240794538494798524319703175062618504442884270581610811248926717154129975448143688057353406789205144958423441894059887591033698537431273300115081511613913689253143356048386962580946823283787618556625863891039277431965259506067315562010921344933821591197518524078449595959469935940158182585339020725225740667644641851041617020447618103214752907338746633071664612760066548090092176527033391975646439856899925507497092899531979974394052755315617663133837390405278351830277983819618749675103556377241876082558104344077640567804955445532597220404968515767134880296729444933260755526480966221818284464530417788559489527543684599671449675640297079490883290866763808832940846883277828151549298741621558374303947837758106839337474705214833335120329806777382380015718354006651797719852883998872677325246852288115899419088411224953360289032270287590476687038551768553135803796927171002845541011546127835935488167412108698898027553774110116248593225024233192567774369414397375996703731606393060525717330972763026369962722517852064197365160313867419281970361288961239491331823555886702023638966230929560724980409433577989134505783963915273550356065273745666963846602423177631666155488574608683920685601087878885643512868115773133571644439524134579227373235946787081679041220282153586120556374956393298218668045192823043381413975538611684531199947056917192559463186231962128128092477444552624549965872577150671504913213147835086905384596474562251115456616612537424340329480519026487529459416709315315300120388925735861003471237119278387894050736541382286597335826854236347466229059136169820407901806989412850264336192346144295591171913322711489545720383776959772416078850507495505847911283632666491823380056533755947602990523839595683870678843202696433360463439219401493351978632914343972861890838382346747368829260349456002916764649318432730622383491119109732232425236848342940204427941144266890625160367498722539258257780933266509621199331255015439379222847050516886066909185734072680795888184057898533556850417849762418044754969078885725400975735303468790763498055602414332031695060528006794838340851228969071834893186768819726923210688445924302721604079194472859460894963648334354907604698029641686031459278918582764328617961369305918216941820313433329701147272739460872766945902470781664681845493312368760519143128879879092522755329858800854689863698357991752555279807113878282079724149240179933106000833896886364092608348228939094271213441270981326063287177389235570696600614864711668805210628847047724086257433019514843099236913237408280410886309967940081122902423090285061698120988274386288020686784452160333865943781761070057909353152799773272174809535783660077941321675102492532650400184604482386953943153370470416633020941850907912580180048194699573127413313662920922812604570222216565466039571914612999759658870671616329970963413689330925828001801264046064512474802137021296022756560774258707441394230607280200725676065189889701616037511567794565886308265467519899654428743202748849853131963955987057836700083622363649424533541486869319024085524320272437821315194272840327061604870259714942983556496478531906659138552145860334610230059149793786937023258629841476541684424905522700564907854255783620804014093907370711003139328207982106506732167507613017079956616145561370035587490059524243676758365114986855190332036996758006354499237525295178664718584003094855220521081722332338828903907505711647133972744257509322018440464552170090564039956169399079088990700648058386128130380786738870649745403818764019009960632669526222074500018662793099787470157154283378416127249577467323470315104776479723463600442674041007929508621170405451091638865271545553928809603485754930486290806707338662440856971456017889567537886106789565276672182564458250007125416974818853369873951607998783014792565320680482315024873481026028876924564041157477517810785552735873633153810122680364837824938831902864876968251253518318091504833325495041210179355301952399123976246831193001390625811539506860772950354313995716004279452811504788697444087164846912968013922128187418430419577642468419331186876748841777746942595564021082729551458063274383065690654326074243830693236433647112255366289528753884558573530671876518562794647321672723568498734188105205935543137970105271662711953292169239238099263815457360511137397988972826357334096301173970920817583963772145799257979160530761099239446476699362910705299870708152914585343738075903969758231336321769734573527510070262935130481810092735287692654402011148624354159770347447938034036420586882424025412431035992789480490187112523973411525019546788139862983303434537863661142260417532971632935015748050772462908119908617857857038966390816682493837537846631399080348870967914345665736994533236232395888165236960229152065261284404775751999599032654492065265063535033965113858796699926004333892054254500429536972744795770468126193920968790433733810480110458893168155097934729720723503741401798836170506561885480112882195522151712646484248630448369979329135676918407879924085872915679710741027660163480489939691359792051900672038680829714651581337213180757486439902704686763520497017714586228404720635560772950197021351859903399920116209621478336312055750797007743787166515292196107815931104344442501370309988090949556768167329247734436497930032528989691850192187032879678500125463235707147160757279708216458294771679007076480103091367316317084794562131853397084852749030395933516690906107352395432626831481294983680764133110723795278214428658981357841335108547421103141058916759459681106597206216781165269903196666022985395158671247641629287148534002290163485043158482814108494207239332263494592392696047406169044880154877468082370789880525716312719473516832437371079724763093584848009606765191965628642068807150645834509934589516973890983692845576284844702590354939975936566851017552797388311762156309613629038381139434858362362211690610140998344235733501534472660969928095591869637967774796613556913367577378777077092129072326990307123155765845600977421150769101230490749579965845276624792013242921754446967062761402842329678058173379685536694911000569220828748567698779635048206819707714929327911945804754753388210827897889888036204359626028566149306960340508040540431452400848317876732127970639877652829066680348945961826590810167472272162984823061969758159241868653799928616583013374820004718680004771332279718481521998598825951411221495794685803863065937504323226344129449627852374782350131754323456191220007545418292940673095839869537885980508617073873062843840007654970004084462677449708077260020031656983136272302577663660513659892243554168726790686216121573459440366465952842138924852148506894317259643307937445972340022618930225011798408240802325652669865454289212444448103785080861550307546033381971717081585874928378585916009038429562827740852285295694920587580727948408548409223690363741707117535143702678585208816663965831272633552827692396384081943088691307327182047274284167800083460071889529631984832619735260094568764470662495909816683762550502371739709444724655558805251112565544500114917582560144437847897818171306014161014864453939362857862300516074109768218330681985150620459444768131511393451446687875680062808546104708222069566530117424864581113420261756998328579736180729888829262016469515197295096558433157216135559463150420970408492595540054340179976953421858880972968413618132398620744762054358394056328816545432455263062570896770561486104695058572189227832914835770583797246393915751589184821330163329372978972758139440980428061655126283814675376467918079255770353938695999035622375168543632927283254784012601306728734278047391702262774174776845464142468033428920338596516608396706181154430078364830693584992990035058969301389847019516170074731212646159922393374810952358176386423789002703114875906912338385125811609580403405938896119066977512625302351271019109325256643020172116347909959205649516907061826681252502774695195067095621489588287696194874353827332185048232835037319171903391705959028241543279699794495019692010271666819598698466926190715288725450908266988063574579926939183292019956053533721769546108584466467922764962871784950937944715275153036056789787389406010574446734737887253324042638663795759362533535645878192485007243990903555197135119460380546034081990982090199703853789058759153833611288807266244193245328588324250430538492127448080808164185588124702145875898820254258802903826269083335341024708842100953746539270492583015085331429936695116217267470884290824883585865295419582826607671653346866395860829128675842334100055011657545091742626824208357963160645212556948576086948782611275560018738312029851031818102532016772989782180064399956995437783128712638704182633914725656615417551761209964769754216903310583585462412135111278069979348809511715249858752720160499366460936710994362897595742271570595300739710302682232273208504132527081301994031743680788476414357594082362257162394840429331886906235772720593083012349637545530869408862096893268407635007566516735054345585269030171485952887771691995125120376996835587340634240746477062610773211717850410483562549067329771607407289094612028595837484827273378037475870822920981299124107172612594696849670102881621086567802437584210458791880571136977095606731258915103987948989417961236057152021622650177497793155674923322334098464869985595835579593200537014274952307568243632376910679000435775309572422115700493603161793582528485873988761931424835177708190389629861656736813996977346071304941509942882071405986588099820416387616815642149373160465768685225878577972544544055843226225191524018813800325627375665938539831534861876607843938301357908519581394552456370474802174752576248620812877616484094586155698385190783867018936275633066687459707539565298509547478310367249790699422717716120956939695914018201086747395113806795892247135597833004886060629906223921378257140879749868856431708682365051466059717674587192765946524004428387086719342991162766711107969662365797114345614161054457307166616445493229606002614599008307443627613393498618841910552907432401549840535681359174887510039472468196074229191928804763502228298147673984646255557849343458699107737388221975585470614557580168651557239583232608396236843859915381402161266892447893393509094769514194141189904011538772051093606420577523865297249774512794970503481621752668701300236467670070047148077617355724478797924409265695879862072296901824771575306393869160569481188190719984788325114035679301184358029825387194133659215853497566967176603576134053380563247605112302896602924429582151793905505671880419410677613568135687050855810482651147570818975253202168028140882029968531897865339735455469966576664729348018293507377087581697217787110393060593719159436960500426733592646572170253450515633388200570564180194385278982068523000390204730246697184156645869241141304722239936382456688957692877780976513299290651397756427093870768684075888226024043240956747099229622788954253090306585692267773696676063146739562375947440890980681359743742458250628469013275649680854529705436150901519271301984492123925443003366939059456805623551705123510412686484380607911704589130814068908280487902004362550908237112077516148879428957097166204669531468955555961157744096615909542883950798039363235187167964036346985738317922685094924895700465189306828403921542195223214059371805558953040466150692928428022325696417839804095790009817306889246543654936121130698220034143193070231212667778205602905477782268368001498581487694795228027829845773990541514819820739183274915525133004469189604171967000149085659372593137930649038607877694195115410725956917538947832676763460287752020343942356296620372537111992244278888277917760293416614546375677723415011182892969234407797577421436492380712410972518795381661745976575860535405096310073198399304466721607939266874174323013192465607853951581573282308167942615679506708770122020925333861100902260938963879352216043215291341194610545360038745987149646317956423983178840238109843963494136010172912340135913378310320846681365923088895716388663502892238554620688685842149623940897922394503545026341224938903589520217725387050490359520178598539300192333501323573251119163992562637571926653709352947348425635461723721458619764990903912817381355982965648250741261461726894490802013316157725448149576668236295103150984430050558415616251160453431123336407650456537423131650572571861953737223557209601389463326527368393093748050476627136055201109588671824734787227826659174767356473022593276350901598251511253591429886380839167279630795694909587360172875814737519352013296093285064070291549555110502366529017881957633472117293809147393450146006437810790635999392866547904199155123138758896380964483206767852769435991289875397310205369402139490399342629197780727069840000832466138809791605139784384599956078456693876165950346661597410455993096933152134574997129660561175358354864479099215887329694893838658962432274161809444175718563921250113235358507854822139667522376476967017505094301626045653695110838124602629574656280891725247718211665860801878536939187705635565646731856732815257492245822204857510538906815264297547826054429546529660204420493229490131760279767076736120395738635888810310966308840749815238586674504862469014254323659143004369626337941712784845617651224539540751308517058319358365245262872996544563730539875706855391138465892976345585649504982849907497371565298274244124877107387831097272284211860777292768939284908660370847062769013839069114747211352448232472222643381737737681945427609398059576244711794799557808980896322354756044169315850331920441085481875350615123775198905791076184098246855281518884687170763662321004441277777574131977449348556014816751737984672703434179759272845874692293955198044743313538632579434993428960657120365481752659329063610287429135109386312955132039537762647107977228999075840893119591451050848113676703672818985373920980956495940395041936628409505951223169752450888675201679644825899270030369484427455257078349790651816827005255149749476303965072974705905483958114462086496143970971345182652675489684284728449442173393366690702027995883166379045266612623234114586796118161564726330017892717380539227665175639428616562373126348491181397781544252887931268856704583500577918847411010445597257914342394219456388039311441467068798650083182197365679436541459730367806300565338409453545568170795236293479716147993772542493087099483812282098077120578497662929653499415611409335171441997320432423783653963493063159313524287977933731913979349991061010424302521345674834442999721027175379795927437411717558603702810243942947024357344498262945319166503293768468777078297607137125759516857030926747840906455852869110348127767280813607062755527693502261282155971544646815862026047959727384274349585571421131638617059951635005164075872814822598219439759699699786738496107837319916274742689686700287315805151321643997072139553445713100965589690379558640405620933857150769123978399471996846150704217983320564243067828960701441890414833836467064630710329217219409445533123679229162950731842374720745104264585283630133259159716762838682253261092929001861296385839359335825739296692599196733940675720035270318050028708731724603947918522182293156982231620245683904045406502238394499290292369564681053764333789949793347320743227601973767913740583902424452243036995555317457474386617391174601415135821102157259448182965585997442566655302706756032426850598136264931191830359813723469693770040523137299728546178831876445176290927605352961168227996241616031145832616646611602890607680815530105362377914497123590055499975391713283544755302438793538394296028689321597272433899441334416321176945481336797752584265427496666560004850795146793439509666757231425369421546376370764008383363829143671392603279105366053699912170601240494218297837351889641951945237652693600544803996077710942219685529369371893932186911970996358857067871276002570646569075736710458145492970193834100541094699843412034241365960710664582257338914996921695368516607594112132084347964166913290312369119920139722264294126858344094580994052462663622943708063100519097215350235755830544281159511701163342629297934216284388658398297284692615263345529658897939757186618934526784414328448700322223270841978618345903419789911109928892154147495326378169188247194132991334379434401530831438457724114758224367545689951339756444806286915986317782657158970654345618274368174863403408657954247560432581738272340838695479625183131929030975405727286902279494580334200817114242899935699692155729525953013108949233520033799373213537832290086128799820112879259505962479609627168881933729690989633323407949120101376780733546499657648335773449951975979641806185524453740176103983441752723103489602429317629755046008307076735669391420618775123683683006203649560581853575696402911669420246112072111951104513701238603924389010331866359864854762146730735794893880816820511592977389190093324269933412790870603596333093065798522933482059850633738046597322673026710678756390435941167676282663161031973310558551622708608105812126703051240043478123093487897436036991435709282815050542859378388542000616326382536820375977730389480854551848826927652315413260887380311631050812528051907465437249640565779336956594871976648571578530861636888428782658912045903388424461126094374367015996914214718136675305008903453565769227680107306299379743857653185012674710655376423259737362259659455566702129764464084413577459057221168567657750847912138191204180860948423598768873553955585701568840579201844514537345003734327681751173666420532344595860501969865600951991481516689961980475252941844899675730895595000943867984470240994577467697507739927390146967865984800748877486607086084673549187999999126536739153959269286993711290979278311990860823096807833972880443310192509355601643781632732520631948857601328232626779535061357819096367987198582774435916376571874969299026144098405048304092938967855440805089756720879987691112991537994629570301613142683903356932651248327531208723213206765433011348100939963526155362387703039031270432125601928323204722373865823866538036451632801023119984513591048549631466790851349637113679989904892651618345237411027248624481313404339069194587772963410539434201198135939300415590622874792207529453907080992477185669400519405213667280743842437278402911216896784818893151154442558064278402685298546624675921550277396356200718291436292055266479502736295008549047888610842419303077868190746673162351311822086692006462059721605490931920928277750662877415142008133979223225538576835004500209111170750335104721316154045914010299834767961167061425527117504942717301434842071610589144321126386871578443754878666832624046473886786835088582125812611317246339624365342121411474173910817516357126083426175887302667235504865740568793120997623476083282929838218033632419373311923153788754645819399688721689190992369826179714505574946571101809122526685691039715879933870728828969153513353128722795493266841730561366727465768758164600473334487266045128825695365750180446224460181060967136993401837838849879579522512806248183405878148573470802096322907009589350179153677364905577796390003692626333137785701624790965839443359492219175741714896268662316032317567744557578233211549499014130803336341625333883043969971679827476677976597737126457831311020969407815667690039687232554085507395895691361777485913091968957598887721849722654803585882150309459332010428724216693190649009343091652274217780110198624150128006953283982443445453566396719375520212648704024256215198774858463638436284046882276949787417432077446595402136732812679765033616789566637876730539783352645022294941964791542166813216329762275003285870720050293749141598194448918254469972380958176288068137907661095906573367797446181858624672708930247533746901383488686097551020191719210325355195827787307023440924549382371168040640838696643282037507267836727126266096989663511244503151649589446300684885355634374269204970284328846550211146641411874127081954166315057644952751141562044043407386259249725369525632987293958438869426868837098717023579277005702065258107982164972779565776773108009577145294241287320509791717092188274002189242904039524975575655754153112730160489023532546289777879365173004884989234324832162657048207810559294790989258594218167153750597816169193280257812583589594871316349945314051180825170804437065329483676651977430842686495042356136544832251351368358130668780986507001653456070914296700261619193550222663729873885852315275007024666853305849324951599593446072892208404017128466859821511680905476120952832472672206688946676457537355259633969044982655101638647134891042700138706928936140985583443302066129916404660746352216804979143711530833977144421018860066987028077178864461028022917071192037161783863934562464110173061200231751901921429454787189670615329530333733164478359126711626017550309756217121965527286187754430502308676139594040435370269632174475667547997492812704003558736424327342575354329567660991667431304275737259254178702439527465342893360752472658519941204992195320890311801797436527049285562718111255287813443450626734023868495445545848351782048349917818706550774002695747146696070769569189087021239200702400788866281596364531044132368152593600467900570491117378266434956110673969183665248398672585165406261445978943933759323081620797153254355872453914173052579822423400960154341225505117517110060620310547602054388741049086707200049554990728148265556877926028263351225659762710627761152299827709074437963292138152693206110021619266475421113618568154797542011810520756148128252148749489139426777460427646165504625807188819958210383118768986685950606287741797684832939591636829636334824665358721828631481455041170987852562604148204199004619860990988743202586152722760780544632976795992606262134625545872153305406758370308692240960769011122680504358694000242347743105589230881776455331454281459358411912117874450074622257141997017225676936175019848462946352371702258934314286247524241309200074362283240622740858275655290428243260066902381313017444827716584635619543335035895037199825078954247297097835277777432570524462204242330294932751508733995091840520429609899078211810476572780753158737988754544345542552233873664152212348775565552735507107122834221270758970599498213432499865129058681256376377576411244094582982411796562308900295532888234972452691306509990023147491193368913141656667105782082591132195165682063051741354658233043364060058042201181868236435428802821028002715217369024349766273935360509930330435438031033973006050747903004532212601855260057688252800872577482455310141946681251767072255893030669347561596112682411605857520145316188728828482916263407814010852630397264799223435504784824297188478223319187608096528396297304395175795365126010978655848277714685352219979926379094756415436903581107452190292600183130725067059471121948735430437116808537749657715143285202748700790169439704510281055770026451372325086018977192934503564297811607642732996732413133754784960349911954355700098323833185857865431274435091401189022288855454015790009363430048749898131379217772627066061080778593793373271883863751593023123704275353373790544395918977043795423430839353071593904375821229370114270445076863664919472508210865112034841370712594505737217213232282697017396514934912051457866822678559707590793383256393519132752818255162725898256935030071159734800659972557875937201392003128922364006070249569399153690991435513938359250499118420769377274163063276516818660172073862803869547978769642374595299199745535350620981421941230871507623050594941423429482506589712110163825162460752821295961405403497197139322507513892623179969506082012111060558880524999181033081379062940302884769930588543263913868406966381009637631896303585669332649485759352445272979589027806955394418142965520419205679628802831042457514833733717442153476775604198673560413800936877908988195858321639339300365044988753799551230934953547652840790417416651693670754390413103018580349094930308231560914337995826541180757662002856085438152466298721238478800814927892657990412911842907553622625601692262569437985894232543565418401855799171562565327303828637717996204632274113258465491080368671808087027221105804852625567998881627768307591350612280398775972972420822252505216484100388615375346022836083490686918764139401509256827243925691719436261094425240492084088096912179549013734950301912292982645808080068396104650492709271256178610743014987809741459225689338588828143510172819831215400830417138022649683516452204070347876804166314352931092522506869380636762609679983338183349336437457398989209861136295468911497411981502942524527434877506856035983407617143274288536400468736001814009163473356005008507035949293764216884804935344318555196894954990635931254843086278300658156660239926139117820815291475730333219458873314540749140818295055690592056826713223189718251426580707220958208824780382163315037590329596251079744098724638991545750173615256391416831063703509012479374336364479804059386743529248649099107126285396804081166194429944686194290414197484364314922587395637953286866215532075429436620563969329438405939334523184246829029288718788733184855756547689894721238972070335233871700382562963125912090810201591041547082687092281132579018649616036685983471111801248844799368162777028333767159260291373281149477741455361650304774382085170963123153740047445984669609571344007395865363465381832799995821037817000193431345716215655301784790036240090587607730687758341455233897942093416819383754758182067560764269626360352343152564523496156691206348435588950497941060142887575335207203933108949662855736579786783086980125995933487130009531305913341006414618393421855150567580469733635204975570130331608610587253108654630014986996176959752686191015711574745530751724345984027163868728437220428098783603407043363193368904718387026883686883637662156387020052267572908473222444967527150090182029532579182249154679592074046004980817554138043137861236383839036903795647858849887319560672810309449019857013115155589414262033897113023602050521270519067420506768197741793816211803672807319218692174119063206989157342207042129441752983368635569273671097657467565201195072964644507466471044040607416238965998189375344730705621900178154727302915120047054043714679860418874610507955171370793376751112486478638470424003141405336226340067789150640965598185443017764797254635525359360392887046828038038041790626590160116811297390865752389380860188570216270459985700110621059640907188271843971737412398345676857291314251868060860031806607967540900287139962961495631427973562323065558402247783978846804369564827644851155384094649025417251628157362116565067782963215751591813796704001884051014815755372747689509578734993522084342663693357869905739593747319867540830367952873888518254103438309177345914529168812548245536367727351951889749372707731129303647238196026398408614465330581363450070415822600613953638414968054364125414804943953957959113941557207662001838828851545765404484918498236945481187005654440417520449589786559894518907272649078587756125357507566646435530628760197183101153090740950081693977519908241121902297815222961706755749729453895962162196778752630847817809474413425634291606038548226749686295215973544302631265271518560081590111615885284823924409815359333077726843382421247729237459516578353605748514592047531335558905654260875837826053403790119878441936638867770793505940740003613458252534799133172991995896901006908851116749039417279231964919759721397121949204037131478324379545316248691387215343831747504350883227576583136113355726887212080754824365941787185157786717012298665175259666165269344145370816524925550584517499787185326127632457024471304624999726120087204002532522867398297522511508007089441432296958910459971387712392819883776583733579680272801423395355138004473093082387553321452181948896615594540092508648467407061499330306883942294147132219677788225081119895528037851175003569375972154802434736966792410855357077112883772788228935074596920137040462654767222971232341256738263796984683721896707963859618538767320924879800157489936911255686247201063635306558071244551946340073708532095912735179348377755815976894124408823156578767110550258623245962648460265417951584389390254702586675963071457351124216441548091968271556123696957068362770468255506273721025766717836964904334798416426480998991279520561940542174994252437615471678919180261448290449180970809684977114373077035295478793520401681576368679487214777374362201282324239658435709438606370362384864122114018466437936581595029112201147597092740665332087747407415027680275795983750099139081643194997709573679589278567599121297547608074087435823631315953299702904472112125883556939933460863280916830847648240169996828716259289500748226203993758741602857839363087121090012029126873327113001245229355760922335359977706720024410453181562866314769697154127412144262169594326698943032993605911641474945898129973754173943003128783139505172221150322610279335759819165160653657192855897599626566132556638452532238688100826657461838654599280115260688340532118215487756186031720175927273623129531732407636426781182482089363023323285585052728251417408383423084122194837987712362766968773115270296222868580570320026599046656059372722181268682629177435663486312132001394519445357871314428130102556474141516166738097595640487939126887065248053200007926344386213134114146289038275602819938335935405664039378420685525532427142553044366313017011618144443872307512606804671334427525933324936378488773800400931154747858640350555361297873593524062464105142085856079108546493225555234606542039789590994692314829581510505449477902631668458290179357038270729314184301616912873712079339063075335971745101285059129168134847732872963953878948732616373082936828001718121997001303486665535493208109132360337998980958667475755594232066618560500190562332845739439621559565475472115270661255682256380541453366198983135312607211299650684500906776781198434896308576061577607663436200088325097105409208982868853576627157184375510021090431042300977097304489979471090037777796944148558285958162135179781397371436839183912945976926881766427730310948761945457614975875575059632491114786998910550756863630242827075417750314187482682328239681300612784035582098519673958654821479329999370992380424284561117474392172994867911478178469707163782832761404545211776950623295046896834187567278293843935427232113033418983080924609051265978062897061358071464458131993696910428452583783055817102901791410137606205274310849526229744325247419914684661213703893129294525693378573303207886739864910304730823834427742241258208065614152332849499974158227656065732571235728141458692589275081152216883339246268099566660549913235910998639989145499289724041033588225447340992964971324390878821953594586011256649491911393228162650097510195419772573879695140625502809702726486148274479371732875652168297744278192682114303868909258384387095769811771289057493264551362886741758975671227186549034990051302356798808431975268615122612523283980221541387285353156209288027364894617996980323674126127729706337721454045048144920745374326527025086448600085682141999228680271726715260286440255681785990163590320829388130609919878527262735318713405968820714045861896778291009936045297081045106250258526532245097897865490936484748363392072004162862967039659285969256089782893848615390335262294732251332616115347412535488007031602774099133631694400256664885042699524310336020785718982356133857637583302354328193481708522092430547705505997156562355655026852671465722133044331185635287936254425148925400528448787672453704837134791793543771834623359049720917326315149596008785423038254266908844526822221343074382039267957124129407544963691357438963994743210638354288232526447428805000418381994802109495537666821194023088916239116010620703584050008831642737799751111735525675506295183876817784013685036402014660944470484344505947342980832451540598360070997506878664061482209679391349388714964318740178229279877581344852922244340968688946982833684139205326710450760511720565181628052379863837991327918322622309515256627912413871668919341684161641651570144342021168499345999586778248375167832463770507212433052880115996279964322828887328862358224706506575097885962714463371493548552597121548709478568107269600705978975822884425267325303228429965654022104363972684764249629212973045172340209715718739386842544859954795489920799066966243474036052609118379851780863053939074886346857491975348067557004040599420878834137331758181711218166181803900772936170359056804782002389278024939033267644707822992696971428662544291335559359914451536690839551006239650229003406400958356367720892885054134427594559872190428242319864243908603854313758490816661678321988064053004405894162037931641192967902889957820288469937020523935208617244179590530350609479471499093113468283385150790370935876892983279865452573975860796913850757681211850676633165990736696836102371964562871430987575919560849651481306272673202330285522412823307882508069185183941930698338947914568196061698526876287205702587156090024960734742453213043407953394331459489813436551513652895354569045116111990271669132343640871446247205337307834952883141519176610118895104368916478813475792636716954999802926199674514271065756868882085191358317696360924646926034824712706696949398143496446174797161540243692487130539917941584250327918466804489373349468722076750624291674957269603344927413704089184691604388974037402874322623499058812055091550884049751721224411429813303593938508796680119706210222896773364528674253912616048014791856334715114024670257754654879473002938836041974035728001531550456754599904442698656572738868214025957019071517136465054387595975602794400284304555947282735481619882720452027112569816673365928721928289282811478193314463453005034678684806884744987905364287530167658047469400258189445770964457724897415634293072569131448785939972799087414905663253991262691092862315960358915498451946631700402305994595658387647090012142985860210933446626196468641545835964971133905579091000905821772638001803767553071628967342250529462946570640707474802647073556301601680078649820845082038847584124591998812652956068466154037656410082048759786201790400584196940388293898810263317781155339934362871057673963498751869917483374525517994501217669372629985966226452081653211133425151142515676930616186164018849513821090047184656589422403266708381045106417477291082023385863549026168591002760062426981047592775035865304473387866585126024026922520329989094887591309323704399790446627981310693498708566100272582777457731677170819387562002471386733750870866664750003787436212061580305926031814113035599678795510185720632773825189079320030283825379404653092960264512712207990587907227735335242440498617186180480129067982291956842307266038116978775278149408821299671801448054372473326310159987783366795455664864240989039163022158964902516685103317001611289408695398329735724495103769957942055535107247290174997510611624705899867700476598605225838794767221636113393025151300728323826918624458230578666043597437248630127332698877759992019290126374480209457156043339089587286282023986793853177671090926774406442065793875661090031511686011638753377642582839022404510118255105031471036157025926960020086145436079966141636274469950108165906443588091633507742257714562896570862779441781317726507138516197293820499916457627780610538772648997281526748382510963070466077007915244537878572449891946437533243616314343757433413097079822470174605201440141752220038885915841456794337414575141286161795079105155897744852546649081612117880419410445366384960764329087628542627720940410194660976571410727940373911812014802061201615573864414154686291142143165350091725146165116128843737580865668739458017831274136610893719359725319092002834189511145022913644844612876149876647274280255523263710968201047919644636671327178159523026248906922086433707163029969124760469995884537008962852610938707123915702006879554587820161424433898590788097770886892183668389419171310701600823721056676053369512394367721068992872383677686570418733737956466984714524611747094263583028257374858379693774017008136853903103179006670988736632135595379049488164189577022901043165214105051747039339286313789341131640889951492532134576458640000285720273192422162699124023076972849075215935668737859964081756843147029274799079638291920229535748790239137520912397639524660708776176111918730452573045514829819586169331168424745973543103644664592936745136600176622740748425913622701929565132792186284351559583781531542636691141250466527907269544373077707892195118309894560905163994129899888004098210780514340499207663652881795556530566436519737803199069721269739575181119805846419306375335002339177960966460338244713240912194762304510010214077691702276148581197228897395464602654171593305978186502234825682500454206305839413557860466499840502284252477397634314430296044468489158794040183584818767507377462475811088265100217853844736682408443790537961751184934584696259083721243194814955331891676302458950918932600845534507737577825285464235376880251364219168804582470954651346860655679011177773478278191079272719812225951721702737221520094477139152014794224066482888451633840725778479455809349050386707345998735891054575518305711693909310872013180659385426116382617435884521620696747155714818972672870484715563306873737808750276274369770207167106011879483548243521162945682442479503308549265529589805608505762699888240136882189451768110392065510327846569076053746444124445628560173749094160276742181233598869302004330210619728192632251248453072281768409981338745086762630894840563528721803495082828868517313136675340047672955556495986561082571970090776228386971504438011408846023838732640643453125332227064859699545109863824354207325222757781074865178171346903488187293263338706447812734036131008055055876474005493780391377692635205497826789507598271026051100739941397137078153502287942794679846455368257742571070883892628700123251508702867497292851553965268578143802364559327655367538155637878586121007765000289473442130146800553359920286333768432601911118266717023161883288987009123018184088270474562362628018276668374731673647593715137633406745175163161772478346865842267581314158556493635026910893970379562708190593122186049283294748919752851888258840497787524089021661112077934074474156305619256919944627991899415678999533251344101186497680951213762902430521703354814133459218159600897379260041221479814119056444280997822570760453099829901980904681631999325602113543107217589291374125972185374117218209503719150787263679014688072903416527443780467848170075625114729532799564102334498155824693795292686180181181255042642857963917196448353694456670528259047991607689843359936526617650679877840296390790703523480901487000648349872954731501604846687685758338514521587912841977212533251115112686535670144576812578751085582148740321070681357462286673621341195136671800998837927401332316309005311431821268029176246031079701587681346355836364316984928211117903496034470013584184328318206944934675843119990417920253898937173426724275584712511143981631928997664836236622038809610683268786491438766714053970068794090721087292698812594369304840355249450318528610877056638168856718825445289796543575638431380888063025451803071620237661752773010871216155933353064296544314289061013310104923667207648414064850637554666849736261300186345474283666774636647341738895548596204548815019945770826087179473583721890202216462340781000331358713605072212220332460262859442801088862856743807861257573211804318353006503043631379081023513834390814925041480129349251654107313568264517497261451886531718078269269616644093559985457998946615457314546663502935473657228652982039890780692167307181900625331152674852054036852815544831327899367284264613828383320376265604848489931513258161253057124804577751666280274955405302147096209180816729092836395475528186788751500522783541308590404281055776155388098977197032133828718897825171632013147647748424755217197235730006867344084673667251794957792639640927207184951920975383918600425690766602099642830843312292801472261647926974651790905766727456570522173054439368169668080864883818393264325445382414239449365981547797410612655076508086698067419858700451474820181726767839320622248494509312868455714993713871557594795203668081648229785273608367384964410454638567650717488194172563393624656134873713986396142579396768478031801257902027400850233466447484821235689521369744098414877750801813419261319035038029054129646318683972403756964797018913596984448498865521397250084973135802599675403134821526181139959915931583618845299201474429052535025623521455123958645918743488148314562447701760120236525599150489551018822335264359874110268408673691343763730134722878805235059356005084870730814411375979973281730189254781693224670563602388068409588986379248718755479335675039645207159786233594807702758909195115433934484724692345222913606274176229714951775088121791970862259782413231315912670118793118203838442323045797690760524614991722567749767390711455682188284681803189496354474554908976516828389668138962515718343155009550607541365760163749882590329965999339805644996225454232907815237250993704408831278476827416631982318497670767876736426613768449689335764121041205525137716721770208980622653767203819740038535784837930610407636033858304713780665527843206399242476401189534423622022490435623674933588872730863208468382169384054796589987658257918708814057478200793750404398593588344363528070016749597101385889637574982705458935087967281281101789999371171259680705564118305631108835236150758458149319053238729827556162895107969955851286908646859897771935886141039949808784753510616401485217080156394663312780401025341813092388304538099092013140307712074021616849494030582802836743852675694205844191385130409436802076898066771239456427288249928643032195557940672711527710795025711674044186649460388880334387496180914871488893644963080245399603060541892199888453312725767122901716985074545012181354668032647223409799041709619109211132209441440581067097653136319381182812204045904231775556097441809212163667468917158090367867682466230422112504637577394434801999435262729016831159509918615229750142156287427062010686116572177594779532032612615444416789311712756562465072217514719859951146822459870958804875168124306039916483600531268097068224527323149538767179825836454556747126898779331782348286120626882154295265591752738239120533396334843848362428641891657265799945578053782272865020415986871820864356774747442773318437049500018806171840852330281262189014276775455979563366119140308072802209145598386762535582641499261127418718873296282529036265494815563771170425651401568739675977431336429118854465959686858189122911701359569044986192941988960948619469690055822602147284202034550093954433395530728444076532527668290727013272396055471815705514567515021075954336894123392916747010822093501525568178780866463088731748245418453432906946039691900791684935989650377511289874696262783177202896491275770887063721845579701193659802899974391941081085706306505309467444223291375491691683581923072234012298733496607011127352260236468529894508999015563679756241263384063441906600594751981649732541771865091866090452988345356061393801856617362437300399104943866066594256452068577747624757220356172636348963039263077710082941913781055117371652898491287966975448239664121686049096288975709159221451055963024058519558143293373185039816901251067937992728778168192256431733295284887714047867948422921021964417082102672704732460545296605198616586698807135787598826541539442326759248604302835915014390623511415859664871408022229661945467353158362072687041423831753233625599360941346723980579413859315666494016645743734740567482665720645586172657431190725483938836767853531124878301289062910800975253263032655144217936301024712424060946767945231953070251328329317719333070418219322727924285908640112431927566609730734754502576098027853327206630008131352328948990616835576749317247971932731261452147334277488404931497421900317981182358123976714263981696342644011743115877721329292049845425687651483501934362085520130123890989633833793800320870058471469121399627065594111214971880664203040900855226252925470034588282383500136748250199817673766184660449466468024493186922355939657890504295948926088985576945300387389636665533749695542529966906171815133494819865415014220924635318386413505595023862416460211903220237772607590666754079513739023049945463709144848359446187435524437781615180182490433153700003461144980914475558523023844130211870042382816291906204860656105854522034676696605944386208184958479386865988856205229551631299349127337890555686450746949508766678562831659387636865565100979194890726447576509557624325315625418256234252414148286671344081883650892425760367279076932212653390065218633365219516092584794363874807244057103319986848753459840509643599938087769062612554643262597600042843109974602837236221929054388058214219486393585531108090667230722441650999145468588373946185221213738869001465786855443617083523076075625584001160322596114008729025250952830365945336895175080088973830824929065389353543904973781754194699573185253096196283264022579729047409119134799083005849470363566833863029413110209267858171906992039701176338798119264868403271322021638759307493422329199960427644129865832008453719807396589133951478931659158492557816681006986132623352088216636182032094194551008744664693397683732855766732115093098750725934528920629316625255105367898090713010562790884822001034201706694324047225321355489279366389249506481899659127745067559359365226884567045041704569983842513573447348506187309861850487833289855554897848543772893238241817101464147873446524415785949468005576023471795860398241791660218367989660862485943641304227949760432826310192047737098002153461754842802316904905079846140156229257911051888250796416828926379594742095299363307071535340531200103493648202233015459930873429058953737581593896990503317458742681035685730847686414285519511346406762976017158403889215294833237478823372086444804012410829891576551580847559771140281388611567757396181141735123721409553881261767723864343313752787505842666332951963682958994961670584094453620805278525005464192065691730823131631904667793795309833885690907143420661961180860888910116509927178123569399057344065218504483506048834436715773382296225500562249543642744430619554189595636898255262659009701959762759117353501227245812671011167993376158614620622281591200966311029897309901461225324730693518326437804712339781014030218003732861035577234960255608080406575553587963022434506006331193992587513650900139085920124690061686182275519015730204437490543428145387949222401522940241625537575462468293225451782081973610227108896710323928549563734299714097421253167455140056495652333334479783001008486306249495281711392988248727648324106218985946014996333520607649302479439159412645134367931185099502508792605165456197947125140611850746699795745704231637895332483149226623733427721059471383683832401145396958923095056330055852985014697032963883181902441929698868211322206926056640173172897455677884082917947393013335017822026452612769688857110207696707729898146986207596337334553142387120087227188821197345666209505019613806800828291653158566370236781305071230498329410712845167140198877393105246223713151543581531451478754452431741884738893035656554022327285724796975485820992709871694572574152036992858354696997953551561082437001014903027641865696901518469732782941034409716591024884460580164452623228748080022481400902690521561528084679500882795648106226348969062112261402108761019799949666543336019739322533867154866829816999865272565451613622285473840507689744345369113920141389267881631467273729930733498474601486016048123844983118944045763718233251958402985596417151113546159613971251581593171464053262316115971269433659302330224322679547733013317463846636110900126699253324110430099889354985451237971451940074481675219299635730812431820888442929627545809627080887395727016628951070342802107325825776441696065136238358951690395012828167220973859947831682135416736531760531894814960519824798422511714640723866161176389877994608512242672900016112778423862754569033458914540056181198526888365132100388761628940278875585649824222141134940816881951551290590048945356745286363117673563199226616242530122015533875764452998554392830404948359495167807902375687608408272527919032527658033293088230808804951995027698489571830698232976865705743933284703292888874437396746196892267947670370055834582037553623685293886698521391991339160463250545710277525237953550170990137261476300784097096009140652117424366960779972393304534230272970297782843939854777417489085219538536832886652935956498491852879367081932831073771565810858102443790221998632696038809505878499239227000858873260543236942829323630491654641134262889856118725685827353067527834754126956412133770861968471325132745315212066648284797033316797186746401422545863008472456587982497621317938366939105725015819433059832691499114322817176788229335778568093748084294648939798709798884649270089209591732729149393020297197022559979403074893116674356523137386528428521054565754176367914084329865584428565471292846448108934846379159241975400682973922947362962764453793221891636817649494097131483802351281625731140330858737557212633512190405026775332847165994323838934242383087534107299226639456751890681552885210921318124810331740939213299234718941522824135873128532002731234075738488435460925437085074628308277362522191903110000916904007102771766087702854453508526889065521164283459535981304039471217007565401958202708558506043755884093469539332928658773884890441401770057703089401388044023785015413936516410114127486269565900610580197738237845136056238746596336851168941876803206945488545635606007673942561149849971601956718310246197616883039812040717525514877912569368562795480265798679791996322657862876291678388195625006337604366884134680781696840452333755218063330169018327949515062652140029079341186620889541301293058380326744632884990310478821916005863361147578993291378555094555110364719601603601142717343873842492718654574545200367786067294710156991522343860854914729729716244272543765904766737752885730325111891955038909872971486941133031820826772210471518617895939469029035945222118896680383757581034613411887630074658988881206174548644714871819165123836589147291420482346445497363031470547831729682687486018276405015528352577422660028821896552297796803801037721481088085418968771965777186021086703168068306338051588584924744314474524490845093194720766322921280883992684782978314692290695856514443182462008108195587074136772035453355789614143790633286650733209474312181051807880326884850153125993847436511393819187884007810280764865004356645170568591905641338108206160516371750054162952758288922661850489907312712539508392012307866132682126880308348936008292553264184223300373551801423439838387798412557577950743725751993445069778301799836549376730489523324387602826902944402885118866356293245991611488668376648313238234468796494190440948860013544616309412166265850110589115422101170317617471958816316063853377473255469919409462959864204603754678737849169632642804693921268517087899968533098798731328534015778210284071499906820832457925546247587007753101572717543998236765695573060079401413427785394236938728387241664681972711116928387457579362098284370721958707666960673777727156646781396208011432607818645663942157151543502519825161706112795147044327459879016021511801075894526766646888020701078737998823807937901178315492783456490828011073059322968665700800465403967772271082468152372179854282852646052982371957198462160516473386694189842856949512571397158592759996576758791712204669044336195055189741427904198964689198075572415707605213664241600319744860158388584669139450391654190451294986033340466918967078896287674247391683336750117191136570895102636522724062557872141217480213783967746683971401851693125734562088144597945376828331063077839372992517817751177288407298019165487763847875082264412621045265687854879156605023588292474849145994698111344378925066797499757391638085870721564346262161351322169036877939552680682745993498256245514977882192838345571873888776734265080205731923916972874388290685023047850628395782904008943077316412174565526710845994914062116462986087386207803161971229069873507961907396983491465110130559565571575368065866477385516510316146462066745264057809732889348108482766091299328425379333841670941605403132239559721816376287202606031013297295803301662388492040169477618105005449863828803265205671361713703821584445709594458497099506428689164561353475959330654406450136718248161222024994629945756524697505344231992667886915360682470305245989916504494736252555276442999777043523142826665165580470363221440252929415843019047457400653451139164875246350770976921795755989411698402228348106142865494512293314755493628164522838111793107047406137700481691264310237954393657685976631804279835328139921478885657325110443648251122400470997314008135455527120544836825781452702077478750945652360408294413166816635767950060990207490757443296222759545560729133625919903377080584824825793825930568067537864912867825698671477804880790330195301968905021067719653137080303940524421689901591537231815607884782687515518203687913214231750260213133285632678546822198855105614335109601620131546762129243156520916767634776527676671948694583749784128019076163116755892516648449866668806382029809283896411044082296832294163709855593284482419267244696665940932826105773873298735875872536527063682569980113828192322661345274461383152157731036429270452829886815247978714818876629846911840860303939829535913044177689840569462056556330326747241514747738844561755245721974030276500586333864762336702393983749043269541971407260299090218915368445398775173885584882160804529237091472993624059896097412772625010741267035125135703443981663089755194075121506186420170063951171478804854317272031657569316791005966374615645171584564994948884904662599654001262723459865319373609087105341388406455772584288029696666232270069602036681246578692824232274294171025141751030110669118087063729373373572779052721994976072190547902365402685950464338901875331975631614703143320732704639315178701184312691117165149472633921229980564263835343345366670828725785712457430884306224184154658412639071227007457388834598279368441688456749927041183489588808311625962223936736704102377610825455622016885842788633077049693412223040273564103349398063257349732173932387892504192861491233990290820636149601003634526586458545800031134826975786016551792300983986308165663953495440811288108035600253519878572255664361025848909786482954383493445235690103103199058895756314985932783064747065462580799714793319753633079189041085446819604781521601040931773281693523290097876827734134444751048138731346603268808641488465390812280221105670363681111606583087136130956072785132408824978086466130458940532055825196879093446156319300882591021848282866650109931242933349916927326892999701613754936031244091413579881934309549032874859821454203003815006610303436408277737722094549552748099925648722862366687904542524905637058225667715242284144083629935193820857164990241149264489251850183026256432292730009557509866333155583966297549626215178784664484050154909349689457934566488524864536848966558620966171374767340074875867633999284066912935912138872340439342835713079526588551602969779453785126904814549498673787901425734109184353378132602345157317162325245165326177371762344760351255426545444618567016379585751373061005800851105534992576785964763979726009765600066837863444674825379776532955968097889538563520128320678900449782525770732947987336256933445346632569977669311339711253347701937966752897754231775594857032399763816297456944859861771450027306837166246978708300759226249904177546833451680987607741666102502135599760755387788026830513218132968480285630778102370901153683829617657650128928909412596352615385901801104765155780400406402307170217796970254260006412909634304667607535261994210147753486633924717428340201401421132239838974080740117904013625930515302934176533730679180298953686983989048810623164231504532902130440303050917925255864591196859987077198255861999242063171564792417611144745643231717525946788653113184465598867904869066433398038491068845295165940222528281365564425040904080976378575701085656906955916057714059373572803815135007459749597630241786564441576392471224566539050474519438837018653299770696844622241941802602540324643648712397861993834366173470819581500820045664298436465493858249246163587678789188159649132501643203124205075389703748071649090768878177688896079400021130525228838150086918242597739705281828317180571456575584602786758383176065124094751424229740429486436403484270951739146795153690617352083992095853852055425203156671171688816650779952156555225344814114321880608561609592711850388785812002478917470982191370862932447543861313532162222533440056634503690033369613032245094005379650068333654854656757777419599034333904809585742772694431075613540120111858449211136543800007551929383335770630452040431193959093221820502569264251750016875209711119172821683928645946564668733024617400765131567553337417929721893761883844190672872942945669063742994555519397646032881563554626032057119492722602888945621003621249889894700438723779862064877477857477125494089713263446440321652572013769361502187183621463746472643793271603596763048278601071819002684240889733122642617987789783284262735351360554554226164923449091550033950634651661957105761370989311886098525911528969996646653521883226608320396230850537233784404119233360508229956091100825591427350235290310179334968627657201491226968267887599598756415067262958780500704949599147109179536655371811282269543582151565758326456702156921328664739325867568189292982443497706194396868182724234426990290486336215392285288722162684147892503852014584069952619330830451616170718854877290181518810752392011166907665023394704751272098323980390651285416553812678341230272957710251871518596019671489179825006883685634777757615218425540045993972599927044594221461777677501950720674287102953426344248784413034856284713227434922098243142546663756846364515907507442358383846292145132412959281967922053032279282830639910548521808324682061715920353898866809937924781945252879183560997233496811964601430068137002282181881477404277018923925566004218216761888869894413789335050825383781446213493961709878713430716566293274508985750995600598097997329130123818978508650429868988675546004294651601995048264437924078896667780326935105487109611797765296153355697905557343982811917100283887790463417938984781830533238538335500893196381812799326214736747121659519645621049156487842282361472245905241750545090529054725741897903618033724549479150548744509219949584279421606719479799575933461628981007957971844786200174282834765278214140884733531163323753042646571022513970830019917363795062518776737413237848360420786035002729966923934236391369338368943507891025025541466171685560542508283127106204073580708716176706796840989751946856083699565726670144649692616375344861467507291831122889396416290529031352796522761940166266842420800927974274844622761763148134285951943917872086809867258468673685489423594450396056391673934966116081375265975759436560088819793829050496188950834472691297946994777200748031611770039415441315737114563837099862013257318372083667227802710570375068966960305214989220572290291293428651586746287172465374868918052291535244125132716995360843104889987441564332181539967872559967957502322270824356699842375467010620777011954398722395572040915038063775069463789566214375860393458021060553335072838132442679799762736190528768543453337544507518154325658738582983753387594356744465234817619405314607704137473503431448369022150785731882683052431797497197039920920584804744657591037475918179674462154513462610103317651600739060621765677374217099376374759854289971669567312709123226904740044618987118215937569300871209390667643325369522870192267741140142746746982298500985209100002643088965982297758962845833667758007593979886677495503174418794890430403003952039946454737041407716224658629905477398649896893639466392888688834752267435015189170566578344638020985882483751118338033188258243366618870571958806098188042231725662955280011213058180230392622686418659530333731120030440534878503693494123729882350968786902144908800568119984714941971499264588146451597594493135186597905019614469291439923499054692492492017672382985616507618053706960872358723357349702438299057929324880458312412842597560774750211639620664861205951418680021262635725789778523462048435876397662837853153468870235433774679770470211537710588444848533637172888489958970869871110850771293591124936085326203934694019226246713376819499024793567792933094150238873368260220455548577773036198953476373973017854248443631364387143800457871434505865072943615958492825325857466842569703933458686323296306041812960346405039072900691290886127360910185358856467201413730666311306495425963729390685391417033616155626565980427584739980744698269752431910918126619794967789650645619330708071685598493288906877346512999420776643259885955940051349122495210847144910980982339075535870180791356169028265075377779009238999068070367246389598556797976516364406974105017320237954475791546012952274449571714410988754494011103235238808061818508084947554344944939232203469018589643688307912167965699849745028360529719578865685754891729665869958712236756587738596564001438211402534646300979372592510434547973150721398234058995270373630984014935520054758968657891298383691423792844322934782408254976843686802429257377939274829899061342905330603685365289817021034216361275986774929432977632677773296349600324891288017616968276319652880630285086886399222524772145185767594288495467786826294915146601001483783152094306646783061434966865908118730354824678484062034702411916001511917952024460379543910502900542862513946530558455045579394780970713703657315775758899012589991861418285418817536234789595913887842270247721029032503092909116815036205454941677398588005402413870379109988103981354275416917184790190855327735271719951485322811970701710555750796157464713761054212058255074575073924722215038810423445282568829775625133339097906178510073334532094954313332773545442265076174763234923439319513106685794018503885681008642721163968182878067451473619857112753242031043621826708020791006571791417870071675811196325029579893344951407452931955100442874109755523557416117844642878069544145004341122453198996336452465485547478742675193457110675963052529529652243578302530323696976026971972784655027145011560365495205770260437774111582120618935632092055074202602516284345350958872877537425336855107729056139272441069082510554390405687962493592549748018310699492664520184178739789837591694909991064297921997050433444330097830082800493477358388132466903425024907706592512659094414697571990796129111638980465278661829667143909116067780341006617472846934546652091738573585835748294670871862044469719284208656515908752926960457043992513549165504603408876433885228647510009131236736058454348054392553586717683513147190247311370211237482606085962289717810112052500316076348154146495527650143083096918479692322626066448223342264625745810222184549459352177307971749938084240548239057977472424611341283316952888790143907691449096970421242498952625154274859009103965909484600686476217932075332919986464652572188042008575869670934621965654411235039218790464011002706857895729345488479014402240329032902626625780563833445093299065310844905271228783177396994660741308069430903693130471002028542880268628622869732168770383826428806155258310496821989677549038162120446210929119711661394343350981150404547944909942806195370884135017628521803891847921052367614948188943923686720819548784334057424406061989972119991738810432494165601335256076486927319116848680560826654257769950033305505537570278867044414745500770994207224107821635289433621270874453037358079867416182661614960924840020129671161708147766400350579759622717708465960736617422585510176058743060320379712547132134855878507697301304111982952509837081848636237352235396570071963421844776434900920694836019755757782480558679070267963319242607139010693883354194550218645599313087874470188741704841033333741498727158354475591347679772712984587878654002377111358758439517975478478757489803402603202279433760103533593826169835840204076617227130385814426860927023127445731612672416072949152760369821423425240557777295961303118082609833609340341096857196611417872524041212411546266646748017019244259491715147594567603425717190314481420331202820367722344393053825800844958669663544936274440343229985385896976217159861464264577925420871810279024108120295224794761877066481592784409729577025759757428858035401266968169500257419055747274848801480057751835690769818757270513730181937767765611103865684171801825268892575962116785618362507960769209507782334287013732394800806579088692536453475193787404011760549895191425851541996057157359393030392321045411303448437178116623548559829006367677868472393032335435880191420715095732149917274246406709344974813605275062693478418332469853267010054356626297149202683469169955025950191742790958838523658977934531031827025737455506327654845258447357869216991600965091695280907748010592429487791502614728327987559196600250281585623166426621519117033580452505904164572239584791470244633110487464974675137472513769927575066933894370393296595568144088331625419480616403360282575327800529994929921094459842680923142737356869683571945606921884209167598221456750117622179777811735126266212426081996008399547197002986550940486751177437504360925901702967986780528048486259732944242997332569700143385501645330280321123083324838658749312261705302369791171651965009725059484236916986463106443445745336536314327399172590746430090363378634745705107604683204129314111619369565610284870078698182208559344668424454796451297116071859259595424658329866244110222168405755461901585317312028456045896055782591355715820142705622122300339465107852979516406313920455820983505889912721450403101232706490049599524291043424766124169833042126108887375051457331727092700921942803299736665753650386161886506497836174757694049392762245010156311308492772816890531360540489051820486745811812394459576980696629588230416781951707516091733028982885655095564436254367973975693580825209992026300998800524100626411651890049254086249948428669751280370987495107577136430649464178484272336821219399401942977849120561021370882770070191908893764977344959318061930044343141904107568837832002224213541439611237172078757294051475058649346846422379260589570648863557473864312398946093030258469786303852300066072575094344761596116403544152881394908404585891319741813045631636274056444761775250451328298989831183004833532262001469281450554610103215250006675052713424336905931238678731629019252045178110098886169340712475323255169822651356022906466165709329746665588559985769650734909253334015622957256015295849035646516030266879949877853955070502450880048040992716622736431648787436184183579158705594191346774017977696371753536265042735582984992539879444088975163081755463812193687933353771459686379937018542433190618194480245905349995143571384701083834843492438410375346787357054471680506440973801431583751549181278668031427856760976220646240289134835804022634109383439862586709898236429718548188614762402748962032666526569635131594515955770373645126570611865796377538689292670196796374995871362771456041859479781366116352251492910518184308027682276192852351362823812289187885452283141333725568702339624594862928432255072819742940318278768204194636582699341185608489639182077404690188821638462254979760444624209652735142144501472801598132092965194375330609103566829560321783373234883078600976900048888507928689811542532304811855896923185539188239564000883164834909924362311859568512706359027961924127811503237342907514129947504497227642890497722844000305554609605149057311620621771194285984907948564617873515458083310625357219541511233529145856079655409461932014620985798929766239940725298066203760510084161040831689139543024090533783507713956900379203243443318990749958084309313420440411790451160750626869738154577777226238108704309826185127615472038583613354975235407730635268306402530177270882819778036831526228433813688422146924393097098532679712218109805848447671400973351560480443714390627604080816296640978128271224891268568005742792716402609214619839462759171468535747212171973909474618950196474248469665100015351637518780829502215458197659241896441437769286370721993460045908164297752722246366626989052442653653105624080917526460631575762550341556292559211614722141475280062381221654090504416078745493905787894360900711947971439578500939853943615650549890631223985482582700354832200808248516390070978946624180682585431870660286910893365196421506754514817643535522437234544954552317526698983221163426162024486048640806121994337509423937523309178298578005657652902493372895791973525159321783354647666427191741251888216493620562405074049939297976230229082526041136226343069090164234876458765883214103735432623225980580396075500580511458984776229769368788101700021826161082156151719194247219437123562158502549046827435999089430260490621560605934123121393583414369289256928852824771704112700103286729846973928836614331738570132576267964028083328213536750624572186581065724617832518831020373203806740527124890998288821083363931087399133801570966351450053052785291428790899623575639245006591836037627341189707130974494757196942731917681969140247860276582829373866720620026836672138988202725965107045310094116410124068942940094385779319776836860509169570774576143640475108043677193329757756036497479740735873855009465095538672196956014488169706482850136590856014142288408984822460669319011396154836087811368483299596888747468935146634139773097851103329697557735132963322075462743753486968724367423761955227529130701871831202019281694422371245471912280931553384667760073272745089540397408744382453562911064770843574559394493999009655137946776241888250563258764172406701478068862763699095425259223863896527934036280199562702693602874629664507330664453446916088971217055179587067943500729734838054042687939024207380317392791527706553371347449571152121776349751650187788646986284456185725340873350411003324444941413150097951072812871400694368296069292714061273374107066398995828486696481817071204068299778165101571776045954369128480451117860078277515264566607093648531294269416472512668568649323034042536604896003443257898474481668997902042393288079613885838028558869354310644713656456583435333845375206019916267417863896888163004419829990877949396042240916216855389651597079404211908230527824453835680873188577269495091602890617164261796936407180321136477086528741363414050050828999115181989494843886647005645163666646954635277126642431809806065312385503046212166058588673829230017178096197914111960812294621862793259177117577543313700831752146298227050104654416021100277438469925712457558272060640787764103768649876887399029191356457923213235503628341342751478796820945402381061579094064722198078252267396092377159464884633253033904345159790519467068211320449182649464698830557005546220969177080975773452872086050757803173458541725512735979904893772166870103047791605429207508716836241248333987354037838101484192792686292328590891616036946495426058053565121036861730853846111663421159796737657422981414261786171776632867549999380468148318219795616873046197690251022413310997509314364721349632088243226806116388765719719628032212119541088166957862006760123605125308317780194959852777788843117811079872489406199051142312710404648836373856297901825287333896563769085451256305843684398497636898477386353278461510879736469353590132217169027176766299113105393900662678286229377815139313670106931325322419912067330977377171528503790678339772363058319727703192570157799310972791788381429723004566325411624861942759725907836113971839882919404166920085908911357562770778431287456843248691790677648609582259595191169970107802547390431954713971842350901689778482391451456800666590739903614631915262149856507714741403807470402321118239462024794269315138827446603924611760881669333796262448203043880321913954339504718597317512722522619197566821196641180662609812876461617360509957732251316442337113159049763518633503809941356613532633174832286258124823088650199335372372538235096167845732054079437084183101623217663742697192665298777932440820744627614375808828809421250620323554398355051358433098661036488718868231671019470842558744544281561322809067701835341989322738876000917278752003227663182742011475339354492726836245209638279922642586086388851768786159916890456978307403523679832628363953282169862236258057323814131591667846004445983101646590091333706904253530506352521579962748506034578876316742767260397752996573754668526596695023220309471191379450282073305049039445336322511596169128653619922312306445024524414395462922340974162156016064087550505979039104795049025857605508176581220343426141866625005979908921341814771409070321453630963950675755566839218871694749085901969740684758276746585283265804396482292463435078261010152387431046479219465479515769083386413169640298783421152004727029047083906807024262082223744437516072903293515071903701584097086076308637025237760285129678093491940756473245990476817580169526476224312434785814829775485382613499898401809166561649367108596450414908181428195876374512905838512354550554425373383152912888846448207540740441378641503296879853730480623028300193757787080219250020562559508013878493712748821538331990094470763873396664028641716096620408016041675495369718936004010816034838875104337443220395529730968311727576639705371155949769907573117615196047560419190168711596949176667332418257925724161059365355222267294917186415418729186118694211957914014671352373214001014972876731010104372124249713851011586974844192352535134488789307865688409351387455573167039680807984367475778653202747398172787208548340592921508326843075111181399654003723359748320533235179580102964467019002600896338164014887842652559802354275458132188944756729081289989205060859905268172343189685305845036640430540149790808913158808390529779086439471316257144872966883213592979746838776999340167141187853399743931251982571123265621941094851710208729424013614874451596628471146619191172483372550642961934190346900543448599237696810042809885719018968322053765567460124141411550910356688764890199657186083026542485320000919082430463978723655855700049639166648931344064991284839345342181789045776170391659496767988904132044831925782726799321908309940733751246438929147520602491341847517897807344159051279026050549156476967231858371315119876360937212186710608203265654417141932260392194595939563228360531027054013605291372893421528124881330190945442925696169992551753768239964295156189708310996098173188912236599802308018174699966055905374859670872917105752495323859987650592438236445798999263471175998226252321341652447958332847591250139359777532309758411374947566678447065190637641675116394921720192145524921016882511035433224977568810174263632580187952209803253930151987527079041019911114479297931543966050850707050061889786637761432398357137957610769570086312103154770028484681282219696407991837597672171557745219962528033614848723978739520499902457662280486964031164218957635114387666889733762736550168135578889299607248563081164315637683343609116866225360170637985785745834120749935301672140863310043340171741391527423281656940683012251587612442691319348854877247636366891037601711865375763837700867201234009041743599896706400076722611148301963082622739493152592129327439626616982892729161618384976916458920657902266595799548932261838939147244146353731067872002506105586954083140850002897760907421764071559925421713881020028313134720430182441044279037898730625894878923772830345356631842893992080870382759474266939041380349537200711645520118240080489726325904456817308224532355207431547386339473943204819248389187721604849144559838688309184011503620018094423459369524405461888499862414423631620961767405336057201187590651901990727496680876926511755069224194272916800666138031127958043910928234088643782964822768882408159439237723163098950518142885253326899133576893367422318844442025417133683958385720136279346312604706075489046058800481358317622005293340536913757237923704696914456132497947107141974939383910096982059382188414022192223212460942809116355318610472233030626983529712153460484399370637208018817798099562813728315343300759784716539383861593128416287799224581295628826403370747866056393165690183455416910756984272262596931403703443894016048907368368176404891578070602736519323404442941719171898005674903058248357671266779675388924954164661021459076828440884786205399186848673522740143767820538611864737766684725452665331840693232210746635177701496701210212580929398950473306006778771051890093016554469245282154077219236301428446163018093185634069179733810192579699606362686002215628729341660227473250081325388701281406867127858932827646202491632821510934956266371742451428884650296293690604171099298505865897724957335270909973482607515336206153863966343743165617109402474677776545897870512147279431480758649391413757419071939858144491967228112746969881203739633561609462844892045723520250620607231446355470748400785124851505290492312434391192498100570861049256203007358327775170725876343758040116247983455866888629307822887620709208347181511740290643668200079499307277333832317583458790333785218476977019830843255529861199522067116820075500289340295065583980027912622840338353204425293385806306710422308892307274553465172079733355244960662917278274069211894493306169390697028713538277882972437427155599287495233349175764244067497009007811905619274247761207626064405830433081821133058437963489592956785988772288421627378727044871412261219163308883270310840305219020655288174208459103945100270958321967953456766520400008527132761860525230566633970806760271272749892392487284827076083611215529354061964015913335809142250378072719791931382079197609581118679579925850729349694118159937483416493036222411391652453741169180548647014687659786885244969401478231764688415635864943827501370007574718866065444884701805706846800348392905350984743711651137841194925995700342187279095006260732333689426587364481299047084205694307303117961588838292289968660749676072472994574170654973922728999124746321131929605019312066382940126368146809734506673865352247241981326291864308317122677870296630583296506492631721573636267786012496169543668676271529063932571631001947107544203655760800183563549246139986998603789134566898653514289234957690014216402777919400057920604034200862888126833325613342615915554747084168282797948915169029796436761289607228385331229109990523953916513416758563621046942150746248716125349864614485705162764740776453920647178680750548599553498763415714694695612696116966109584503339746215405692373862497212167733828878239499873216495366098346560495970019727373910990574563043097361429986375579287917223824850862943213789047316604210857965487427991231486102236292078710290201716268122876255752423614848415593881555725160054919727429241511944842564571483214101702699850585510182165765226570358425274627905957417087243766872716386750827918173390680791649945341458177271404558201005817168469982718899956723050016421474904637239483952390754587035359763665170514878221002544752392716347567933089994338989211508373935088163622318189438682698041776945319847418031001714501059217035319926962799035859687705204249350348017033732692960592515942544402473984038623567027299372719138561350415662434604007762272092203195436888335472522883915781341063097424883788426123423468288092994272273310558774874540601074027354218026265347358940266258717675358233904368214426103996113415587355147833400666179719104257968400183531046034025780021525680227645430623303767754468111264605471733486009155477541518043062290824061204757128052894655407603417688671474247559155110568560584939509345381152199460606466968978498139671922032414064416498292115844638122818324292529030781097111938602680252246682814957092768789757486517847759631351454520277710541393267220343719550376094161745210985195655047559173965654397726271440451422687715751978957873474604869069927638015583688656743496279875547388338975553847820817157628929641182980122457937491494830018526038089286949098197408224424915004456689751863645993940739344792524004435076437508027701983034943246665232917204634254939290823690883257479156814189215087077877915160130396001093261133753184140215263672674376699543622037412902839588463691630462989628934482916766977236204769980880401579048074762069110788363753687475697461148950332738097169907714717954768728995676379953960519072241423722020608454130651068678875732595288756180121652056809216579537873288552854386765306683631348391260860356289000197511280870284545542643319596016143912709067512227958380844578890263969937008138893022844373973874625014884418659239896008823302268015683751282445004078407076381557661555143168013702545300656998492642974547706188475764396877531550347315053731315497579053281136841741863559430334038993898699770491025691994360799092002054077494864320692955495557407208570686018078102369199307058841476634851158788420846782956860861059375505275229542933990346342617104664012959949728154958775336009710076862157753424701826567669331351829785534249038772318093267396337609919324547907035516178844245323520170305675188565330178670561309298709224321082579114949155623703466012102020715266959158785282620016811097168415966190465847332631547529786853159758363681004969758002857587846612869122020901501746279469264307865819956279174696269613308935204430235664283093284287478167780425611171873817559040139766149876612844204550147915284034657325680166886695941981752381634994723411521906772897674150087333107610097002439356136599809396304812675058854698515611114559089611553255823293256012484391177732727665851465353926851373369570874221828494322234083071271214961028475018025146106292109559197949453301981169949533709837678927667768307974989258123927129506558757677973686923503029975922109325088992246753397508492262899214987322338956261359302755019787259889857717536165263331666613665330950032567915325275483931969598550905834324253903992916155123473326535607179388082911948823024432481749898814941178332531716549153462451848624416680697897398491551401719370070859265976310967088745809063725205638788471124109762563810022585845524700455857163384358747342111477943245938161839432747801584950831163259678763237135206090737639326676113193576680218149009506492634474169688474970696619116423909526884334904104863290781282314129808797573916751331094594579168401200552742595375772726295883460334030444848630555229007381710104242033117151377821236201818250268399520145724521071711272095800888523817697258840644212980132726528897688869062772545786760362043064275061721900950506463988728322778068886388855716224953326747209743249988426651693925099007041843828206218040570590780581550363209547250512939465893185750418164972158423125443922262532361749489534605145664681136015197281692935219772966239965217095000897879843764580787874074085838949791534401164514564615729691142057001820603613516739659697637072548439417543882971444615412362195613658742955387210566334239027078107048205637413179762304161256388127288313395322418560751015687808475235519352613647642400101953823652735301528672632079645477208297664763046766188727372192420169854746230753943471481582280356725189924058728763494002088644404603879637253245474826970577868581383206291888649749108660667079701678146958392933224196075611686678489631193822745528889519832713434471180443259216288463237462501269295127232314993797974986490716182416235877304754656189385642618558911460680216009204486960365586484869870694034250000153432834326444405675835174120695779465759600625399111841434095567898654478037932093566446462628788560064649530105497503107463660635554157319554196470985087936918210371109783798159558228378830017336260519899022290307735553300618566465117018766027633471781981403046201362687163537421324514449129192083217952578257716868459005157604665456262046247867268166893382777933538045348357651667845185609586765817571643798613756750479492325549823467465293449925117652236286529887839212522856127832450464457051986977697662492673410205910944509907650571913193606267580897982167436234603631691700033866397644123496586549442928705769129582877620356678112553696742896047591890506419924415973448330779651534666570330600789780907047513255219796549902917928683470121125026796276945504892946555465972829811610289971618903680996245748143310826592484332439992374554547310807124562244980216197204034248651583815619254549123701927635623977102041522783493979439629449744352917978381755001148839295166142061504826617282842191277760316639743222493271357334820761148075983167420050917957627572245392312251234107400883003027698939818427009161900859825459567748104975251646217851896888356113682146803890256805939737670090054170209414884808744050324043557098071619724703109553014378196453255037179535560729808901032629034731865086499999596962822545410512081279038677767271520622163761189411899436415469064189161281915211288856203792616175894918282717091628253952112009059375096358236859180697236769742747980184604233658654032629802791762116730072833887669405082907053038683406593589616435519141231513181419362904791951465530419984869576808106277017090299257057143363919591352112142744825488203315605654664801148332394992128583587084488382591484927522604150471437382997214827477054968394126541859300717188542071337288062336863647600765197377160549240147368790037781443814260998903274919676271740258487523755455625108719137430064602784196298132975313827667682771743073376899217174277513921838886322604961130214072622359955896132746393813181463339673641058339240068575130277102286964687676386961801927638616006241831902249236133843179516836941103000272834701966691220656662702906152852161449590739259398801663062274413609115511684975506428981882329265099007548534144991358841189732130110208571512641921542376312475592430825118213424387269588578139083142985618046103814772262578570855590643039239257076802524640762311513633957258714443775606588146849550672536979704080779402505799024520808120756219961389995754725288957758716383844373013283814417882908653959565835904260764046756656840520724577242135698024072937837767805043358594512067650481018285359588782645554713339311866727261082377472890764334580478018077998489001184693254237145813787095816471168990901739963399224758647316745763062543215501104482136575320853651729742271240158368356098218726297838387981366775090137811020965611836527677326588367179690938002609025217951888536380898786749636731085030205096752101194232239885076816166642774269895555789194088074745306606971009286023691007016915287592568158355157694615368267983843049730785352689395204071990865385283365960579137647119992702538559898064295550618459604091917404537321478450787011298588353922152226637500498992478930021215604552278519343300481370420928537929521231354983776882691515273613168164519847155606404475476313439669537083618339792533538195516853256953173344625348188940948680110253533167222564544088398947331311616546574885245827417229315368904977576081983058177524993757980481887108085522017841910202509578586786810541610942625762494229703508683762711243928324701595293929487078971932198457895554749332516610479144588616144868826249396946246418446411078419864264754290441649477125111746174516042706260951578800913027627043208496221782108633315400861833647023768786131312845235321681904903236028696253047479642842153466077605343070350689019226270442401081404604418634997820355893264879274560649836952839869215235982387188173961949217247528093626300281079342258903816207248701427600728091317371618163244510247659729555307944338633114984245507351964576497068124875850346295696706157294821829085827473422778854911786468264630281082591107109265285941904122290035434963467419792166652536908883688285787024762821163287401454329958689648795915843931520827720428660534681565153482237803285135101992604377936696686604423233591467674375804508517278685534390883458998711852840990892578972442519530754324255199726015812014107427423317780637115129432213578643589517961777258089941782810413163373591843190103774248444395827253140236544255213795961425897429341625191466607605540959046214898947354033023854658382831657225008822562112106689654345471517219890658899423130454874637277189459380442379369521118192483760617740237396896217671833194663746760337424923370239803455598439239075199170821615329112996278633873948048092826460761920384963723250233628565328933878772764843732856409486155331659817114554502101059757340912295462152076030773467961053553423639358949272646898671104002816573052886556816517785075754639063354119415222039984217240019175621497931575481756001330325265714912852923938530066584041588187687689830306098001033449306030500670548126797849232922584510371328961320498673677093875715841788756900690852403865672897765628031330980249105835690933223147830709669298653428668985224174863882647605746945865779166234155679586422157652490481160340875009155836686733431230949685879553989190842130068105435316436545023469509892358160412460414642953912039854675617490817593697107096323161150691723305757603667523969874895756641757498128071051267794301255901613029249393297271963615153154467399326061551133155497445718855413083655232202710391605505531585480669764236595857568276130648220121232027086067263375088291366566157604058708191666387044702497326651241577231295744605610426964286461287420582345093850419204835491523619324181220255726656793519924823041478819468282980020253674953015629579284077165150222073883555731078989738325793852767613282469966616371404689268770701216341840937328994357254639808903490820547754503432894162805405688535200057560523360048861457629966967291575601660523519276542723807596371081304389972549825439468439590137067542576387868238580834889553933774319546632759567284351275397277408939838089730564537565386383562321755529640103908640111993380355148741729905614961464356048370436012270226856542990871479199287210710569851563775080869370022555456450598071795648341803727055030651315390376212766886536492856211705947805167576271066794444003681414707873289050755564795470754690283323460868305472296581809679574674361383487694272111458858367307926426763114411309069369908042877627540589653687428214117747982785837646225957086133011099852139542844770890086252919853575307157505258222980039166317794875425113882765894165672373589973644219746683543156115098699444382046795494465716253308509682673727082956377147958609578687832221249101654222871210549105787999029085004210058206172047291984071449437819177022564540814293241373569238950277430101606900971142225425443915450844591700688004239070693561292357498814611077626837040182875771437164307619439784474036674140815251543031594950520498837808577442732938427866297437625742510312096593311741852337001029855294514055842209117741149632489502095624440383266405731577524863230488819160572329486215639997755181879188727001883416736091647273997935815307049902493003543621825728853004358681045053212372362978125092912817678879442623246079081320430795998663253552294756265116850797793038888850966101601682494429207250913858062402889608446162174496555725959554100658647267336312074665238118798443885443728905814666472795884053070983177558096639983012791566098882291932927189016438640883836256393993167631951404871222775796475832323153365900150410711531044750090460726243499343163902129240668760019079613732416957060911329134975902928119723749792893157773113134651008551356348828247020097343654637237849350666771711949571404041138323139227060892403293215204638160382184544104066916933308236687224171633689882631502164685903078418558830364465471661769154346789937202974768238700543670455749341960403154369747075044855189060050569853801979372392783880934104333352152685174811840026636153312364230926446140746300951373031145468472680422325565183757238786583635756599346521609038015004670784686350193414511828303747723920582968337095974469964894555275711046919557555679742784757143379441920397521995016489849098393350513259887334375657153504670787962401000981836771777869437002652303678414567672508092702171526000283817360908198521809579582981620067703223960834886170532763982389431878179147116955899369969626005725136169135975093152509650184748094171371020525568097111334811320716783126963222135809221054342915008449347228774226821534558318847367581499929944139996418387197970024001310315101034231727579813426910999982761061257682527687639995604814947870359053808063848904451163392226969969780237994210460864812651042053083051997889658428288414762987891908002642497169085202334048557653263787908203120432377515204457950406756314901809985477557797413555473146204792990506118955148257683425891693726648083066716303884774385940304291724874291813036413682750207908071465654942410326394556741077230066455872523009519819305233221443843306605322379057317235894299726421795860462818789956244925182373205763365642778373858975854463885425061765515647461721700907469123072546507874627882128981006861906917627425424139683695296756111188826892442198279778647088958875043670825810883326011270707400060206141509173001977773410448743736548128201066885000918503476664305588246191982506746933785965903421931639441865932185051849221617335639009963731253370527574657874918281519764033682270229106514162361276837864941172012226114951892154981666802070802243703537457756054844280146104066803172222861707095603692257698877325375448955546035682778904544580163441261244690704917444348940686216021747605603168553494788383220980578502476235443620902686189646204705541532147645642368446230297716822874884609109821879009276041002625909673079981708942054609051470655344579070200301778228102324589979988838977153130897432434184513669113231322807575359240825587141076202125502767292302864897533290307183418908735330481083788670205037695448764202699871902190034549854112347691037570479619364391995884831273900468658473818239425514196133251159530325375221791837020582354421339840084511120621234512287556484268370016594181261441886826978752843881952954099259236472303858958095842842979040356354013694369201511089751383574294400221317304203927017173340395830968418462531177966611954918084259292331903230629327262113455038013234469720283798232157835378125866562394297208731198984195537437548404102917695511096897476004724519300351158302511938521614982172733905775323097656561785149937910200207156926733877020144346355393426168419378929851698479810205302128481133686733515572757390009245351561881050214757070952985545330513181974913643531899105378338858438566076836234254105567453061784467711132642380371859253745205751874939963658216471909526202434649727133264315115039461814859034324045683489260469940925422524205191292042475927567477408918522688199172485825248814102328067187799384148113058351798785571647612976138438074270973172688150776426357272420736088011580377579288664152538387415269631249566035429506421829957405625201850245463645534757200171480616870708314262920885069763555520600170697526494455048815917700495365671438289688714930781029034294322554294092490998974182856893257328240545948170103119796587573522746359042458538779734842535209440755978332361539735974603660195896272183560937261722430355648665730724293686792215106484265419546768571756878466384691355424916182336858421828409678539680309431215341745093776112624812841694236950953462494158735065518306520663825791270104225908354197816425319409537218753377388663529196714878893093364504660882791545122692199819146582714254236089757552507482537320594497593288781035082527582053504511340214059329247493519255192424568329220627487878023683024317501435567079630708009788523058752548841778373623675940342061629959714556130880396525164130342583965915683803668049396297450330973015548884833815483922117752909621659593749382557599468414817771860973987366112777320793529630490442699808908249457687301506243557795804655351497002961333832604818381732699013041530792237711561241573482881987121304102962314197670470684407148273887342847280470856394473187826771586396990585266723434645889287064798929936205038918077086085075892295165032822688743096521535075853049781708784448946320811092872933476055850513229155933024504480109277140295992917703316233768137364765066449059880965667369303948080469575650570334523408725290836750261291447823003339600555412586452740546528616030628659413624042970975073605376420020477424743774995181301215439508810415775650859647343723087235137194212413855896588492108583525774278406336836480038601207020318714975022486518102279279111919306697251599133282734396613096337075875297130592843129862927382518914624110703235154556195348126047666439161553026064303471642963053057942590821801873386244145497855407973634275562786643190074289061449332161346137838100056571624180807943465235479499111806200291723182524109480981582063584320261328195457997450553897626740526467311628036044314930093967202665422356214709746530902773128637596536544773726168304291510036016424286528380886473327800766771458742166301544421067211335142542168911692856748868459837458370154045085347853212738315004046292523550913162262893060519685259099659702709617350641263766534677783399350150341909706836919112439351151103913202799059928529164678727622156046484309355954250332492370234833335857961519154729512881218570024739662756857003580663896894099117123284826580142882778109022810643966578603766403490645897761724880987239399086590004851508878304676061032329895531091045739673440099478183793688553212515009088294144403507949332829059980820315820954849116042996437667929440119474493375578519389925381682192363117572957720606768319665967205199493111255508000772447774940117174001486380676621401505266917818519265090096181564215596505252420925742730605595965872131488459041590428464933350866163576158382954347442426740294813662062703192437335644393894677674456463314732891618254282225916955598545802192394283316278604440848721992973160041198761017018436139151100238823206249236708700886190613097936730532293367396464753892223035307291664742372614852012919377389994833314352376586756292776914053615489651618772416349034181409051132911791217366813673526667107915503737096623068759294774332202184490127909915908033936803470140711002721118704313319305061336265364800552038668650633630055385815664439187888020653164018945910129294701153492634142783875444595465574997772801132881813092796340388111197746028855789358242290141861415101884685931380062333844559431142307019961906240098120007496553825187845504467036788886877371416974476883810274453633789035830812195655860962553201891559028465493361657105562988164769530780329805051573720927772380761059218888583034511324422027011245478161862889663688580821162747477035366038698981238646619908802542326749659453091155318513272325338529284078698510235487624711862189727643852740179684900773795780093709664162356930938222262068422686295233083753790578793625958481368212940485716164383868740745605961341974821403903120356403622135701382139094804495172783173637818539481868794743192757752015715486383099359917931673761341029022271218748844785019514335723140953171182959053103510884542012480956562118029913462221288337203674769299830943473293385279649796156792084933009143472235005315008475598549715677243849942918276979292639275534872987428320292316290025821578518707207231353864773771936527971476290639827708163983188475565417322145830259853950493440951061113460267475861796401270341720857679298442241278204125210395989950027627859868099403344670669126867903410826354860596513917234477796533432137068025045578385116947592863722442578039127144407341941780356550586106727274739991034352832812703920740754595994504451670058063312517186083171428119908577916180508953143840019335346730260384267850811755791242829612120508086130886416352465843031964202223937218829833038236759125559510391984244917273336142585794096735001617949262366611963461043108758570466333475721813763187611473867931865789110827463557317872059647577454884487252838815720705747352619475201884754497809469186824143198645642613258179013975772380942823891532585873507119088975027876245229803493482714710363155279163553657968802460633433455799938434346182495086966928638981761539719322264895495995582318660079314176302793604495123075218206282059940040004407290188825398480345030085989328404042330551842680856801164800262587302255418427918969884630933531328328631131422710208739737568854174935440849493102687545790940506256211593380081671317253190476638941262366356920704308074077461928922270973395415179879717073155692470351387965360909408765982804192497363150324723661121416817247249051089029954350942274249134738858890619264785724162987334338056203472842651737544362930510424784564294048704918976665828087953591791909343987000243084733303860910371844631012151382565244632494334122238718007145465493829765917893385986807360558266890868629617785942160322188955085813777611297173117287134775658827160751920567762157964875885454475273668236444453664088260603750267218342038914595245489840171702190110236316198091727582671081017305270181967334363887872785037320000271777606588326865270019382579815473973913939215863991682534717511406036002896120657356877751636685302761314520978416654631866443054532143008575610710727441518901948437769860433318108876649072511717561818708368837176596763302781439947620966126266266487305059407208307666698450319328989333141096083714444321355122002317980800479137365995340960549186246882739976845561138762489358854383149293086816447956342136432516451817549063356857391073523134383168487276838037729404266250550820637142667241287310595734907473320897050484609045867254972431842605926882235530341222052753365493091214347098755441356737773662437477192332114151621505551425913408339713429483610590739041110999151575863148145517174205721238448897396112010624043041806950181072006880148649755706551033880341577397152704995597988896087620044724829087498018127308863587280222276537142532430694920470125974075477291318943856165679566082689077968855647079239844964583582012381426361501173621649500785573103160968470752213256094374871292982286532872289318017651440104284903069030978650925281784158164056243927702196988217058695252028932799988283992978902817231056411925502702373750338910023024257738908016713227379191093831035553423850187179903108864133540183863552864355865140122311660665638876079320507897300183952013742103019478911297004230460506940800175688807288990760891651805080888300523000075476520700377156297964917922794516936657901654019728432878859360257534018678525479352397364245026235391447040153854195470369661239269277586911960036518424017118956145026218344946298422613526136537446258547331823720166019687493336320139636908464993938532844347668704301131516784530800776801674991981373184609496310524798446016863113224553015797302820663383214774236130197227426979072223016839632543021661407895205997575762086669404541576478454652182798155295483269093345502214705699413941972077315386105691423140171212587456346463296851351993255173248358985495444289403111299062373553809563026255683335569372540287347731859489928860169491697419492619244596290264457819213281661209729559423527026413605206129392604225329712054315162977524691267623114034118213834355348404662069665709775626751300643927422115915723339564364176571958577833257703962557030055807589959798993607233360386405117852483409124785558812704423390104164301723048461269903858656582526540086578885726976438443869935636166023793060761088466700746395009785065680774254312112954000646694395057455704447400667912961217454488175368880101783227648560395175933073588455121794123242258955214608981641936661246594463289907194718198580178173952247217003974264655189705542197549454954387241569744936589535928820128871708229438724867501157341773769937118988291067505005769523684455088226883837814755324051106166803936369445112556689028553386546813393267822724233604250854347501025973646107420321291294347946805374650838107181982328673058026746680148278183613062567631477794603685772820735814189845038766059980664356283677795495485752148292138711989968234121390794813187243111447813161165231175056032635430369168440121648848097416109085518489271598304381548542551696253161218121027215215148806740126194750394967976358555115759094954443503505789883949907906682958409327515868310831254031218702665744798167146410407138446359864078122661722513713629440485305432639669104149692836246590547115702704904031455254440553292089217461395723931128646229592933433492949433858909379507302716192068250099043624425149086766095606889777581972553134003067140715341926799091626562554399241832321954492930012568049838565216114524094155597038518773505556754400287537428885361064454745734476862265537096344289476700515413325212445551112569329934794322392015404246941688631594701953059040797195378325074693594957551370733967051855785774801400000938719352657417338408756044405223020880784607269730283579674663590618892575121195867890892676811652216488963929856424785145888924667358750626947666359972618996533726111762519664472330248350064937223530174743135780267754049025447691423450069334431556779594405592396032220584861531728051587622300445509063000163345033997505112122710665535986214074389839306067632097895227191298245562370354596333356367340857083369298669023814072960783649190648946161472652776362598257562456363777979687735653014111710177453655352168477219698820874154181540942504551732777439442424146552096415618549154637841822572931202421575267020266782226419866945877095880272096366273327488892996877167105998743373817602303812754632050277485651406244734665681562887541719249512607863622055709396754238856919269507268265648271284791803639650002783082318832774622026265457349003794893146547824281925590819444883255379432464195471975797149295459173177235148170795058208374159807129538819941316175587091696330055373228713440955403944905513391146194865420332737358649310057861729194381450513427483023269119011994300574749132206180513749011653402164820113182647599090822023076569715974012467989239907244574733073799103221818474870463678749322939923620391093531889726469973846195635488250014416334846939966209552785815283297544097457487173546018365820737826642207929078093163228868105330679708648235913629988700166766993174527365135687075808805703711748311200151444583062789496878138317560284847768118843160956450071011204583643432660483220850480472321896173043705829401674183119025927782692394237370820118778076228011739929110672868837643071097980506140442645744429053132821140773851735872029715586459725847649181979758706263946621793197995501468950490266429362348919843353170126685320521973179935344672378597572421785575484684312776416769852715187836841658132171349050615704166702060708409907705989266786764682522671384941035531051497381633757941689879179743517222785137401616032958399380608429411898357246357819631987726603960330007586678802945332038206437453845902549161915493827832764384091032071094255492434734797761985380667032528866077343673932495864896015960257832266130851764126784118239537932175459199095035386500351159118792204755128051392958209908247731406803065613167886378098520070739460327707954126755143495258945295117568413494947057726487614473432351104859890297783234115994525666581630052785353501734990499445828443813596716481903615600455891052856771681247486513881678629469134452587236919899462432017943389236004295014697093438698860894077418087865677309273883368799644979096277435889596689228493136052702327789936220431720923147333091532966419198850816666555516162094392562233538143229129602859096437365994312268321430551743419407013643176956261274149967789120265015107623884983783222669768850802243114755474110090086893934643757165811296771444460531752702804834085864872280925317985301711598046294897482685524695329109208417614305791472976639489507800942028964179695652489994280249376365784875083890342736082329453918572205048524993024190425443303008812731621181555683372910048296840299054200023206881563521716886517744948807351512761191849910288595210963369287832483962708566894894103934546495121130185719182804402687760748671762987600426126897095547838015133421400736305918986490983639581083510361415529605779815789726194201160465565690425679599059618820871804200279278328251849240372968790809961332336754604315026062645631834813241408256610772119431865303507840442404078379071029829378007017791292992342594537187696958528390667201701997557879188614226175970213342402719132263162044203897513923465551093724075745792963943483325383201606456918371718780338816162949994293481552484949695558314840827047226622700861617192543324356437688214814272903811065112869896476128567198786960244271669418085497789714614164860027895547325274621717573155752815372396131885735577974572539895758895956959306034408921900688948809300995553032602174808156048800998104805506668827533455311529402796279762958510570958308460905581038858092736939312830507704338182143853239081086589531674247691543624320521884862024751634014170054192643079146552556039993269703024414272542895922667953758586168566479752619343752955919451650126940716243793678254163436928183747367540163975363094488682163949984573691125644396016886244491198965467240759230660027122252973201456784744504330874933332617133355581552949050116312922986645071790613187096618925340315291238301532393648732346786806046411110254139094311826334604257800220832663121163460990779241919952312793695413011392150990042790005991277235923204221406933270396599397305175525623253597984429962056940193846576847628076190114691049445728923970371326634484235861980442179449067061575218521826288563330242863481239702522509078114598946247949245049533684133609414319366086042693442050370028094134440446738594564804684681933315606477157368538023933209214048158104929883921829375541275265613240879755100697487574378030518466744372038807387167622853326989297547282479040846940205225772087683067451344104793165596991883559773443588429225568815023164051411758974149038684738863971608196455276436624711668249974726635910793130372595802769038532452716025168987082470850573389664734454290327720323172201461886379609096612042451165138597928583377248502892183723952344199042777798944128919367538114494727425894524658704968735763672990910936727412557439829698655764800883350864611019024927569205277564024267851103608442796831524544109152310144246973573384852115450253809853347878874503009498351363482838236938029962027482094656507687124011207604595043394342674383787182232446226505701384180162541847872244295526604949068384253598784307271069709836050585128305018840682086252309946103711858095987083929183868749249729568572772682529697023004733496550326138330192553659737874053327188699825565805392537492052846232725015138104988199130756919995509329941881164145668969773658968265996386974077847129938962436209695311856158349659169855716300987776828730623439663876075409941695724667953671362191602028893366757738083769499765283566068796594861896334672138729033919359562539382015506250814682999763175914305285660185022753796167837057423559013706294888070876990350971092300996833047542024338187154815060740256376651051225158391246716119892674730109577882784818843431024174311642283014428220471590906558774306919955763007808129346443245563848179378179699626296164399202340805952004097575798569126711556076371525419293142641937557886295245464259413695058174697319185716131696795682022328522747834040522994849835864457597229279373911729833198332515982164864302288974228742966641466320551552393967265086179047185821221602849716150526387799392588699350319334814398300516745878481031743428761791727858434718155022044995735098619412209217546314682564737659246916039074337257652487084815558437375038426838326532774525995123960167107983499724322026886292426737895446122488476720455262893152469485167703339360900572690918159552133834743275271193531938539123171902936672923375202505992394429841060449229517727300942670802197750986892702935435529836592037899275039826401151630331529557807241171112478532036557532914787841248518958564898956580192902219337722684573790841027291991549188451919406351146646199397091184745251952959832323875298891045405409390618122038901287192562529616220818088043947823596468749157997852009778100708418844344971542599072168023535815095534542713031643547930412766452976187580663681130467433802389976985158751580551141402622266266115661584451371597202950132542951964019832866520860519570543595273422490148376107043059599341053880693949215784519948890906074765812338435110724874699721903417925476548075730423727972000960978605512450597377574631146731461915836786408383288854248180285671344493407335049398199912263724638912232896824384777978978560244351289160314274792903691667316517906056565421166921515732746482198220404439886406420771695471439759762724194258842392047124720898255160681296394754824100543288305692043870722887057589224444114868655814557825760424338642496262419281295559509235102230343875806904906734823743229427592676183061032496247684960199375989893622053386958512426408968687563874417703996859682900015526794847521979512079445275575432588116974064424436533054513601061979691969165492949174823389154082092893320755188964283920031997181175880096956101356376841309880750636715594416110944688237017745390234677086389420491310306345652939784889739983769189475963621650917167686494800700206508161871419507248720143332223092756874607051179778589690349836477517062400454937079134495413026146172147607642356547676796484959842942293882792748763665025640554096049180699788153531997735045663330470474698237271275032591224641251405466624163129583030153290373959207362840414308959212991180352587208797125448037771726016138564629498330809945323058913591522326825543237290448024876641292716548479363156288981525384303358989331323596543125801452878422696137618151131256151960142965495211528325576805797332860301598317997246972040541973594082091183733018516541296887736843594584673968516835751447607001934494622757957711710541120677298817144530012216060396695821689544612738464031279692921276488031435826376854090876981977302890779640272904067933274187461221380988448924152614708148831098335025296945702455393615947548961457192573813776591120564591346813434558014930846814443845864051232440526659065607020367813150853366630972831048429424475894035645125697794679804347417048181556724345520503589334621925737896570054496714521325935132880740140451811532976536288761921603096189692364734252006839628352636297456926228580973931933934611261780306461545010848044325067320294872872491346910727637465795318356482227169514706457301768570544222269475798634052727265501740678562352549986320341870416399961393410554089620662635853339671043405905952324698974341183956479477216434906983947725968242725034215590765056723373171290178216627598274700363931999550684880918643269633121543609103573948061022325316344825818447401739997033411530855724872745147084761973662173710718902067573090010633807063283872857704401673343488772384636734504679781323841760447984080942252558672768872892646643308878460187205215750509498410027421463918582571732472117172599832065300582320638737361069133973883394381215847193615252214452535723489868787706944925922203104806274924036479515375013481754442157480610303049008642644713759364586676044798522470404335933421025211206193448964962450878084899342545001713160227911817123359981762491253293560428401009343430028133400629356505600648407982061879726330097383015595065121574268169968606570815432680805143806531114185251893927023259065806268457729324967878615137657841504294033036723950122312590295989770723042139619549031960979137316179107358482207541840803901198704167208893377809929253766935709752710063171919768035855446290901135207786314422750211694174416494702013597434732295250050119970547576277897574206649439958608271969680300542343884914746696359712204825747109942783855803340410991449457381409133124314097518636158068389843331201199963880508506209666263251663412464878891536725176916774063266582181421212168031980873633351649304439017170378606843860096791044427032071599543166360280648214876817298128172417182929981475079578759698917165151482633927371846242821716188831804924913592078009873219737046506306380556173820370083786755663069715114722919696136656979377819964860612102183614677123292888349914191652733177414045779888085848451500256758532637252505386308613388377846778002731713822315402883953882774739000998702250723984419129170363166055179710125782253182109562605081037071482346520561461155992692315107216936871273818858038153435810100166766697965945218141014839815375937174236635487788869664489449176973288180348768093658360864245583790651283357247706977236451213681278431089542105970119171280062921595543068828028347101119400347648408797750043415596499453913819585417576572542558184929877774083065666531905941025948977489939409274127868034140248192606568405948968334537951750506785166542412868540700952160055282589815380571658219389880612645253904526806558196888651152978376039835384956343595942583206644137702483266140280036957603084085816199990047312258254041296237653483379275613216445060083414262564592679948586514291726497856786483489108640795836627618520909468451306912211391173538027563098395326642435120164348934227465766178009398084487920795080031567161848188654712819644848944198054146151195186500881963867362261672117605001114143951962703234172061759173753749903291211452421634740856115516496881094708933193242256212052687419153185285837773417589456257260087555231315553514303199265859204954414185006492605393150747768489001557532716508558388670198251005095876563951304370838588569941700498642736760625123872439598660505533063017760279527860756304609560168256086277969974148487836691091644645408660972049409795632829970444282117450487057572327416975085313082122831572059441338636496208161688168069910920559831714821013081441278964341970865346160222103790188705703889253481655696040561952709309574641930459033676735709117621703154922110667070953680332468073413880212849447858631711576670911135491851445989586929383192975250682959019933801480020708496581185172678066857745101823101421986179585927519580209735172698916328145009833449230347845877089565914046264655590948674145909504637562400562710831546065588385585604657453434656765497504395187621426427095783987205385669978932168809723617014627905031118496052575253581899920845481780623149877918399378915151145162299544509538265621145485238308361319021742232058142047471952764905574136555216790390898939661590082664970309146030143392969708438817357398251225975300260018333022959798944292848736803967647640101413054995731747700876766579478052351624417975781110028144636211905125561536711611394119260470797284936520103883904363496793675170372978288558377070762846805542297788880935455028164529164450179037929107656908505649251037102406704658299495726614726128343129929375223412431777897723012806925600371730551775636257844503599526012232631457656561106294209835293055900791893181093352921688747961684973070881599434610385840045773160147868580958549864089859840619050584949759596965707198237740988415405709507407834962360342503228664630560039450344317409110229350007690233766927543246416412153628405614859654907308353028266030794118748962776825439556004159534545470462070744127247362098471916898880718662911734954907228519349709499804907418956622531173178733855716859423518720319734425869716042627210434431104401655032238294334503503296611361813477822567366643118692469647430319851714905922056805460487304414137837631897989890464590013469917083235417034951288923189413471012166308931826616335873901996375453191569806673328312463426077818600082620323714853847218727076621704827595209080627737876809777832426623538660311740513464555758033418147844904456628415750551206793323114227015780496687777051477970901149770130545155486849881972006302084198063436923166245683256901145015125122739400362478232353340411252733379042116077918725753837665132970595992563010170961907152106093544912919300313546925908918244818187472029916290314439182699919929479074688784361329436851307100313403413938680214665024016906816253060665707246258210415091996990564485848465972970623356702930451553296049992896251506360105154705652843671446000056223259522304043897910313638618702075940243041760649695193770268317904669184334086857785084011130741127666076451245061474725808040851812524965698295247452341182500364734446353074925687293469989514164281101333258995466755733756366213271257045660746806645438835385369993765744180910962635643819728727526617484227198309081466515296343389086379062528356565764812749397478662448457981941936134715252133676038151310107104953475046322618859790173314330073422103031624727064176974785554623002687493251327745666884166972282627560501341205747776173109591796103027392638943575845932930275060590526940652746055581135274505197167355707434396621812120018014640074599111292445801815380449170358685505617252710085298835837756441159180398606490706284505582788641121619785771527235092053001276606260066481727688565273452965836190536303144048653893370283228581847270628067853770459732271264886533764993860737623040028191503679923124527242458802734988051958813595646230606093909491595369911187620666278088329901303982005433249201804844985408171630945001580177716877694513564284916196523025976140052901779331282777062835054718832748729300933159104424204131937352164315036699040441592111073521304783551285359161799119082590490536602703297784348183153678168760136173859847077231590578083462508724529987908847855659992464087097133006362846327618974164220567763933115844735841799672713907408296970626414121173110874543888348517456751027427959511540738205060853344051720093149682139029389877795943521660282397740576632736954803105726794083581565939695293988538150935971415982562603621415544275817233618658889809230593908821892233743683396067392430614397025564180088030707659156840399750976293986906447110838233695844690627937566801667451015783628599740039613286479564008354639361050128072610961176442787832441013341115589628664482442496247807959634822042103306995758020237352026580930197547846925661296612472885257105426836917855050436550513059222758210544633416629022294197342942557067000825293075723098640788662950987760836870283668885348172392882153154816473365686441117815714514837421334620676677691999772928678459953705096581031633510096075087581857183933466611557368827873832188998329891717066333669063555681519679233114834324040782950145753052611915998093283489606361752178362799334038041661092839824549523773147122289280924572840928106331211038561685771677321433361179113418889407707834474790669553225641882845485765625809797472411995549343624095327695411322152992675084048788591642553770359149101141204180987146380033641481660314329631157529732361909711827000227094752322004513231396740866395240482381177901884917946883395945500047360945567870620575045451882471818059821402624084389583025758460617384401053940878724699309397133697076064158551578088648635983810553087637968316137838285542202469746509887759747215841331754239197161930517948537068485728102309982465000867113240643944130205331090634585628426747920820091664826108289540449176005252107152590673564954441787139057233147017631924460697525507919240059839132757591814629487303466629670843703474324798961569109324808934398068863206783395679056768631795709570717255530712312187231549675178744122340572862342430675422522977208669615443646843945089122327996381478311751280373355299836397188142702035238774322524033967544208560019302700111202335543501240420803464358070319711117760830794325131858498437196852173936560733490187994282858779661417677247145756637318222172834457695329384672812396081936542997666136523488032461013401430453116420358569930358031443469584461092926050828391503465135670851372005908254999374873495899894039159826157347562337341955414066906814935714529226901407188979849953933200849570234355601357942242452099340978335537329959033886745566702547115551112174995987810672951899217055504131639996656088078629840815921783885252572365369539755947743380303995246469133711819981965068000565807233929286678839823364095925766869498982808672270413917297095174299605241695094852566020831541553921429716515602263110165681019487308745788266390189564757496987833500485787462880269600469439501350039134552761754297989098293154910138197425088084814997249604563500900217417906439844482736530965810518545122584516016340946536613607510931404475678497450043933896152119440303815376800665918029468887465879299175921953615642909161936594085590365818090257456704943551845502040456213521954367680721403690673912689184479035088937216730101550447797309856420859031564183786723948414487439394835791511492273179663745640838576991910895697063603197526923422503566438378894095422912938072788410478781727734418152657388759104096568864600517477713471832138091746661361900685026733289178158716743141079786208632101402381158937801153453559242073365778692926944054993179332212475875023564281175013418246303882682660873112618619926238125090300998912996193886638150180973840459925952554565480913352220792215435915390471256174572706012442056506493456017781135472653002838728718289818597261226448988099629738231172316938062176980802047420026956488441629143950235695650058153246084965012711333506052160133328998388705179146995118571838216440788222443275647556836072093706893664728740793952443264064723669313502764634653503760962439737169824155754125800479376612014163519886244344832973482095719069449448758058600250355960531345769754397170825430076398185456127725076850454606499491161484370082749177861881293517738524662823192625261830938166372084930950532718839852363108260056160472364084802707469868573728358077988914490299108502134121714764066689683189795541654019970321737625494959365257768026740960219700742565567336464285535600965557145235657433046166699726074413413640370823692743039348789795268870125631745019574309863792490188453798332977483522518783180745408706697817204238148164328749838492395027576533912379571876621246161237538362668604513081489218787026808637445214752609842616013850255661659335265824470367640043188612981300292483658480514820395152260964184354936460042179484128398464795201819950469362576804660740787921091229522655278817059119203125368749454496738986535299785986844522894993875583094880124604162494266861701491231996588635533346510361333707172538185434828902853255677738228165974765747149388556295584527323822461940204006180134317959336579707750115124835550367963695561899560149044475869413704848679039178173254126196057930018082325085171591122098544876125226379912735199759260319777608856691380650589874574460827589222866779069258793496739398817496623474035301251396175438407575194319529391372442155621964319082827021429049135211945275550588093438780610165461248509329753210246654771100411027697831325829887522706551919731354043171404240406167071129655645121806605592954824329521716749987558190929258938079434411872261290298826429520535763006479878310916278255888868287481592704482762621289251460079430722634034981013539552706375222664037845137311111549280529953412302327309295838146894574337226874494919162319620746138746873012992898109023446072156631195479384652569738380760296939757218936787602990672044325772503219941939398627970816230814962610447164109184951159941834781342166035908661663124719881505552477748426609284102998332707651567866505381043894253471570107911658998769536878623148868610627821354682352161689397994197520965811615616843933599751469336136219098981456624091205694402281416903240080447021056500350371045268821035227032474495295585535559366192330558154762550486843291081387646260423510639108131907195847980250641680301885387628444684849519543389193865134808587307137517259174681491507135731869481090230330410624050863151403990104480102072592490108930889987456525065485528804688287597663227880491165583355460118918124995965081999643626863668996289687364923391949348559624746872294792190377888852283942262713454028996609508497150454884296294614212716739463981401956864246291660154704896103150684708066191935497766423034036645426309257398817893715989632090265601558482331452598561808261776936480313851733384428328536124465158238475555432399121213343327695510383706218635490440098987721130951374860219674518465903620385854553583084581566380417796443519077571886681126279979850865136450429851055396511863698307015289687163039066722973056942130580816818816481982713381313646739214947669906859698879290276497135232286446247959158905069943881960149957196155005932051618353410266913104495640751258246985947365726922082380411019066346616827438449072903667973998293959988902378187444498766343080992684155427886312419535269584881776600797310016302072657208736423808998813003075977900296722626828473927063869974629556030194264994099999096531007723608789248531379492258710919784085288941056081938659203538864284503973346810302692578300646758590404520466291769622187105008981808760623774857493417382422802891073496097005957979840218629454146739232882818511648895136434370751679305414945783261572762158867427212105154561578414853634760780932960191652512358112364185737282636976550517839621048215963738852448045300367370858720633298138337177153053571889245556748813242357543798956868671813257959406517875500535891421236823057714683853508462126445522740983937423100863219039506601865655118791864713249683326366727164916602582697314905802472231914168286802929094752594786974313627779871318139415237901742504332972192968170354913679663939591582047042550552554446913017395931143083062165170714535608526875300598460121356715179095267663851857676636935052512953959976547328230755468978065358220351349843839708735751067782438593187589947825893172590755459911813476163804687480183139478367169201225762465746317278692449102545081351044194712304579355814210416641298675818770661779297163075592022692408307117066916518376058436555573185429301891570764976837704673582476666452044723820769858519124588617919167670488571915289285238942035372567489541315085954638941316887785717815605203930616017948647058991891013398358545169555335963384019581785473451731392213110905273359788744559774251302352269415657812605241670297817342727516601110923832949465296754320968713550087423383413487513497068116029444449361390708835698226356863713312227485247724573249036226368379887222288925751940798298781535500858888298745741855213567736017948030857334230604614713130986373090445251527999113030709332385041251231081525238009176688644662765935888767399974543777277325795610156939152636484342965791966539432985971493576509143568855337270316810485358408700176708218351390954682207296368768290824529797656264825866357708314028860433591366029244690385884004256200251916156278216725520070357287134815743558430070484115563855078016355542017779422471551272625459331936649083060051106701257823936795553651729250300229117042796506120806897789041081149225662820573703500498004723715237031007559983410616812266372745743442684252240201208125854907488244686546787940712269848464900224671723107498845502703781581077809468227492938832466622830317870555644417011822528150941065628743471026390421141256356769406216522475581383560713384866111294478342148831604208212701384468424809790696068837813161688698594174934881788067547584825655438609939436403840843577776286334965489024704086989491911536177437172976578507386661903940932270447847352454641286475087826789209979553202124165228873509165857645420340724089456629061017979544872670262891509258367714532455975657487599333054113537436105753656430776494010951078854801516147211767977098774204741337184567348469221494748001156638396977881954619388426666582278360619973169969366711421958044475914956614639351381171622831845646673671394724509123593348823540801937600142969623458425746331796636493763374859480474271612453825959247104467644120919104538439394478164172760520548367212476199431300251883317427598495602577315603891019628141978587304567084968664334938597019060155520691179886186591290878300235461088905944039838873101392144811228004049626029409489234464733014786863962779912025170550130323630243673169957815742309852467138028012630802641006416665730502812164843601158801117833928113275782700721515633274196470397473216076480718424002119536211786833600866891501868699115104643060555351336134712154427462332628229574922758503624532630084851285664842509660528456265183401809746808167149837965028446058565911296029925962904844567155961316904200606134431765602269950154426059484155262193377318497134450786421647337607871394465468217944999402602768507670518234899862590719250105491432574700513238436804906545736237148094466986756892181832546419076983704704144611528274154502251661406166198666162014043772268846111520532722782568374073429548008384275717088769696744890810914059468939714370830297160278260653830438996563878500342843373230339562462291004330826437950228725848159550978981510528140063455831721728372032191832917262244943453213477596293890429847699735189354358072784299736072417148960021473201030370063478552976093048240184436171367206186504995933808987688550928843634938011390273664070311742741772252066351006593867408739705238960374382939778297653404377610317378556823833871530804547313578844483670364074104787421433845928375231495566451909029459112729388532237005004199772498901911689610113928211740753260705180312655391855131278085832173557594662166169140397265949410141451383353992172489753973845827347989789685651155468929399103909199733771054452812810211038678032746967151671249932709466196582828859329152323748894992677540653102913759497420773963776468054435219565053213254384769850477087692106901635473616459531859062949883957962666666510129216240865618469602259480557263916695165391687255290165528261897631133986554729472263386937204252378966673803995022926869819898679385473957406671353527873053019396274224092806616847664703205429092242149113679414334871345600047332396400802617870329221535743498562034222283909789433016817933870650319490494312785479574696175099494590640619557848428640002252901136345933550220026384551105727503981124390129112303286126249842824276700503349887172814357626533034390086657543200041589364082266032007520903920309235951742319849849405885688020980468294598176426517778269181184665414703331318672888813663162737394212434998294600185318437266589955768611860200833314849399337870831153771310933290155186440289851589387064332379178983092339227040481376377272201059442961202089678813700944428095708669329617318415445422645709525543455239040919725173562845029359368173676859518237264591835286768599472865610546552528006530957522879760493082409671372212151329350115436556674890822313685993351257876924250627477783150607620815752147326641793888519506393500649427419531691357310713704805631390781062986316422786162952866524463415613730143404925043799758773605005577776080442087383212452827620968369156463830902400241614492563291130400820851720751743374921535689653325967569806755977982906841037868897103867110527741168910317397403515032507826424489505692689303263674008812425697658812218309588291242132682168514976263794384723390378082658798833811459158278991115522363994618803744546278489283240797523794300779593554320222872193346561835982640412285688340123718449806759163646465062343989813366830091539347118791487777030021590055424884882236482685137400242250923071403301784941684307583609474851076900266455602729637025966638458587186139193154921620087938601736436966495208361674949183055351259150688292325039222345452851790652605920777891192191979561176622583466446944036306182274398201612075194278732122693859904853489727706439567190993705465823041406020337978217917963049397884198124323698335554441766039137592745366191502689523797709407244179512223533358111351724616036181918253459835947157855331118472928582290396010645012071317191567717514459897395795855816482246756924063473732329185489349677364737417933947464866261026219617138799030923899626172109428828460047033951379920338358003061601471879535492906363605420488850713893014999169499335741695759426538928055287779351485674602235637573090621770405432635277862690871633963187265171969439799288466023791349521902691188360512269207540023747892753802577885229490943653886143019589575121536459543947478674934456507446256344920468071281705897290350371988403394715783453269177557744038509473961503813466443362098940919884836059059418300723100576963111444985773074149533047054760867347474761886335289732447450896795128324067854022514376346513233598377916815041754737057712793661059347673679181711945530872853943748370501835764485719203093645778436756299401142290182257204940268704200583831043177297526468842744052637759005630989594595496409382880954142814556447471951322472570432515206731198029967074500345672185187963336797973092741526756622203813379400666709740833733463219522693609558711784490371571417557816056491267604305567641767844302676654368272875294138302710482997930957087798401744217424187691552696574913254038570274672143603322873762252554762315204879712459999594727016990083232514798664392975139908348426585283002653218541195442707488667447751470860177797639617952783201895779487877503865456278493872775681990902870346595875342624459194588166789248749757563184441111093450775260465718522375421767055870090605573628158554270456324399281201567539394074515415926356950778445988987887117993146422576765054459820753533672029629343114255031428925933848203432141822098786753457528222024133299515863262379980933690934016138448557922387840600055655208069538592729359362834426489445501390121228753615179279798896278555958122335230444712292491232722569207494052326089276187720756445982411019193149653063986593161971831982937333179036873596956906199334914445486555868850279633397924789081152662652824700016009930582656898468773965387182905121874315492417099612204257143864381769250788138074358084309475706888027771194642202338063481978444459133618621572889923173255014150081610879615574603309664643839287344061377673535879818744278398072399551587219307873201726788531962487128739159875939162170795998092564064629371425439801329080405521169347032632685340110000488288783067121036730983024986896015453465750074422650064719028496987491563327372808925593554873389597868996741988644738291372671696149735839964132864985947444972275675513704018114980212772759613650578078663307542538255239905807398400758319343113957476876372802420558491098385143388823660327352663832132095525872365631337984264457297250828392465078676297710872380591149243019755964769296912000025384732740459993235652924224534392714603121701942631608122047665910418658300515022110332354184209241428782468581027213071853117795352155231936264176485427154053937636521154624767543479718711798034787617306590272446828766663993555944689421530136302041596645823874992299461254949694706951648796867794820032559235818348788862830319543738237336366647860072921188166862911022362142021983176079070789496370236679923546767707871081269474244887689050077055533540669739326120887032496370174044971468837262980420965461854330848712301303268598588898466044521613117595792291724672458118214862151423193893257047617464555368515429188096677499304774381754974281763240349675624260240630742206694087233865151716140201766803086939017716170752495569194236097842417630038027641058645236142678193347782935047598805555810389113731061048142176000546266510063889858167064362363860166870312381351255303590487224795185168157722088208540649908298544921038668025080755277881126431409307263841738935765138755461913431693741731568313794829230981396472361917095737663081949559428292511257747033350164156158705141071626029321094612962492651957014278390378425458957469647996685149983768887014038664061804805329968007330681604744616273174765562810826980580842212418964963387291501312343192935344565881297695941468433811785274094923120141783469848156989331854904003502908794034777874467570193172456144500276004324621954187479042849973506823348844757711703116356226494396508033769282284026254932476416956450903617845437400046303949534194520595278888358188565725550147043902116642950683688920063192685126254275099536131120724976562065246130297079129297181679827122407692789917206106060638561056977450675142864339572512668056480624701666089043056825251094066719670893528750246065739229835027753046821852211573816416682151832367979669603092644721556216467010014331366996198012602157887054833215807526699749856783208807205586265556783853139745318515194467668984519018644985195388245231675390916661899110070227484409832590675661199872417597015522663332849354726674637070200520292920209042921799041395518232664691450173122177528107346054781629030824360709672264449517757302253147455882363332432312771840053745647978210273768965042360188113965332915633205750452657118636637679383544742106701762655746420271021880812619716235338861891386035790130473498926080586935948556391071073272775227133714708541251764862135689597226730956581104977341754924655937800796948455522911774808478434232471323834496109152160006974680442391237365317452287965873216060154328502840914006323732832710277624429925928115186454308837705325840817366314052541084123866074128207320500030478098103405805032980378496224867851483168921321090945795368942734404752150645548367444398617069397527550169850327450595314929446302394239447521509637708974021514109589756645260781540848329425630865198524944747023534672851810558784421477914852972903354985760341495649180880534308239828674632759226405318133235760594358216607790934955729481903746564121431100985815346887002602735918382981383149698156731668943860916966585737475864829002288423256994290389157906839465421187652620970306179086335696520024921782558019404497418633668738842061058553224719904234012818344267466037483177404132573727116621515225735078015778166424701230945482235028914504136006088094856543926776903215602029081752216551629903220548921180578246769950279910080423003317976731994110226396261024716598763511839251836977135205356929876318748710682231192961598133349459740661793105730065399387567932954518948187647911334154870476409719170932702784639605777290369829522131540162517622649163416892015090132031864371748581461451652894286335156838748821012844217561233743250809212051685678004810681525736110469225052926047844184228731609217253407460311077217673199376984801646554096356383752055472304863080831801388642036281143522106100839396405595984432858139954522894209258938797403965041037215796321064865177142855807230269388388102531309153532078664965285887367791618005742393273821759833519026177044529291573117610220017937660279234955776174054744030606282106787583985977269710648685356976246806119139133174825116872932998702106772450184158394806054161279165212146942535339014454693225001216306397286441830625986715134502669576570025738633398667501652053586686312269609286224638142565205883420675373555174785478770312168163459751381037376340444710933460536127275560100293271135608675174688218202286816845022878448631732895393346088217523211903646813504178694765961886185260969280558919547735005439292457845996814700243547488905290641537700235476767310690295210511577557714123882067544493422510047654095896743920227615312805554880351803252282816872798640074689313340819183018315368954974738705670352047145382448923800640628700415031531065990177414792769084371763392008103671486093965610930111968438135190431580501715112150120726051631379077285812454349466653406507278094718373510530479998920574641616274604826075238549810402852810522499797280073553326209840830404351348628815786148373928809413562723496727624099488104215866772307774384439812426362164848834104678939731127907920049361340777414112737968202556485851777328713732145765213484355810254127792298297662834391659399561991014537049620001559518113894216257439376375936109855473813683326865784780396276319095157086757237956194613081164109581919213328848743053568485637954613031141831606213106771208459430057672926228412448406501242063948060826756560958332415835516306352272387639797999146517131866310129581111809584113637345842510869887431293552003566347622965547995155957585651618051673281811762920361813601384675545671283872825515745167964437275633862670813413201167082317381502604567237347456579020180767427062549033153371871846011686554786782801271679385317563214144095454737879409903554575577163565101148704047005558414700484287482363761171387682860004424634817846740978296111695669012050000716754968760812559864684127517647657979402305676129332005239868559280289171684442336589730317413793389100236898477067557951571694535087216250643204244527422122817233273616807904338603299235670743852170126725967447357123401364310296674336808498086522423797184319351854318594775836154012627729369601939026159597014920417863055923341390703302954752803071970106745404832763046356592179468445960505015191840458026513673469671329217396990067192397023686790476783531512640437880805459341395877264217147553530288317277002050012300404102827594164627138292867528877190742139951260343770392971194306784353868658312296130811022899297264181437400466181982410062518224679428536658195975650030635758014538100683426166895119157029675972346451214103617717888254196611973381241626002626992663102133827882295126254714311012046820025460413449865426880123440513414730163728504078134677728606599162687262805688926585530495549876694449533902751616144466666583756909245692738932885842889687437190933616708453635043576919269864824541278929367939435080732675900367117699441138914816816337008664468598026579134753359671403610401252936851805190654764384953806841993744768290165322996837891179354427756613963981325541105180846939065280894559015042014643975391614803361752557764151071316903273716515056652396724934121931074913034863097374466944583428871779725053243848121229020820255842041058000604916314510551889819253793870012288725395159642399898560599264697641566020081231336363069187964585333511497212735884141435820785727674841815846621333018153540950435337443009903097639156127109556221996782748323293944921153472051275156804259139879463967092042336546687467818252962721711526307042927152658812069945981374312757006584938285521034336569644691762474494961163396038674341968514361619808973074569038881341485658845111985651209311625161914031132603358467778203394418697208907872803273837078586722394184880486014681222284513762078140637844891240594933848353185681525669864780585238036525506647333380001238951083566846135113661160505125885531751546569875435525295676345617413264561498208032456205332711372678950780201521719502745166120097977028301447916778675499160513975649542228760894837408778564389677590879206310884499285703264719181805182296519790024636427542133830327942758923360445853424364264173586188500407539288554212419091624604856381476536606676802266715213513914053305256630511445470673668811566766228480358682384775092956698175378712986109546894774347176145011229533371329270906157140081616855395751578848318359834156062191465193591410001199494011388302618177073082648173205444285469946865191617023465962865916632101501390979627767482984505149907182707414088921397882206464862090904900826229398730585654245746888474206398161383366095743860072105508894405625290484044083789834323795486040907668860758839090046033941762957439989531756912034851546402487351385334696684322196120502335409329373167161561684129894682439721606773756415882993756408330206087663407395841277142906915441257059803544958537703724207920473709677105155640208250501505897353849347019028383715601361110882383883456233120989380835207673956467600785172192938296602708764455738753722783634269207635869229736958182917420651614165366813744760981509376897911652776038931955665918270394728733997137901578584438975189642766319293096197706569993253963032501881948366359453370846094382803093827426564501771317480535357144997615747139345568022099045191554687143290377641169710121818590245598675977705229983706963891180712588847084839466204585006913711962939011327278588067518493605540368616561970810389133188395138593290675299030209827657729955256955251472103858529562851501796284589487700588323191990405948275134904274426781614000376686166769968299092565939188052352150848251209191412206893593334740270425429674751206122335066004246436229443950158998516021554910182226895450625800404690786495321826612385244370020499239902678750139905089603563880490149880311501396994097974698681623564194410117545930417840920648266975081744967160146433710934371913814145850414415253420225102717010328415125705534302685343016373957070557841764381990024561926410560823093291674686761135208782932216797875947054591313479889067507354863345963334310040547195344451996742698997892104782454905910855110739223907762795135436198950593261597630459660013955816940219811663485193229501865938503471959404515551905172287097338047586360455200369173763309900488951971906199067496868201628643696686689878916487939014412822880519719214931702408166438081246857922256993751789984994494003486907846361638953472933479160955150123716090371173594534801492606101929830911573846681600153968880921780058853976483146755055551584547619873318589826424016241779130617387098449250834470471435624920666335102158859134281567066018555630730566570120218296558585622419765961229964406508277462069949015796410916203471691178401579444936026318908340812401400089966777674370890016918135131545022005745059942918732001534162314146448252270896270343747806290410358443937253113030139895697298689756185438294513648636819142373249516817900606001265962103894631078675994079427481798281707756449910087457871842023498985737173389425007071144479543456523034521063778648811623841278997617288629197867806985791773579510117158892326583428852462019193604686222364844870767534265553898557418783231492714786855552753054890762511742714463907400001835374759872367721560648480491830564795021496536640230013639367160777563949783560411416675820693268178103482262597027146051839760333160373313614031095478807965657938872675120518590853863391255515746620064657413936697293479263671674924305591761136955983693916558807677559303081287489067888844356222556076117512371519134426544624670521973329422924987945538764853459602464385603186824186808815268349930297747548942394984102001892449111506232967284349011678774857065701491306352696064446365560075672561513981141608774260709918261413585196413659811357202200482483427295677958135428520421025216613545066083494591505170723573790276853564672962642344764491797177980776757150513001059119507399781746350827309284991431462722169904145312505748514382418090079716646977026087584417940939490411794451519712691348394102556816314942721958456003795047175251120504524517670034261799383396660413538176620832228072404027191607843106595630524040006627840484526848084881294260548260060616143282630750169160641170447318034092938752796853986269216017565276673642816083905265025513189819981487474110136019551170391661849200492316140351841804741469589555605469612899731622973978862691502479421072357895482738155249935583347052102105230364634361054390120208948349918365579074575149427382918807786404090474651854657481889831567840056630023304014742729664190625767038134949943075228700088944359014384653859004980354047715073497342479010033105783742839768197043498555649815981379749806879899394886030476317821642708620526148911171662161445060813207759502262476891850950381702631586537386903987560263241453758906066786583913263745093009999725590235344783896886678406743922579924334166024218394260400275929455821555963372551323247898382720550281051250450433642910965401975844397415176943457347822322723241518449802273578925503168165528232806216857695021190368113830284207276465846674929137745184537223863428553819718641240851161375025308734555489156935761609756740271252816049499914810582519649833260568283673430133493595963508710765461213680052093740533725615598077934493974886869320749615969010179692169523481707658272264122048505955594020267745402992316430700238891952112047286731889811674277284996082920325314363954994815347584866465656384644178419727708364649858668175558522901086307383906652433153385333072174150938490878177824297129262376309103042622915756370679487734713102150768943149126093243155767151287643776113365987603278008021231437504119068135970786699321933795655178550909510762803694994864910847782984984230007158031405354421877620270339716570587937740092468745599607702865439625406434363370558512397018161765269310448242749414969669475420651889591407188960607817838406425524715132688202131566176772049545010445269468562398135894274697022090603617561664979754591406234752367654557147548491637377367303734447637714484770330760241553072858226534542409309805997915621650621454806988267398936706042156336923195362704182743241936681409511371594922285889225232003323765497889830847396457732472334683753845402417357797406480052212797599040399270055480754778980401999573033812785444881501428912837223790237689326795336812848194110208290300198878180746762958895538181242040452328177287201643772707762650025507633321430652435922046885843053035254176668139527530905270868082243715958042306246448607248084313476498518433313038579703171879043936829522015807934972718883555372793325684444146256081260729834843353324954788439760346534562083755848243388500122522484695314422584579941769279238227369692196628182074010917137577929346362202078920150259182398613651492576618667953955117024298471961923967705391456002259117851601963472198925912810868246048629384829921316221404724335049800630746444806015256090626852840457498561138199806003041553196688593988491975356877658560254791097652875150663504425477819012220027651244015200410712503426988680444805818657040093012619616262770261396972175551942852103379202193895624988349353574946983270925101581826884474975187358928018228802047349421872120013319098456640319183425134667497619921370716835842948641009345737763777444363909971004339508305420161889259112095422074128429540512242186640021345995637741735942294495297507185540680513541014868573536836814174076375785373565868884510107344513058376490256519060531213739467486910076630515806163562310186545738318592667380642496626081938966774379404723777938618098513018554996515785784364008362422847135883131355804351049708036999221005368871591090435180797148103028867447120272159850484686281163542087860301852511333564577574525704051656813981966149896683412595515372479621688547319226383763103987663862506879203607237382122460601187274800186871917503897428733927596839040906233638330317160475702305620491375917598513164930612794140724149456296748381963491012356956888901842375735066069866812537989345288902278202107258526373808645094895511943617548110131916924103633080529190340148055205410943930816328377135918932550674023016157992640585914215631771809710738850782848268662501074755131057448828272766964881943503659874721478518340223111233264142047651653778847604095159308369951932840429868826450512124809388066935502788497509270117268683529233248731019968308687522720579794041849729535116975734647553288689951813520129144918883531037731893397089379945284006054058647268436429230529186054562083261553764351722401325427228848737728896773401089513906434378561120046123580453488857666353485445553519046287275743860334382892338074921479934256439832792599316883460803535305269554830711973104217618430871016847369343423917046359203311671291443246169841261384761572764662848779941052561914387011974036932497751412176304262591180635215654924226291933882864610596979667007951940623818091220566434507085583965427939542642952635356133565582903814722402178545805744616613720159791964209458703933190987494666441302048196734633472707962079956586319164076524869704954376444900907083727282458439591016875172959486878024956313200860620659294918780028413755521268081927138085856252694384088565862818890018037323115602701904670769633392276550402502246435285689607088987679855092475022944976438840582297156415981516725977623190496560387278023141929781073463533663001456422022935748411982481629121942813537234427479009260685572348901106479574077585535515335918980431096183237308204959033779911713644601167203952424649622302769706653675066125250619684794275948773527754374880645386607382426433912619707423837098699258820316295888876866417149060545928506675700140825299917185172967546303470005413891136753303847526060259999452054006610671939842462813007079877395190753736074518676859580555338650938497848997692129116252981179653369085835658002553355065557636018206867573011967425336126495379837502967281466872034065709615807693005275491039391414396365278596231831461119995648887029204816305340166989847259202623357221198271626325255857856176073834063075813162056961117405630046706406175623306797063285182688237114909536147194174809866449003555146815004450661297094043021743923764929050926700277830377520664054869382618788628928841540118587865452645589848387503292335743809501981197478387204114565151738383976326754563780417787466334430277207879760501043338666478154098789140502935887089732118715431514589056884293595563569963549503425314981527864541441694227688225975053190748091712754210820557391681454408697178266395165733811445513526839829737537020383589400941440407129286409716386227902172808558892963315939728539217240112232956459318562528177971854455667792358555346396158369540307862821859782006796517063839692368194726100332306456460075918472496207075784757390934572526698435493316199177522250473409952670766323732407238807847787195600802634838189675863258686375393981744393235298539741262542686344202014152978715665058323798037795153021028774324256058772216709640099403843613995416920417554581245572645228581931627042900807290088596840499857398525705586904479332696278388340399756772486899486349679466818619906786617560268627874380444188994632675295125887689411729025670309303252598884624080747099385710010435780228703136725306953469071241280932768914748049830884881538469476683579500252993627681541629962854609540030511037157780460301965279373669987891820102451852345023496355128360102392541126251324832101628428689420358319398779723154016499360819433435383064948932506183222099256057300279938039898433776948171300545809599892415812368489977070390270909395721297204898262354381803198179254232703867608817146246591794690528398498511374434892075064407145673615269360551584826860828647431596189733333886436892658169616243871047929041911571386312282237366818479381389928651140331707805072589635327907683233694114625830099614600658434940370458978883739288199063771859646074084378144238263283281805898814052003369774618659205953100678577537517592571260864697740735630438991975343794309522112931194197156548113062120868403061893904287624890354941832525179496574864970184321122243122535575923153891245452694366614938661729096417125286162011776771802000519772535292546288110236599234712116434386954720095566345486846162131806658416118214880604317018254458554071764021931748253813148132466935080922193447990075302456838079652240239318700299981899904588769292104353205729188776553760274323969759706084119847121194690643872117775581371164976215577710913737499291795277051515921378564011938739802151805046287275955553321931956654180836863838627436359167304425060361709151817113320328966469782088470144663290311809324567906981290435379544171600204727510322590095076003209027286473272847797076410846728540370198113422746481106719162761182913889352824806274271211428351241209571082382529971044539295864954529893875319544186042570341044261102440577466495856301556223865491127144366642722194485849783565713051154676650518677215377110353980942944503933048830770043511950286274334875615687980619347006892598049132674710444012392799345277125668965931372324734424938713882153999713926794220020646843221002596761689591202561637883606944334135729467019305189497849559855774871181652290588656211816895985253366563931495653571112223828137629760906579764166368973340446118977133715134933924711392328032289527234376420002959144662539365033057098048018028475305688547404461765046065121120186133428009141350753801972718313109040934508861161215614736895899827443834624446909461427030208636538395826795656394941837422715798060870916475936351355909275083509009303834774746962834955058065778850586652061534982794357219181678277916008566028118037635716447791040489758303401587734205109848643169637526983141608639803626815911734382361447667137811243391651528890973117232848976044718678537331583819969263533675028344700704513630443883493619298634744165227330547484690077548952991475252139014243864857819664955167974727227974495918013494776240044512859454723241134302063665966854614117311403912725633409775588750504062742736373646363325167849302956978358503342114997874758134532356208125991945294667640422944757082941315090467881932800319467676028489243119988683076844656222552143735741904172621648395658826348195957213539407765087951700362739429543635797090266218832555054002721838759054962969282105075409908092206166984876487808206119785870486845853948700407178457728705887347069187061198832231768618989746508808063012367542582483875947676486990490051291547851070829900729841273115456552766079717910017888251944693877426764532171147520599744115807462855137619221565308815926607927214981164829399310513841711824496019463671557022031128793386071051522697747672288538260713949190079247319485336877821278899979810141185812259254733188336532677289063622961167535596918821600869670509274643778811886788558449591517777314033432941016969259712911245801084914008729991668868878185881317081719097638099188027390986258404846072932449764813424558062082097075452514507249330794764716379992609676560158775307737793535733661006395093886873744206613725898064573458634626676167152430251664185911671793025598463979629182498251870846677805585336024407452061964768792592458633721445274383617829332925868674500647646914155080748188839883891793744884000703252216312655245929264601540970073867307097309153529203337952424880074892300310128352617582421170356180460983179367711788376462193600924682959022870711681424501796361583982022644290839696311014045305809934405898240751753324684781300070065668807104194184781620876310834059167906789062035977387774076576912811815978285696385331603784543674182127148791569568283396963237900039807370679524076598988642468164673627743904753431325735263493604057405179133093120909183232572800893285762996159386231338731591105565758903288223302245217413627002813331524986527069245966258769315885133363593105672721469844825966681261153442732275401839392139198740711488463460961611887423926066001917536412955466618286839751367385167412853632626749884017642646739274245380003754076045229725522961942110309771822358017669902118290005904187960472195751756660020043254154206226722175241089513178046507409386380581180558128244931991799781921776421547115203421928446501328859817191158028226287098438375739848275745570448081138140625193429739040334706510044872569365499557789772661215489282681379610868245793328840281202352582767274580783857103971368525462691867143195998952291010899840656330805147210061053774809287781136451175933589670755660948082152781288885448584650107723729263073293461890711253873330869891960546811080771118809013097164592076714284621092751145328996736357512508959984352968177535707329706413413607094644092419336862588016213644812431245062819291667875927379951735924970649377073599873548412228622261682719930027292152546161709744161106261119107223118773631820650314749301289640324959123504491896122732385332409305788668487392648880584739903805865756852282390251677035747411998377914364266407769840892747978813707213350347119986083333683173633878858974255227803938543887563561989797371906153452292272023818388798194684067656571231845633003227219026910192012286954840699696483229819629524027553691080830132335118939991817142270568607607978360988781497198662324363524504973121564943200661863000276732453074390296949732665631778886902253514408105043570915940619681919786477236098314663037170411604374166230859793848606493388774539903773484029178119086945031442084021200571285513035163378492948252061024372797168730310532860947325786595931116549119666732819555421815928403139996160366529734833156164940303288493846242216660314368680155597208626735567710498362918337135571843793193610712707547136344383043721502076642367356086337671441811618210625867214601503178234543200021411499678391430390770132704235263592729693701845144061043819162259647622225946833622970197997219598973303677025401068038152551263659091877520935932493902554023264707425400360509139887587854654892780138247967337474267105961652797941291962786599087673953594575856714677958244529659583755228150283590295769687769828637657987340125767404574504007457116451216428658129657965272642994663515554466819300921462519092847591568828370208010906833411782062898846435992203517695177020317906004482351287874856949955951868902717989420239152829687424570797488487657544433421285024928649130126407770773277855043700498895285410619284253319009341859668819313514705080349894216798012983220650148460727192427626661091795583905239192171812839430053416908647161308052641129196022697853372128660660245708383801035945853531056746710255157281097586728470546372334909541950221993857563835572671374824091028209561904885299822999057160614600997066385936034128091840131578534447657962005782171032475578840264947608083443933093498186738916090896482072749067573268383331720829065334288259903821817646335203638576039690838447069970156267784254584693269084273507371341704998595016442806696042667159093799943251054764021513397537565332088679754371570596542332897904018581672495493002852840604959736175633009288349629934561363975153367001558449232584609063180471551973854055527843871736356485893733796703617138828493136039208461728995839386591952328115306383371670811940537760357535787516038622576750773504830896517503759775361500617883217421133244000867154932980222918013265426996413076325427915357616257240260697476135736857489081323773988107651956312363910340856623032982921238779570171122638780654636957971413325718142656594964128244821391985983006615683752380680250209570963386497246385228311124745778038334657608944547330654635527015833752988173298313639397966003874476301325370843278701127570607576672422156570818112411728528082571763621839149373633206581414412118092154335689711683792441562205874889593700450598461135827354330423784325262666381471969869849321963104381794143610568685996282493360820428108098962426730549180304378860804721125625120147954374023781993352355220863444663667436398978180058265872252583343661493801130213646948157905616745569061275926525602875093815821647020039074997929752059256244533605810085013799987552002347746877371846564082370632285917664459389672426379979926196159376760262264684319206567430166262649634125671788629881776938820529550330271627706804302354690078243175016178803178770636291055377569485360430341628263810808738665124991998981447686175105925402907618344869425701189591901624798415023601309734545829973576134409524007688429382041003321738259888127913520076179205934214501722411605923728326035554361653854783960751121316256872351687920503691488068805293380970838189262529670884431044766356407505853023566723050544730260365156701497506168973223052780965251410311073221046676943778879340843583046171198586369996471842386616049721986135028365872989122689600772245784881830289379593660694241509857470009661436311079948091390376851273246561419026009268056850288877062707872894631953792098493689406268260152377931270137096407951844833597071287081860009901328559307965238070135245850959435532742744657002312862915245191979301970519130968426077486538867294165130881936745109685624236740648546155136625610630367185958702632492362379753366931236449987089904713219936157075330030137460478236334601599594677603705090952758741753525265217475885438336082225612012586904028017361780723536636611723672507682584147113294736181846992946566595635252594055280781342735450177341321993327801984656542178523404115770900215217720532832786897356237425232516048593881968183205617888733653604396197118743276341438525786559229757237165656627910202741705133722994503420566529409409580209767559800953955960761482497547668288808092122790726432303097009056078810756015868379391649323429098621448019234421189544739098065679951221976697439779847361648228886606202298604479898398235645660552040784622927475650340981571806436157734035329324182516437017907969024528571832313727855959312346791154135045067864609882085469496785248105966117326451346632564324597865596969605228800672919505721280162267316684778243512291043996550642174968915159207573464878740609852898573043996438504612563423350485174778237941245485430339488889628605719039021187471001820698157295480560993840846642937745667846578598399857517259021431028772488669732764695211095680861863303230947854051168777037182975514500743047082790551384996463027603694967752022077384077281748584071277240098581580834286262277602502657997397562753222832252604750212407255249489192391252197661463952819411808952549699845892662930642948141791333909397995014919483895877990916146957855058115401459360728525061806174975640065369270406181060564845007855275070622576597506080632842378291992074380779148439959650992675708599948464714353377436507323846655171324102430289765387511696615115749078877276785096323995602816135987775912483491604851551926203503127721139078773754084102588495178705795467919396115778221377249426277791968885242475912466465136482720424207405198678726518434715998217489069014175317374307228349066239238823815633987403099847028040091126226627204608764570002372846327455005228772877899187512915848909852149490308708288496346776250053904689058649894404717891437678997344970821986808555939223668247562332727271677298262684342548365563553296953094145979170284133380151963467938065050221553770407237959132974519438761117133171445294362043935511253576356694414945666891825078607050561159928827054774870591414103430721075712484013262718259673912433978137358591928379642089306997543794081563660343212869439648728013133898040546952486474188345995298292445504814818089625307648864507194281591036978136154169750188468044013201494294111727547513756390805024561156623427082990704395173744571088023348017877832104659197909704797746954150154037702318253382805505254121527520555348110452312012732560686553473691433653796751393871451832190432637564440585634401044932339012011470062026055155879795445667721280968924926988066946954401157709182137237311751474424068015127900262167457137513229543158874196309855887057978699382814791564566124492835407295994593413370954477136836814994418251988932360764503747950516013948171767644979690929821724447724042849693893922274434253381843078234751714627739276816720082445303644807318100670916207189342777166842984461252581993659233517468340666446158238970801436688891606121195248559295481572918170232579652914814755137786499495738149048535863699846210457647319379255051088243546596449629960904538369809840572786879159113363313997600270308725431819780945942926342102355678965284331219155311834381498101399476904698799681482957530489947185951805798782035329776965474641898910078790597960863351111954072095881782011003237735955456594093286779748619977222196765344045819394022028950882845081184954627213470927553977209017998448845513650888620873510000880215627643910699245030242876727079531633549841184746159258691768419029558348447897871654311749568961512913244211198855236683873048793969239285310775522394832148072469530262078659726374735840655365071961788258011678212263718240444110902499356650568036674149031569850981035194244211662556742351689579311038641368269752674163631739164686333046838994401502605506582137384011446698683159994999428240325807467183687470311025112396757436539215392211342476334537826191626090595388471056651476133244970130626182634656541933918391323434359762440520711822043351476303863542194531449244145521708416885616054078550815122610760642679569944565947792790123235471484565640046051799295869133315810753845342663724318160007087012886682648214602772887553540117751523698279864378596041926883836976645999423348530547188517662632583686782575694046385250399618923609275799930044676063088933521326527201545285174702714049654065884816768444770875183215963219203738495473381664056336103517565399845098754356803355493347320527748041950754837699623454062583743933711486236351188290868573789386014112787481740303633752272728915831394243469723369882733396119743373400747378438760955964920472604226500773592701152881728510356353108615070555821619854029450780917073745469524368947452142894791199342705917819950637575293439182072212142174184557893078555787857362437561915037576827711516196378344039922355249069288298603903689322634261427685912954200374453616380856148652916073737947375809410049047282051935926801265547545234214342590760630351498297900191345717606726104153802753916280444055796510869127582474449587090736803950628718186039031496912555506728874939919842961446892399438710701154497545620511519252114278012347737383575901440914916504649199761386846020580575076511424939958662606834772305080262254366995839179013340483062750285911036662345621510207448336277461031889483524825624531218994715206583497701442131242758675088510619130415799680382186756790756582235866029830175710447075308927086211138156091018524424955941570853629152991819569038993029901692946907435520343069111433462810002172249040562205703648381621776390936171438443777596681685905074700970148432405446275999246275780805007547203274406658979606925708983103993661925184657295283681395430714712182187908845967796465035527205006317311617638538717276991418036792081860167310101740348710041157669483639004162092213663906597169555120537887373668113573649839394505393286695997564532526581530290958562376306469250390223862808887021510002549201306123634807336288444333315242405493934877251038539694767927911857981542302574453668443670846498584062262817551712652441485355133480679285513611631402003305949320638559676827028299749651541795692619143294051145464031846718202041419402658637330016070305915797475756913395613044859882194701315015367106607693071395463755100566604808374517524258990470707516293357202129358598098512253435675289291453664891310638970082579982762194425615675334400836594322136897885227662627872909936300224157293591828164396734867642720665900568632972358843367890558282995199887058527957914344571983007201563427360466133390221405650916610286693764769585730024958082656600401865728601777031498411924023910064252300885237914692404481082513298130343515957629613616683234764130426449290134112563505836910664569564810719316503696346065693102720212146325154386823845637731134522450332301375185628167286833563540881626505593532124529017086915082683637706664775013078951148134883355849901103941969038518170011993806892919679750741698625726270904704922267325326494238277880177829108254173361795838949290080901780235285721216106386434672564003149954807862963963756580311037030251864935794301137803907067007837955660894290057034428556164549799015700364196183829952426022927028548383267067023082198288322206372541739881438147242140350352628756789374048579436767706427796356771452641565207845242148145387857657805225899934683457953237406768724065523886961557947640341656968189573423948688856761911516927666281842939840173348023531295076722252025890766546012566566915451796010073062220901023863813570957525929727626502879049576953423635410352163886944158623870719323914298459429805465636876358845812375511339265925583867153592971909416176498713059079570485805666060408942281266196133531165053146063043981283288468498224117520970198989243198076748400063930193260854952236736744875049768289410265071289380735473732175202956436829745082290783710150096816840679540345999218438010990411922879831654833471093170875139572817663704204648062135703960040891147790278079646266986887974404446474685823340429355910221511363170378208550381899607911526844313058685498711852341500056005959519834360688967294880558989969721816700347675850403376485349064007460475237005894375823798709198614399918205201610876610583873540812686420904920608671178585903714608007489758352000268973081122650659200281728417403055039636461819293642854318990954487053585061474626858547601888460277540907132455423214454005333751962578119375857571847148489769890426100137470709838927324560016036289359211291898054930359998684195731728342301320412134341938261965209323207593679152068618933296141243407060073498315974910819824686693557188275041441619349499887791279857276722227797702705524367617172564750658859494058526747325297068375911238708058833526026956482844496619245667940205710371396661200980581005713095241243933647662086690346303529028462460847770037342146612618770864717212939202775998078608552060257467670211321445214541949434727026909010408074410569026034674717995630846058670531217236831590680988178045529145572681295605826880424953609030465856768692047258780287337562900749436312668170860859133734079212255861326690024687040769307550814974682037463297592049810287483170106497562036988233430540302705509194612828766874177817597746095312977751718507545833166993083732081222614580972588751705831864142880235880736383432266433652278925573259523704699609566149107490763113952305157530695197885594842287149954418699967203624271165631735548471741073538075023919781617147779015549601637670180017794314144310502969720144506046843746826101531710927873496716828046713935882846673587540643266957693373631249129216499443238522890814300125136055048007948579774083903532334260803668236811406305006774380367675116538455717276244007414728685664530708186842563808206146912186694063554794623588711742737919060851034885620363805554952598373724866881572610098144164238129841832040571434524910871594114128311544878124320211461130109360673028658817577948633853830100202347960618078523778884014492475164526044237574976165439779587794993417904795176597164534909792758197915489598444565969205807105779607516698573941193282801193992054927620164056292395490350594752462417552048315898804579237212586259751898091379314426945975004208106151690311469932354365414150356481466683745136458891664621399494226243420363954009170278116383479247290203859230766489546290383944916351530747520590707184285357782883246654404260425818984854244167669949351111893452668133253994271889868360049694478723698669489771929036526233421976788619472623199157582973316876195069328580600524075750833627372640505045395868274082634580330090659793540760273567888837465931641622310771954349221782010896027102765176383822938831610001679919061713586752218794291087075061934803504027495102667192524659804005131842419208381874118803656076139445342511812107573614599925657640192743785699790319647701872603847510027408384903036836227505657970989189311002275703301131613995081899062130234886009700697032479212704035069018111450184596864291266615120734563778863644561652542330817735575614774387387236493877642647990781819438911054404741936892563761094618158299212575309230674188226368482482459260806274605022939402367482899028556493425987144421711288547524649781672817507185707774595402596726514495875981366066949091923981043574232126990760687516674700927531649126863992175497264469130540662636353269751288567132690496624677330630292739686029894357236206412160794401534465962142085121033321390123678242292522341442065771817434835675252830869822637683937597757208558734924521134498145496270518258308418689931350758998315831591663260432750601399122365081262467754603649273030358568209845708210668934171138162342239914061654013222069623217651766177879514628822177982975376738853698432310350571770574498711447334943347901805735420272324440918006393223297986907046335067149925413259373820554888535190446493949345677435509496883529968513757265745955821624407259989299158004929001728843952593644055475719639356429859680605253039462258497579609816337992359783091793290158442348851067205055888942045598950131837735653492283302194305860605875270576940499019208383112862898548670758515904006202915037952216673671851759293271509434464324719297654491415397842994439100806683227347929642653459660919287178919870640011268412176553033772746704388556428047734785932304758369763451221197043783464005405025185561031454581523680848780830248037330901750713264244145864997171833779816532388144672359658329617372751801947705166168519077159269901122081010700151672216904209776426287109685066217441553607974753221486251442227555419336919057711247267338086753369756715268844703786358528086696818765930379728088031427372176704530328203631422023791003904258400648747562608165374759076925233140422714613573792550055844357230834739646222335620674492790221823802180917681517079965864348637982458470739111596877270113940393090045132473898030495785565186467439181978653405753714789868368187697729851440721849323788704252158970262598513693101008462070730221073743209937137899199509733497087901873014015629701796733138434232396087725786236109024269686389861019948443905507297346630377460625297063895219269678345222410366613380482326088519828784819980565162550327657695744380688165133566136556710423150077936737189440662521562476952295103044883426031540487644066034347484772868382955989390376778256429591801949647014166509996012206385461850634471788401800124353572106606824937030050798003654691022086497663884676013251905804752971775561304363610634095672541522377373341801765454926569996691242707705792501806796331334559719363571052468700218486342211499727933961298715143613424282587019520025127190251818027796241834522661661317969950261793022899491191985368232603119560113342783785697143173224149996085469576469990029236148781358980058232195780149999815689846318310766864740100688601572162074271036203941561114012342525067267374893664040142605659261053178449032068890931354634692551146228808024895481331009282490185623069455399284595690017133829049610458040656532028669588952834285413388758471090664526395808144208841157667619807414191399282801895502331839647271851738787288459322978779247430666572363460685939473749136794894936196751849690151477966755363927790408155320849842042155671320373598829298990843434956800232056231973542877021113848133452301073167905992427756341580078017348347516251206433633933132154169288426180685106866465784021379590301895385070266823196033420962308594015494740759133885691929494047586973201678828227245069478721468363418633713148535904384350939941972156874597006235337595853647620845911097653539030707320591027985724124071554606025413048872161032682831462377640235155571567542467810347375149399778079764598554510098657966775435327903787585343052544509506087641934774867244012199884674754533500025970754012334740892406597406397751268601051537757204934567342140309001394718565058909154811480428126130638890397491366138597202671438554267607424162184781568170424389659853989929072931694706995087153975067549987517387045101824039341915043934373005754513942465239963506835491188960210776573203608506045956958121674630439004134298292934282396003105989902333383091088440825056851596150106631112136457951601418307099864997832677224235009492014574886906443801797655913210166637500498649499665464456545322631831521543085276248863628749404494536662698623342399331438466534812338530382762008654628268148924353016312724161547064070277824330326880076925069904019829464027923469162366207794750383164273453114255787967084334564698637312512108258687698893661510856319648257620312216573750460062642313023527173587388509721724394385627802311081270981658581274142711087038567963319585651564969983710834740963141744824757652161971002802303665207077197571498155232756780315664226511952306683169344460566835000378636600774883914840848434635953355046008665458996480514558922842227041952435706774264575142124087804477322718515692805917124948486324849361023490434899507896278468782493010413882128337054870414054951953469353239311620749544554497000778345983468173353946100239556080117726656778696826818480246740159668360997080969208827693922015662817242587434356992065948384555355385515020648974930547664984873116895159084159807571876769002772538682670349317327594084440047789853205921055020954460351269005999877999951608633042744430023631977340550177168643222687332395863194704136962150648550479432009541930471956827254275705221149307678996785620043442753935148192650976590164754524260037150673603960100427051525690969268342461376541971396744683483411738675115249903855776115352099916307458529891146415721814958672131391036864404338841418684452722588970507339047510968426340197647593152560282954854908840382409986388944481593623796276285999893717560168791081420450232935450179393327073134057850987896796468260034218964365962909024356600425491595882008116487724665707086431677590296945960308192170598028459443892514152686124779567096409774895479965227747657846340842602374345815546487968869485728047834061939996976542717701682148171823471353585138657311527284142636302840811482467336584270546902107552558902824518063958555991661306418201627323101605303710874647624346417301597290440846188142852248026141090148380901935280442327316055422124262432917379898311212508341394472627684729562637843750944345841585238168867787969472249098678452295702867155344558446740548645520017131615235276704419478389128893978248415005557164066390123500560839102289169378311115430157261219813110444984472090376900384050609680084680435001954279148092854216792314416514498023408285660202986261137966033049396489557697858035272588660581862898134904866682523002910009344649532401358373000494541813471872265015433401207077813566343971657098318017284968792177038005550004902239183106915953052186485513228969991593480963988352574685065647624744759278375959395870317910959931232333805517482895549788051086766445441456515533111648650572532337982699217287144743141230132632281002587968485855497031719235437903622855332816463107174385932034836714565816517944348078387991246498554620939128235914709541535692358858431592827503518638612201357624882118422639219775809316205681459176801908963991329352169277416908766270469055557934327362944139118660011181575861602531540986056762412104033869760787292772105947294589106906126196150848718436420891207105880014772501917160665914939027550974125604908835793842998497721033055890908549626837590032112885674794887159364287864657149703462241696694149988032361638368836122703493677647207336308803373056494771498437525082656018276096869803621296957251710060739573031152400013129119405058545119737322726177487625664335548589846929949722796727962443113383504841182365060387941981649651243611131589712260460947384619222068987619251407631553317264779270612019947637732002414168779849860604555407752518299632079571677120810821771493119972087675556482671635184891549542676395157513153737128983201198821089744633075236301877330904832877338924753817605269755394296823346842641990470422913461656374189320652678561869431143154195625349633882605888009989224436320882250782146155092294509769231278632277373713875781799647240606622771914039691655450128389458563065653428723935641823677749777026484709146610036665024764825056269302818902317349937316912356231060544632643028585191255947403902096134262158168417225692839680248309003161522294160514803883705776601183216800911233020984842048682192468707233356285463311805456739637637588309793349510194772404365808634014781543817736354003721242349471670378163573598405534793451288227895843342247265993123349046113389747188320254062678231719156480524295441184540221764444341440264141573489458689098752894990851264673265626640870974529395164792014111763973481438594378348624891565863617183729613405572330398091825712963918196325289403800495556949747265323495306273871705292328055599826817359236434204239151785755400769291121175998684906519034132822214640703487130339448327270834680812178623021459133269338025664816654454332256823576354178497044871555358681433313399497874426064190106289647036143098096910317600565648310193974847472987198340127048990155996378046787449033966331411122698035944667234991450757104513602211669503203077949500747827408743481166896676850679613980132317717871065944315163421304374006579422212196289091798158602353294324311964481684705845249883298333460226022920411572561527309807436043172745865342065664925467603288749200017535837374975453659160701186801119958586418494764005762405763674379762095774501455719113686289015246036558498995886992479202913179263294810065071988176260049602256970548050879920004188232897290324519806099093099085647352927718990962830358946722685760945946236287804298185117239613876155946436378314483034702002251580692708465976566844839116626719126632702108356166232422749277244317115242171304656633558031299234126917410202538190203850094116703750447479771874932556940928647474019823891851522357670195127111968946008307795361017624236887243818310354067860535109936864004279146422757075055241975023855294729558143023134830836529588997342392046169883570359418955680285905942015636951404931652268996740526402757066344015837599833055534518275041785280309623442728539536158778937710461154769549160280241995809444222938807734766121586720331204977247550650241367484789466660532295888590707727929228340269056388663873564859499456385869531223547075752643398389974040035799344407482057009682946844267901617214371710077481527614168239241904694220869233095652197968550701395355096468454435433723302986160419275507022104840726723121416599668296622579415167383039978898417294508275808569187792563268609629322697825424744937448398432235512780440312448890449821681137567897466745915778729040952356424419813094454974138814512006104429053216853926759156298989657919533505022557776261366659589772719292234387395156419278972771054416618762996830252904125934284780296978162813162761931697144491893598812194089951918337953191650362574008501360481089943053868702010866583223366679997399643055735669265957089100307740153232781460131701091672010417235718517245793142486291218465467820194373771366101351315375018403263155294048932195676230129543422161132050672929697381834420278767570831358922749763200572234353088451569858775931117162386588854304763822506480601778176749810410080694450812825445148801024193188257101320899581242753662055500073937132739194142836562539993120113643126506067823990821353010047866066495692582501603995547026564562892986029628789986424450398127084789350384923170495852044733818465279765427440562503197809159766896658886098436269354712928750633739195281873461352859523449707781959592456581978500514547923629175062091578156922146613646690379158772049135831510090137685628433453156380564068423865741482816706662722465141707112744408958805171808636587579896424330578819279356546151982950381313291551677829506582834139139761492178002076709151939821263256459954027924736774815381992019506020906789693227496000630190748144194126548396924813739480594770775454888116684668581328769508249977487265491875592539023843937194500827198231490541132429455447985174935263467599378734606615021101913270235577296649952550900918361248309812707762010107077649358562813230409787151358733146978378213377461261421606431455088186910587997923668685584121502494929956424715498604171546918220480926350620400558235813117844383256649204496905658741319578790454708415774546246408356843770389261740985718810226260789174815600903214461236121969882104334891894227643624148738968592908145673893946553006739043705334335345427011423142882175923358196921956913028008257342465674277004909984317463406326476423380860572292616677042973118814874025741711286850028440611329645325502320180077646537293568387622954347267882981488573106513479870286361691042978181061785668976187586466963927415670147897311741005059301639440550475743655858721680735978696246297230643952748091527821666530025468998493924234983550130550881157209624212283636102050418973391163703423612302716801975120803668136000842973607735536060041279373507294866754153930560106736384132345626374111011262067178694282498487160205509025651101343990091421949266136034438599210196163676525810354359840674889423059948360583126672357021501486369120572209566136974119617660840899856080506032780720292533179802525880192877621750199006400475731509533577785014960739612912927428248567664573205016265656988209085278917258963085756726333805103421811030684122204077526418963934304682231544835068689028274142216946044015435681992461430785768925698011101682808263956610266512733437857251166096482763701243975261573591957366002954772517686180937774897623728221494982489114184228072509686961460292911053454875388629838018477123954290422094674069216594177189316754767997777213948075601316193041976392461783534616475995316102181092107890968228723021902711771243505670206959145599827162254765996211699657305118363827338051804949838868738160537866505217117439709060655436920521530563920240412947929924668574707470375894014031997080979306661861648070968780159952560745068675284850305727044888225359061168744300330635338078858515185669532370888147876735397836592386526756341315624483311038494372248199917018413613338372933479676746592985537648358153225036477698476340704227611074333435361182830071908402075456351876897491018607777944181302594848889430210588759077383296398345335319944490096250389090371209340579710899070799964586674519687444836885600235670919712556961220445170149697707007608139378634593901652991999077591422088633528587275498863517460784067197842266853450657721561199816572824807202894077420790062015520837938203173248697620367955943044830551850886988649693463634888961162178256300193754813601498505430525078673671813653787672630650260565120162321900158384430055199851279402375696508064170637713752192707182850999241764522430679189584812990798519916817451957961473298165873627963658452796089398684505953311665532977633612529931547477173683985976701815167195607502803535327590455263727405542567962555530927802072031808301838519820360784094976702301307195141410232758087884301890644597834586308607762099892337591379388422053868363977771995848333863510416566608007400998002056900175692363526726643351472538325369376951345011722809210345241547797847609451203390368448000517785087239076825385328819227277832858460702321274448581209623875158942693475078881560458743176505588528570101506586302014507977462845025231892314177807632604054793790678313720710849273812398735549619656878627565594376021677163822187719444710006780881996623509802720719099114527103670291245358066798099927826135274769325972447564450375630760637751010151133274636738028250636345296387550639561671812667309933163858044643362178254797102557103681761071805679033779734616938161386105694790429020814698531184289019146953044101107169786060724666671774945352944641127681366133131348243013315437733538583789308040134885625779145815106972011875251211329961937791362396770122644187358479278007490500381544975484594156035446897092239946773433939824116807889696553967843990040349345924768690030602953778186515680716216651142916700647675636926481403824008351646840647977063444259500003345580424251371462971740129701556573610889857187636073632560514918928355081004543925517549866103140447591071124277990648878909027472844847975495046455573122764551778546904184176428954610101119722715137614776258195966411905171170109741035530373395870334821272919036613526662664970669946025320771370535865029927251965174888673899334601790780764638591269666252481658593604193811485283412586513641667156050463029071731328832632256878315546823358300400054432351355733346232982027011495127546812545691654396857888657909822333306231003881434831872360647275313627967907010816335617543957242473567603941562836334596956632695334498423498636664942337104557130334556821133770174001787676001206524182198658797435958949009644325978546072264973992559715856844205371186090173866079771263570818011749643208450623289655649509010960441685549750304994397212325500843236364430390790860158768384167830912893983587784259776417874906825969569872502133585201307033592745129708993059256685041754411832407722511682995228850412469561826006146074239459026190389126934259981881764550641901016817051817937750384405079151425257307560519497189935080044430157389412758978884027033538369267038473724953658576522343338548169132790620420344933128298505798704504194822712266533876395364533546764885760228012596456872312186025029673589849866874965028323384148354375642187001491569240079465694909263020780821587035167652818651588510368879571794907749017581082501221923112162353598120691901843555086173076438598305933034518673365201961224948931993165717916637742131104834018973398629221077598289285558027537193204826822424861076512127110457390518145757525667146227967992619788357482695004047360768278688411571529462379542853291919215451224948501939807590972267411388887724574480966927508400861342051196961691512120265546123510592373670154687265385993682471260477736176947455944393044593000084262093861814113264825501275307863921708412476025530892851281362863727884682805454950402793337761910518086754635793895658080823701870232610303942818352951960683819776109812558519508620845189396585129488207997755310579470089303870574293613706484305301628424004002107023793048781433640155598189091150690732952446199737280391095212769140845694256172459630687494860485914641300566924370666142045408597461542420345641935144517892387888745585383495590005884571454673528835132201415948757846211956820670744158462249586857474400239106895329154913418581520735774650651718268909790672474181897947212744737775374821905122498169339318230459247232792259313710516322863228732985978512333245901961465745757175763684098764265865391450462938388973662855832119279652971633929868426916669487351295307993480621425779205907177046466330291343912550381117938862904927868230821677271693146959787441146862687624207023220382596274133575099644141930563941798793449000448620954049892825511387635359330247757191351311184995409760775929855379334580282737904981517274185923333210180003612759341503550607079142380492342818031470448835113004693728900890572442240995645237258115487438126042487358370903966856072190459958585552846569554151304145293548349217387264332935696535384023956965280190072623180981050348319516123697076010583937606582098885828668358533513402412751990726265085629510192106989055003041960303467362265325541747865450067149815166997217836617692084163173526991282946062574735104956320555346775574659156090525290494681317755889273475608411052545054802103540946254873737419277077679906145580218892874578464975099162742779983150343640596919777925012854648251501254609079802197272782499622436441615918749046214542540258494537336729502705586868133098397680439147484983826121327858131438171394193518209988308821501079200128472542947795232192802674525133398117394770669638617922686931009524036422713262599006012383359311859604292791013378903700617438934084444666987378941194168221923843767092496820888249021306660656963135733887358148779934415627005098201509340735464348666474593207243937734383526875151113769958152216311550559944016968330842995790799053070503581054886473849433807788427822557540810796327398225769780930152329407582767868771842012372949269563759714050999031698871218331064195613741583543598300624674040652435675019253384978235666033057356480399054669994048398776278972335249606943924516630000434330983417866814502700836701722396213869770697357661351953026844358163027529009847738091192357976383216118816749236743115407996463848711442989167398541723185643677153598179606540497061513294274983937314424233250128817083519067262710718904841500364994029921933953316214110869715988475916989394303104530936609752441689904845150742234908959876024779444538269361697625157820216107287101017098738687064450646236589534396202321024177818678619385414747265784637891562108953055164730574058170443235501578217795489159195315228588941602521750947536550116386719033208305295785471593975460378776119182104766549843863607965224044294554957684665435137885691047417331429258573209108479471459505250126650495958541416766962553854727051826261964748939345576662495132560366218794822699510865134230900167731666459371697005293728954758267263281206233021139656059059389853983980833177458441148525213924705712591577513040361879874842094579182704113359254759679402746861077766296896303040245848627304422858922576732844935704595256934948967926707865704730756944428201506983562941809327746333551500201052496600904289014652056141152033306221356718930108498726951053502238352988665845660871384824810143335571308137948826660872964526301500254960438034402695898221591087102679036201154010928290954596461167448577281323558165093239142265336487022536515291605391535552339485604179268978825065267217660204364143158626924666755822688604090654158178330567542976606264858022366298050278898566066869687054239027260351363630697557673317567435555467584488653680062466103793772167993891940392229412817572116311709719456354633285384180147746062179367010678282191875101432993296265060161749472881602751813895781308577826227046525226024411734276628084170451000212260622321910909929007767134842290714274899377788799542566622920121048539065045873861670018724573748323902906804580131291519213532446341313808537990741069548281814434485945805416812574079609666440098509108085426690329126758904267501903046271146488055747740725680841628894622591226263977681134589072369693455345550713139087386197668172827377607297896381497884415231965202916295279781026522874378554019174477948394977283915924117127294449764395165633864843294532696977966075671527615042615651567043307978548749439841268805699772080174681294548934291340622970938998276621319778027380837553167535591520140214474918388251856073739927056285564505394466711818297403514044854373465312064485724767271097713836676544675211683023996389385596919393052397174705256393425549936693846747637236711207102337089936207889045348733182168158490445492888354550294046086603637046844237129977182975978354816311348942859535114551190578756149011413003661182149007236233824859205996725677301570791905874509862635431923166769518018381124056022096159028890032982991929665972716069382109729100509006704921028612683251356139461435195574962033479741586551112581936195770379959033401920832534145204160173218719220735618869596063921518278578550361497282571035373950041223191325630107729420420999743000725363794732275553795587358156058491988469396353018488113814218080545678497290031857296286124578403066153748844080596405851714216551760011226187359929939994621663317597007890831415244309085056273457620703612323761359864647283088320481359329181186410554313757453365881676348667509046531566623177312347942015123384581921055909174625534898567714620761634628723120742405413276902163056389409495848800014975025230464793470117010197529388778056285862595238971242896925326251280843427967034096574138075901968396196516682370095888819038332335615724826361860174211522958446909619082685296832224408609917666409481818935986574387723502625467544702208208177641406941360913718882646202974992641108636644985334679646274397875478713950855116237540184861621709285753671744291134434074255071991881593606193863219532332337515263334658113714759794282500376124583628607015097761846287676685201163498870881216326735258202218275137513038540254699698031966547561654688945447990323214628264785923361007815274993423571862318018064032110523866522181977851346974629693607022273331070752177516115879595982342130508606012500481615702923825379132006508381898432945381769391466899243435451803390397749840110158879267539050374921983923970356737843542468439195114203189239353255336347419272290383779989847658736236730249282192525021409625598134210822506513565014975997607294436120303734574946272515691537879153409533410908217165161706844223229294189877081902769122928693311042671237943352918844753357971027308290822499792284838085128794125981675968545721314254345231911324254977043635249361837458520118681407959703544927749946741153369333803116127204013929165846748159521837054301242723288307274487523792302655635418552347545826118491562716710395126977874293900299095920022922633553227931410687624963830257697772123304678276511823671911900445950752144527996502486633981334017881869690493375208955177998613843135119286118998872296618668305208447722418550985853016491837845779524693931074884066022925673987094807543554833298474173633729355624994944866320414933888040276549295321834080681018362366963619775351155516603383913899687710291943858277293554846921080022849008389083466852653457903775870656266419786889087197724722838878979343973071199694105065676776149120350732287954480544094556505196562512527553702041897035095473139581908256597471815738030845361711929721929507778979357522684604661596830197052856197725900032732362378497017211522166260832955469134363665377176317167975368140419836346154598333910683311860306494404469093271862867117896011304463722651697601180331879529101294853986819564653032595498730720188451439890774296213376521619934386401287990734730575055636065587960488740892087352064995843158254469352364269635379434155054827707084503568127790751478559980926382677292158235798671041310505660650637145556673804696778737422928279820779392875413958690037184339027126065868228034983055180674156469591197285375749600726923709803623747014075197247027960422702731350144469850643362798906646592230793859700011524210124217835073054366161337802955233131887953864980250240532194142526581854638807513674547505907707449637680506069949538518597607542119325963152532429743858152219901486466631528451072301790404161537265309748689572578867804735132039157796209268454001227460971793588303789916970771176181756259094387661518245715497373465278503503890252359770930908854359702305779223700273507154892254515675705503627169320001305712378080282019406815935487954099782387691544589185961860752562103493221413638148555625673929592387558295579788436116449375867615758108884121730156742771139158870657756468807839010197657635924051299275627215506809104522351388340245060603485528863988064939865581230750645369145734030287714019625718428986279786679903218826858541647484669179693127912507190316568672648711141322513057705298275279660222363772817378055253798729624095773053716094723063385599266729103344071529019870778429239106884871893086418419212011709476834801369838247421674104421259660970849669474290533737546338487303106980319148541738786533170960395235527454693119570249752166535184050997408453666830369647728532085556443232987399924014995091158115109138468299127419738743015951994167292525245361405513497554175700434234022356145923188162468402926008817547008917831024972527475115393854502214557614041981743421325796383232896243626162526023786443623799826991648353562654336975624203852759602225885725825166997393439568093692609447039225876247098150176049168912869749885341416492364357277029607582255828235775620628339409426633502742562974768444615680397340972018039875730996642950052644037114702031642763623671099102416808242063932328972502420200867787148883145064906773327120471806865249074207138348928008218376268746328730009030179763492998839348768460617378014297190253129862079876610646588085594633717556447262364465396857979755646195140320894015368968144938974147521913227218175413621063503627844309357325643595860793413506461371589804023499924478575044707999225980388079444599331113048638668424789035345505217923089660364156185829800308370578853997874224033030499136733991543458905836136043906533276724696917098807518141457602893928935069937541314389313028835152918632862147850440354095194053270494160850141039789069030197863060089126976405885910591104394539885291397883853583312880553607083101087260668519888207117682242993415760590984884312822825886719620461032797061027482677358093557495091872632343133814952431225124209368233609598221566825047854182013496021026582486259462414366804588873305468169992790955642077999861631822487627578344698891459832854055177483708461577669597848429024773851102844308100244684982484061268463927936201188328525491176545660391826574343754296069125412475821750143309339813182308113595891022150687605611629928437061613640826405141056007891711440582449488532331065934991216618880177497576952257027214481106043664610019782124754174071381447046566940551299043721822615520560208958995039599980422456678768115440762864481947180149897907841773450980317144844184610514911769863227750838077145752697900075637385919718159566979951505586519737472357305718834395685538838539602614227883003421692494446304714106654799309346833861035034565376982093364328673339375202536639987180718770522276162108948036372992659000845121897886827640029617654665676903090854529179248207894087607250099149647752540266073977828116396953079285466365077182291623896005016712097148082653854737700437519807880585336096815769781551862430938010993333378405639548793733712726089176801231622361881455546163633151984134162758840888253156623569028621210542532047979943700507640463356619827791981409120078656431158778573492489763977100871053794047160390778978008072514441582989440286375537804049606528466715200690554377269935328423569227189535972633761905707671502706242494267603922736246938792984588621649246661347133903572244765816140545371083715823684645782684471862241048823830691177560584372525957046677595977603407137523625952205183681974155687999041305665834990239375467827712629213891755917007682318475333941198974807725932109566981925801494803153801363679862333396818045706144321525695723122175027705396636824728360989403724618045418551171447497213370162875327518678733399579458654088918764618962402212026720767530946092468202215780857299204111348464381077707438301314533376869543045750443505794548443639378094534833131391467410085979509334635023597115532684377629086094481181616816145281264560007564432240728584691621822811287941958392527588611553013166312033304355362639522330065220226258473774619405116511118049831832014385148197514013742100406678645707992630858911782665250999599078289395862998149744928309394679444520994457570866277108055387820456258977813102650773783197636262105429353351487088717980887505031146748986241384514063933020256422964170503045621566587834136112677373620639794113069631822778580616042919680068594625293159168163684607299762589970913825348950053808441572330598584607997281532286091493312642504143328187153079622055788527334805934266984758940012391417741271595544062116307191416960042926133511001304673629476843895413254729221479533618339319117505659647645641104948430452798584092267947567007932428028255165825525706703481447511913482169917958042237195987257404997852286968467397372001429589612825278795299973361348773221117539797217185345292246010464508674670846124233616498466470847459615159586502577013630456312729451388900497245068644097154137690862772039138708826120739076557317811320543516277177747102600770715156809169187359080853606934488216652090975159486561291601809329364727291546978966295522654631268095179488557687827225122165773868322301908609831816611705084053256752425339583330164113611650430774243355750628228702646550497297856141662024573748095715497162335258612741717993297245875447290350576183601795478911197006998320165184977075389476558407360304643034873103033788786355318432177978245617951724974829912442729296082796660743915013652113702120355010525579925263244167583765577212338129675410960786612612110606153902523418664643841229355505236091969371318724688944191902990310698902238677817664443606128139202659946449009829734666390337390899464850366804736520309666685822526868129852660144928206632528049124023521195459630678853185718802176955303894546795408539184804810847709200793875527435486956487271072551686097003227098633362017761155251869590359693943192917091430925579397653410492569868038928147405709865685238723012112869900307239636491041392623133582405700744502133138360361572733651427399845915848075453755679068278545809172566893855146278661420695237834550794031742031403961113936495577844537635617805548292896783635202511570157963921706505321219207563880534645072631738213224388067779935655237679366457520273072054825205269478864224758406349502181059550588118733439341020692096076227941199470090879389461303142390863256367588160487105020872526452458177575481315899013275263346020984917201439282695488006724562633719722831997260824794768126051358619811513131439973361302346189372872910612799571699209184852782383025140036561921558934979546289509172480542606521174886154862217120136237137970361585530259007510356216356589655176034411397999073006748120208311039296223017747176117330111923940112483320084520729538032463258055399240182771821890098901201507455309165743590170340928891280375479386862006465584811928252714810735632297217763540117420051723555351096959188032047143879572387845738112722985606965466918437890956192538843427611779050168254893338848200029613378354002284361296091734536817845145215537459593089233810316732541033875502713419951757913384789764375839532054860465764784755880548261883371918903425305077851637838344569153877753022456544149021571764308407028916824515330425443477277272515202707046400834212172839317333576163579745458265060336519373408144371093355610540373769058590243475289002560017241296917356581808513700566919999259131368433598371512406866278081361442525295918605139376321667405993488049580783564322272844363878485087179348576658968889614635560530514582172588392741615175728085093012719827805863729542212410015844877372590766966521160695337826936894399868028722624286535743549239624161087306312970456971404948014853707655669211813775723373928360129051931023884453118031877966271280919854149898946183706541923549969600176199414342807420195900079439158499594969945637537911255960920147613275460380361212211627123912235342165001807455208244966171943077694820790567684030228664322277358469377146272713915380594416690615083542578318868398476278346868456237436806126040137551733126309395014309446984949273929798036710691517526122529513524862454931149736780261478026961478051223867751951899690804098294832588700690569017945069256115102883735811883865824739362343012265206283886503271880663593097398312321381445817138666410590426115359059631830042039865952150673746429546054256281465322179799870854777780060251869495986334421833239461440154521032522547598338485903483594980216314270861461552380561370717134891002412190626967151713980486712983842708287221010104798730421043845773095458029496878418481030549887158966791963116422718471897693504876206785638357737425510197592769239685328127055141636249435766096842544592844213372993012237350011148637026745062939111989485930853770634081628975943232732904333498752098534109686718868929349644610950035219219450655905507130899595265901704572959371806584899795828355586125400615511271758640192865530701825179600147241577226877545528107685994091240543290720386004416000441290445388348851950333202596349572479019833341135202515206850618298173675821455440355195961120669586300111141964366978224723973549035010320484482987502252781541244007481018572990351662051834571503957054558704012426935282989865005755916466255471880277026888537158618282339056094129414988574713116717054720871889580941723515589514848091925690788259425640537897296814902473879778768765649562444300223680169603037457384442650710995063142431465282354565936746211228784162965764617950543322349403273472672980826026650466980114276199089748098686501529753925660238629234858846922133358012203125965609228881168736109349958033065178164617567533053104595085038160925539791921993269611979717463973913975218405064666610308623973543202134746249774585014593336628413968944057902180557310767082217368188533287425144677809906484903494886159988482383949863103500457327723206620295090158891341558491282820419866491741896516692567083407911090540857422268990793689575251015786282441339742105368416921689053890769496488766802053109712680154891015402198464382439213567253954037540782860632209421402974109617532110477952160286266309870366051531224168377903843218920429791362113191905111832283969881709164624460031848044654205322352143052248093046653626650004094804597034809209339415380950534421466657686999003271738782989074430633996949916988751889878512146653183012657269016263394611230427004143332168404516265145842896456342786774959339622529408831531418492158288739846141282998021788920911584297055672042005104918808605226369585828098330676048458131128117972823204142548981123719216507764127138967032887634036371667452252746756216973684480553538015690485938201271841501436577184212299152968504178210520295125153067350144782267096071423291167480750117782826355987669762177887930280965766980044731234949231272047993717354669916227112596985336418822876195357159250610144452599360457886657132374687118742904251122495349862224381857044539502017221455124498322057898157628349777098619189381794405235984910777355454568576761107072257976638276411817307300822873677780197083667106622401520334264199321488845516040103957086710392909264259128678368357303348381122332318806465339457289924889540916095125982061311760578522165194954519147861419337525625390623119406937869337860454446986630185555557905336668526070986986579068707152748930516549027069794136073210734335405167190617744683949142488782527946145277255509762337260836971941162462463056406171176211782424494631519692661271480855847966193389040368775543945351363118375248008361211718609002559405602585041518237832096614736030451465864083921375716262153153077252681162250275858151758277410534425050289837006846269963476938232196896325605007719574766662726303950000959896178076646036427773656455060726412154665590643385935905713882470669299413597953886619230048816110074242128950654917418657111628115277116398917096718168724949640399274864252806708013224864358141857205910932246057348509500672712489413467819981130054648937027421256970164776780505070814056011518709886566714354646372707280768507501619385992279189711049516682728414393470009111323826161698095983192287708161627597544090674957542148332272642019380001780063561635961205113347890597519735626411471356372150287834233516072124187425692650812820425373359945965389196842607415913143065863681423297061462651599546372836994731458196693829576790858800404841417736405557952584641913709366149005988363328675062564866448153788602070845752682174245662146988321245372356226479110328443593902804802840219836565266094617146426388049972185235714619996032849190409573784888540656794407135383884574874577641214515241701769403810642626485981516620474628228712812660712771320713473528628704447914410171429238730438140045710959073333323378157852707893205071575093448443598599636459965883529871388503318349442869663452843284101028192915473203808373989460540209397103274614337315393999261277645636779068757410896208333616539016193887213513281533818894157820286212092533587558975172287616881243812447611368404839800549722843060119936893079640284834633565192039969273211913790547470897409807375015520324729772344406839194982828324712363672072777618981916006883387729418547376121398241930202909124853759294365738152401050439703072304278851828404282504335140651158442747740058610778463461379125665203399130812161442415388423662653861114223988075303407524730461219276700509729877374364536053052424199732101416514275352429079385978864805762946887649413314119778611474186755483719641487597574339888061186611283971363935514488429933023644294078426477873295630280919623753830520793461967200801222744196815533875953480721011524303450626088898159902128691969268245824302964651652050775891334948991887531522140706209773680928074696602996091074704830612508664907254373881444517139160350592869174796580559666671119229454598368029614927813302254500179330301322217179453655063803654407851808706544840823076744369491978880173698184329374555149916245488955812532007718615061131470681336078690506424636226853388533094433704446984681986430334171815285818898390492524256322268522801400415645393298856170487919758957486854481427746132962315573696364718745796538020517205569317401111459926085091199371600923952966668150903297861763640278869457153194775056043376099310901807162501854380426171840251609863751295116373315467089726824270753897167940186435258885096204232375236995372465130364760228474515647935654541672073465179831759847665919034765054417957258094244020617234266166460363477449501869112895032893865409268108340118266300396844625210601176460083496245738326288413299329912607979656001995751037398728213246147643331671648082404193723001430908885035894373430568226027615463501967306005750748084857389468046849209400573449566302212612427705899370839779367246697418686021195666020812897133609082593095384036054675396229069125233042549949224540927916117014076976767524714052358813972791022131966819444132273153846902491752698243759520105308077429066115366292809906221951839598677384348776329358806296950214966606264124232956799406807968489440100111644623419426992422913230911112965921908678633228980645853173527801945867899814919081727347796992214505847244647675348175734864018771383737373461899908502475912903929243722310179586215706894471417362304174157037365218420776536166713236006935801151031840253078963409768220322977671085079932767798889656948941429593341595498568479351919464202457550969136046251660972280912130138517158943510456158957347546221713386076226339259446514830245479889304713322879425928504329600626014210104651283754039866622207377485677089130747185010190450001151892257420807464852496215572964523410075358886529634325395251114615344970622300081868412157410779853805394991406936310345133579292250814305048959361502838854960116947487317547332982192757197976873470597638466606103792164704113579076898763786918432974000963556730605831827097612988359517673022087159872598403837535398850393486250978150031400848114666046005757800249122661855919823432995110413716369484692819335845694184468973932919278947170028704495497216186119909238588176248649557014100897972584317813287307265833320278256670259248656885547320578155855603266874430313453234143419892863065684610875896759464820711472905163341751274547692108694969320747971648540507981648389058646896902505720150436352286961259658769338436995150017496542468354790473318425765709591612459096136639406888243528288700298255675089900229732436503419878703013008485904862623804966961048544492033004237036865904378301484226660885855265162804766245047047826570444623668092618350424262153689214658032016298490048594982420277966297619193600017612156055302465121759681338587702681901830097223347780885133721249221531677814300858656741637264167576146956279262113572887343177093791599268277626218760701810134318959006668455773365393255504744390502789333214997980918554783408055614919104238273960126794761778333552803624970403633784761603983724860440370509328539956594781587052945807479540130785895049353543452401767814326354465259396512709613200419545738720287012599600009447557802090389115542245412208689998198376160803160038875654177849948001869359895119202557722298715915231713166642291361210220130700198895360414380313793430435490826098250378203480786166551387822679676585978972624475692969488334496884443108919759225926209179449055440162817712745893068774540540667074437427787904032578722106601006987723464250894807897763982369586843944258266478273404388442992458416535482345332297955462207037429261986081916184958175635437561482143345705418737313910585526211042023733793795983538158248578627015025253082107626250349329448845543703728819693318899880863414991995862270280161593143439681610901711423976939087491602794472591497910249474288892472929429370755684873286752290632691980562092118115871336674472587036280712617986333556740684669564462109247043739280730334685058674822680397623104979442866033408160750145726618176044229607252876985546719182934548061115057977117207954114069587208074629557034603780922121852589074849162725621794757309215365612850495502608368727801501173823346840752624043693706235016443137427533490560552714826576206273112488342534930768325320514791038222130943451942165460459710234243210514784423590322715417560081775156047459106834659542516948260182574303510755292296761553820173653681516204413581532921613893065943471574527699138968991634877643043317689206714783728131320017126025854448243806418800114275393487351367009136032333769622449652508212776100996468531339590487325858128043890109403084753798100942745841092664300891482825941064049927478909426981064490081674935546075693120046815454363732685023376376958531560227006964888643963391707700674048775877492628098357538509634007605539114165552213682367299072172006669232418626546565224332265303649467109165800941140710596683318018527199002208669777734319833069718389385896378631433500718405234532840731411834095870968791988329446438044652750640185588720723960232934919453348284863597546249198501925766233689069344897031742704104004551383535364445137366515949063414467495388206209732087843128518222595761453657225971348856015381098238738644331053083574456225002603818540110268819401466714309461080791878906906525100137993652273839512129055066189292551339207479010802952904756243730598620605334896562243611560284179990528415400372374069444673814130812206110026021615404462772816533126810730030462075140651995165904741484324367936771903689953285476055370925840473180581223206988509722419479249522373045191009130452491521587951450784556243348663973732629255422009231813846663122718924545860989190677166134624037805863595230537150290820187173389983853268062422084053886169841556271189442695863000960739593980996521326239680976633691198863951108068416540389087579915669399947494366521772205383265967542832405287984249666563874708528691440566207943408969440134508502048045695652383474408134254453214274658186247051624438816788883635269159642755509518335017996086454488048956538472171014868937212473000369076856079976974390260172743366965580271481448293366817039741205802064922283799324422826622975874377116836171680101249695785273684049370850469816810864352711762834679783521399421454100754349389318897638439050662205975145103764069962364215960571504585047720633558226859822806444332125914275807922189987408715085523631926171301560235968488487838193185819800633710926217751396225421568150202822110244147931539112417361541161932422722974116004088716914852402364342206060964059477680947615171354209144015989377122594063844149303630448068970718164487258549867158047208430691639048169058477797228468421766946599072013036107631899712862145536342362885842913801207700498015212896597027951221473586148467047127058339817770298004480472572676863686709609964602976484074966203190853877596684229121495309816706625169503519509958248074445644881076066872836618070244713900480700292015167879982269310797236767607947449816034757603995410122655589513612384144847980973198247140274662287814688279994371916271492279171928195983642299680185236832803950776895648973784050451377149882839302081189274642358893581712122287964007671774454376379728718650904657139308670895062932792521620099072324844099332783270151388506459536992259427689963457644275591638780247928142890695147074698175491871567613238415677290985590379260332857957589441452194386230103549019062306615645613562653950282527950393495795569658799662154158385244727531571459258443520815243687598866506069721424480823435981233974048280462832706032067089335701707836834208569903279156683483415982621615344364609316237339769138278724410153928931429480546469837883413139336134199866141466803420404241777473829317459661385096998416687414045393051052570876365602033907526997587041968687822991093632364560422846417755299078848313545749138728098525478318236380523374745232598617530215488818976790789437035449924622999650361887741149344238143904059563796694887812447310293295151584117529408762471475132649335162920463188017274833186312979094952105774321218020911867555165782994123763877792870459279836770098595193345079851184819684578499050874342193541014192511717003854094174294310429734524704568104285715423882295498033302973371643230579510221554106583433514798732343186167805242543383072494952521787707540404902343106722800086131858971238552840360681830603403613374749625669839430238985653172275616532863449648609744220933997698467842187256201935251596309851007728294606309753418977577298077182876126731632075111313555299909341184501434056074095012108379959394458006691053785327801337609029213126416120882330673800315181222939415493747060302862393581061929841940965335808650488734733240796967892421497437565658281144315946781007915119288830433758670635917460088384996503277759588065121956115771076957171803196621401821974058159495387577936042199285337818094901474259303579803270941467533510986875843612971498500108937956912176339492251096254262014657030010302342026495534876599502900109111685017011779876190542769955636553563044710599139314776058227711867691231422021572839054628150569194082483413658105264752692213541100987324956697057039812842162664648942134253126562680966568951939435024525708775235877257242711665442252624612538980834404484670357542830241379899275218385479239820257291272671287031549230202670864756239006596266190791551663912385041041176516889258515522094785059589235141057900463873216121258891687567413009200395170600172336176761850044945882107771605225438563863096602387803637153691541702501321372072995464986876649473120064101268432509894181604963467127431027977156612437067017709455911875611803109493527358564671377615606652437341404348228223699731863602490290530771185271787262145190338310749874082537806707424574645565225493032822895099042640899246962011953874304886321031998959755403664685528265149664106887935445571101113282310007689450482554846141037040591268087893049062824094875831783986588428368956914537782003116550067556461500961367893596057124732130174008627454945718085662202064966420832287109966571731196193944732634031873064336357390629516702890979949851090795298363504145733526018353432739236088030044883197807915293911374426482874071164252164588816156014008388704719036035047884188557730670190086460074230119169827027675453435770223914635694813092883733212859140509934991292056103562734782548744699885141235857043187188339386232095918358671902004221614503955670487693304421344098084890473813886056364049785180580721449998387772030288498065660628851529336834147043294179960139330312331454823354769710598174217171599688702831348997614533807466590011142760263605325170955643549578669178304988958766749726776457467147057186426592076731196577169851341381898467343665222444942833713236761934439172868270459023921269146485241450253973490786790057352034578772374292066528101339767253643597688725700172514102492543465897563872486619069852506738686262061384100961029316675618032995294024160127795333758153051059673344898525110130418284445856276570833406830406147488537054984410291581540283519905026308586645333125632491420885591861673372460572911544553917803207191500334354713317966730901042585625651616034212798491409060973274501910065007557373205307103058390095200224293509538809328879666290335793696213489349862025714750873108640017211593940971032332092310937909941462216959291244543841486487593311675371688198048759442758677113666838845026417264331244308569399059188168814831118204738452707494421136630698381812954317759110410087269999925061271605844867078523399111882002592973183756173927178270745179735161586440914855893427718611986867119912339924284246198847787302832317235537286346765639086219058958022070714850238089077670527527531906902303927920327258156732242316998462809322770276587647694549003880249369987898237856628912726813911444938808939144542984081283310144112023251456145983190579150315219302865248021727505798677618959140524916453460849063064415386547399453469051466989889358592233877693294775420293161167495523873811397732684499955678444431565457519705198678414390064833482407158040116849537736617690853804557400517352027476685103719260806409658957956215571129838657451959386603052830284404224040052416167120986609471752145282900723116944344413638776698518790829938418836265968899246314861144887129618404386329576012462983659995819569388401440881140352201629142729174394449685600510886042815131067890184749258103409810165541318709253722188424722692766636202280628983735482483984980948391718576608613636981928309984751735244208636095523474485279873300182933425695192067265319650519738933397299140873564496473657169630542031188869254937124060173879982489947719126463234619059073855250745364117462182512222595174298039000705577441596032218643615160636658477939068058502935257494745237120788778691575506574844579497068656370348077572327711116674217946340034130600249931876054833554167905356100500516942970136951159333343240651529892540200291788513371298926312954467484905495340281277671527803404549233902543787076760195406015568555834486735598783063527690750754239485599271300739738844736391244381102457345345171069182147109788172884874885925242024499225161499992602588165387797703691645221299368835988742844155386659101142277870783560088717051131152605983216748473445984805034970896259037173314508507474861421106830920008467079514977423922208846710202514905492455354155684394025983801680078155939158653770028170819049761046733253639899058734742194386376647957882071411208366216130736458637195951081183092712441181076912873292957645480545884386830135231824610748133477040103857619410319131788253998828588744911861847052783105414785041078426756540298987031606766107076123581873303911689240969891675390556113065024736983147960179011734598398684532195003665064101829600874265327519987759795006821006414823365581803217570612768050351637919930084745951424433601657447540038222694707656978005711546771048803206352082680352602195487854509884980568482097311112579659561406817325832237359781741955146399680608591646162816475598020254316243602422169546940187864767336008188662828032165875591176034214012895282047921048216639773830278792995071951766389367525287899699754057797746389087913069663184842168756616722376455868602973548893713389959437656279581312872406048393247291887649815112155855815837258297084541705691068870721759758025104535412821324333912172226452707381531646970879709580797501132382883050999666386518995705970135775166893558424291913941866556162190584204752534231589669675143714053253696866238830363368253813271070253620927199824069540815686773265586219593389697511950178670663763178857577398953256241888498718763268298514049294852072193710093176771615866880909798435908593048481417109147594112274398879735859282853196254261425011204487087912062884872643456615065425391707611932572539172269030273524616953665716590203220237876111516402769210513948783729126440958101330251421699050454495290555522345224699158689510607425852686546692460542114056368124783353550979134877275480753264307822366722665604599690327016796239303740460531425388392912718819695752449797280455740673068468501420141388386424269290491864460458559097125342378196922671633759648724819999718252640494409055302503113910766012924306387310270420861731934598109457989450464667002268173001641321908631937463846603999412707439385184167238865408813342388546691811462953962851726382117893908673597353985470191057620114726006111201152490371859441679533003959946560943673181021103555016340394824142938377793182566931252450018740750616429661494072587889359314914895025785224955487067038923946736340738478117264682174024854765029074142218207346764185517710964728728873690210473063991303975369159464671699716952320699374725193304572457654733379636031588899418138911231267955427582475952777663126628985605624664486032692897004523602817380465051879348194021477412090645038311873236268744227126680557871324766705614602310592963625508267672018438601691027621470454135082163668616078178260477666587955479818282418665030970029422841354629049709839721524118349193682393920078909949826590549180869468891285743698970630338877855308540616476278552182942564707003360294564075288010173996564786658215639612844492640532051042266298833598363707673031122445043338110695986914292717424707159746697944339461359165182244843285069984556157930986718050704425829717252949599469154735892825656165496226283690769087389398166108831272831335928536570406803205639640779260960550962929610092283218380893265464813571767141627215334097037248654407313070188282162572693656581529064428172220310688161404641394257980018123564646645325955317652795966251418590219849029925190017530028920314112122599802939969980920870125201617122408522707352079554783035094005173603295146861163476934411213100056769258738191262795505638736825459158024501296045218390140739084944878584255401648535277431254952475428174935729095714989969215809342068013625556778421660765281646985821338303165607374681383637123820169161075033477973286194000501140835241253915018010148654548391322399560520830321418766156293083227812605689171696216594065433460860598387042270829918167502690800141825126759173558178075501522348096504004278144063408767152120787659291239885095000246626969240335003195878304964364644801026605809783091604304178501976611346145756243253832900600070643556076957198608793232344745035049900691232682277393657602082155222402863396519518888627488126661506595714407602701457087696278307559345269855095971852199673116709797263190037173392165910708757060302320837708894182146781150561055655101066917340904326841770772838570665656551610368943807967362439097783191654440867479139163957645406769532464334383857845287159606582139576735679251292810174207935980338534804039868083187876727049259392492449246887675755759835798097311795827329510414834154137208401166066629396317308604159916010254696549923475021888679270352114145291086051119373488961660875299860890401703719396050235267817229765323666066078582064691906352880348366138170542564932216359668626947144082571869249106368758216463375622040854245388648866999728770303598046813404160834814187317208683371606007409796262645984725469169096047983115979836759505066060705599101213035526050209913393592682667592762430335698324211410503250723549583986199588572461868044952495045456573772421414641673776895423961686309569861722293718058576798915719175771149520608590894138752699055999729776091548058633257794487829546369207869499227925002031242668981209056106656023658762354459818347336602498946237151128586211921829297240463541283127219357368664683647073669595081061510610303745515033777556390868688915595959212664688439937574530359899381058839289951440499919736578374799998177702385616109762667767029740971339604907186050561466148116823557607070945173039107647408792484950247145901152681071134589428357974919375953430348114866709886740952065707178387153895540086740606679423057701648554676705575934018748349696101221521352219623383968802159531866213652135746908748589057302035242781298857232041178092679773918565074196465897186039230680987192719382039097261288485709181731228002451625503850751560031140178306467646953551347697331466950883201238586230826313439186663616396512574167741835857061128819483405695653912220807657211220788680564562253398794991649285076799612448013820493502469687244349222796709757815620906668113420512754489855878653590917510688646943403035696316942462689750850583011227767720497953880799063749282133446089558133303102854960228843080742790924028244127255971279903882930135184905974947574726372128864524712590876241450387579764969028276149454765555139219364328011981710563970016048178306752053895744981545120795041558914431339831161920428570855530613705204144904749584145494954465711098008408510003320046676133875314005400562605238228123772240401592683549122651886222480326780077935037003016732019007901090301122106732370740481813196546134190139469685661171325496830079179693269379063393348622680547382588584018256027688193715898885883451131593190666139739441278706069387667911656122676232293466959302800705485020277038921618959636694206077853820487407354124351627682466912919541523218167901441222134873234089097522759990863767097815703369974701830256324366270763389681267011475941403084763233089316965574285789402839239290771943655037456878692435043677954141649889686419660425626801117712718910663058216691400796367884879207866637075715716070862444196440505199067432700774577525454126609920937487692746458365614632917848154532525384692241410934329266192200839395604791947293051157920212098159216751062157745181496538370605513658235166480048794481348932319516358856905135856023171890518718914942054579576303401040459977783972420297397587821795265534778372466465005011519595564826181326993501827264291793227166001317861880859497242080250350594848434763819969996787081546635252433886851013197592004492714152776882045328019165648711856589086663391330581949044095628068369391121348062200451760497984118637730142429551471814439768317762533843825508881458434307772274066257975362241256420486925145274200094066346282904743301885340357152894027340229378788392238795851921793409878451573516323394724957787148945993808737205793868694498429536458089567520657299734989507361277122465644425425698017548646565519011899985531973254644757826909921282324809601746564766579624339892251458654692997534623923430109241200892283101189193340703956378794782274491873955063899730249454155543302162347311252219566962271688757888328230703007006469894832263049478624135346059371088104478865285111039782512763015535985323409549629917382446688318710865293000449423626970951822908203457360396700295849055491251988980144288068912488864680817259655795068419678083371191460966764000449263692806018020802111692788108823947265164786524581709720007182313620715465889298219517242946636915034799599448654120212918703657099684639150181010025258129598604340374741789953063346598530849793202959419642877466893179134912767845019844020419924461947348197602729047085369162271290420327323167194215666935691179475866511100485401266482768663239449672829446010045222123089879569371559124752874001670391351864189461488862571551063039379036161600872136576408152951114344611873632491718307115017542309929609557035231208749693124408205174416976684739492999092909797222138330900581989088165004962921874908699546787221277723784500228110228002920776276874272761622582683594730606321800384444064725173280746620959010707865138630734134665283020569356454629920534467497734517627209712115552581553910998519351059938216290315682467312018189998414570260752316731215338556078527800466461036592128602824014242264402152376723604727717945239808328491705802241650092637621258443085651299970586994612250640530967432355174332472191992008075584235602037833992693090173817255087541806896404721883520911857408476290687943304603895870523561199896873432638385121023452407444131641174326264336870217765689454177404777182202464476085079400938437683824240999107505441525843726917613142514794787889275672088240911132187164034574608651538731642530228964841953977685143701188707938878577534341529064850290383700562067432505455252727299665721035315087479397522050154389104758770295787042205892907672654542456156262528592422506991769843097950817155032662328060573303049575864621197153196018523995701664312780106387960628682274854170749587054109215146349932786286692055834219230793335661204446121760717704713918384680645566993537108650479066307496399061752673922529155300564705105766088285252237275025699136703371682009846627786374653828289860581819803407280718897640655841931507451716905459448246378522135905042935326523683426974951360027579055305862686852601536185443327583496872120537416650851324272136830303217383181313833837241245133510860961767077321161159972971240664140821130118782362491588992219169952859883789810751946737797559526568890275118571598353598613460398613081547523276382180037546112539126829542193836865257395905629368287340026721869957063105147707239227460925133879852405090395636753128367395962155702197489278038125840763993291556947035539634437230034461657483610582719434944281008304150927598746089252597810810542499166567889730629427449746472266156592212688553043137369976682952287563631587862301921830045766721822672065383404109537446513672335128969057202849003931636778567420634984762115763020791025963444779474372643055153329000706766286055681896346413350788085541198589560106262020664397501226330145273686729422772364744017556388755907704373561689870762061415670545294363243736600164505115762230796208614736111017364938489454223648541169198355819681815319552946626780288373654466881737374197201506883380135859839773494482600939608603625390838979682694483630475610160006151120606016675267454685016931662814630680839489264214830948834239236644683788374184447822450307635614351637219311977752524468938376560337416483515114215819982039871857750173783438535260533501728629143368699724492267876456641279541349286222373365173256111598389587634497071185724203684606025878379128758201176257982461859034198912951819911996992696482278670032103603326752436799569449561068881049978196603066358178932431563458864624823915704760474278974986706029592446831938857102348347395424495076732034793328850371786820996523740530681732356292487381100760259640208759545726094005588766944818354095827524447702611243566764211856333808124502861273499487660551547539587818682623235917347100350568126821481406781835416121117480435222363309590849985525242688047549166297588999397520947225584834016183291949060123428354654532797375161076113425138314546158682857833609599881667580897885076765988656251295238612350640045096177919259169821995995414104389263543567870737763887647302593052479857349771997533816159892282650816358915488618098339953432653360756654299320601194075015625399746382381113856860698815566234689905565809086418199599077472652366301010380339943729317030001123163907772896937267415731741077224146607676411927688117517021871715046194461357162165839978260327443606557934629315017846788873293195833168063601281717560841005193039911170634836588827267537103219785546194157740991291469595267498440068568550155229155950298225943967410089235708959621078930032671291828594845510390315673733530256864221922070022281693856211515413671822882357293350913673298633583066106499920779392894837508715443110849947456007150070648416053960090330961575037493159546157612683255879787405509078381332539045776810349633212417002298814790016100765299020587707663056672097100093075476168229874296747285053299038232168370260183858925711991649342124784520818580252233858532355088029326583663200710812833008599829202775454533310995852975926102813235240444681493138612563338570504885153313536987784188257556547956656993341950534439892067249696271822821653080651088214534149927484738425064019523460584207715422654380392565979159310847225942241005855742740727067092341610158397389340313152211788265059187093926381057880390131527940469935225808247384767442022560965518705414596426039318657991034816691051389166049828138731024088489084014412989497555560891480556056923086696618289963314240723963106061679237692158410602460368236162323523354831707093100799022305625511660142970799479168172357609793227063086130591581563760478365833539069299863751904844679729660282254014851757845424300190569570247262875606464067304976466784572201916760764562713137168396235705811428203689716357376316254752893105186010938291978208694439853730338942558655379309983732690544345873097301233236003123628090451501152538061511888365288142198976025479349604980349452682561400160603620786654556011301683613449006307183464565286208412980284663000101881828758371572095125646738643764047560794888184353342191573031891409223737143428889514016220099227957345381074069445421460872688953679771575136902375493062630810843972367869719496289777621191445979116781292673587024209130084595727753999510542247325896812642285367483184698680070700552832429742721479722136420105333028497985817233914676975598763004011208144455339561504871906187290153221934394769515484442928986322052524416256310670668611977317169134229647223673603035993266291796790346162798654148362834377485337378863680319883652858749725803928892589330033970868674125351709671892756861237952579894252373055922655819700532199211197637748385101072914424635978831992013469747693153435820189590886313616990207215468723187800834359792473113330970320658422426277563559457204867884509023479919601179372792631764326567759863671760429839611109301315596925049142497510058056714818943354282482961600345540550817379622948275367045225975929550460961393124368777794577190610029523658361223106924583194424535421834048150829625184043024226420003546907701565023154631163685177382292943405266658658362945255971244012785661168857008306115901628436058438400326388045694913266697085165095096752135535232406678469299063389530367760650799439239520093632302605995726346586943615098910437381808905210269055357845847763030853853558469336688374058288832752000838484086916668537561575830403845646075949137156631954229831536331031938982993038698254975980494572159475428617937351188327842072229047714515597589555391221056139214956909830378763664888456058830003210178659862209659587178204507681817084862979589512610929001106323075543924648833761149436594327463245799727655564957595491310450595338211645529495245842551557446633106498865464588545447708339753814903144008725927670208389363256163844724706275078351565474443517811218469774968315005014823457063174860319076595363189572045130960306897682029379269485682472838169773496786125144912217028614505577519167471283394369914013092624707164798540873948919016918662743011813098542839642061752788143661599057674719382831968949421490115543548822547317363801614754015425508932177422513609814780488865036359860123133935498336583522583728661667834765674715608662696213303473206780636661549063852241246142053707369522407444145014925454566010662154419424895720716070705399285418629794717271833706948772351799415868727037342015600606877750026597577395714098113393174164203555987395763999785166125195833879282247654808777664362721138748509952048725388501637810071389518062093918453049479797629671576923222061476187987716198783017637488611568730754077176144707086160235232474289639717800098594507577226579326520079363868660758697826453246221956383110049319833791208224315369048844834277558402020539262834338520340366457886793236494022791028988201396735703411491660794792286576382848972017403998118052708103964881493119168352313500733099319345420274220695689607367678327259302379718877453299123222517821273414135298845296838144263625555196552883080608785072296121226156455905839396291421452701835115597614702205992702851700980645592833530560102428631067579242577044440123805667996215695687764269594680082243354183721735340627480524061703468259878157109828759459941250616551586872302561125247304075223478833475050488119536511374379150715082992984458992453222462761522100242445558173485267023740672745996101085360971125248726771231789981923262888546605164748235043070900816369385611399933265444977307662849215264842113991828355550679563610887921905319537888595109832518391246222005275547219866188670375619318763407188644090053949454991805701775549245149908335000248369662843435092431592468838291012762635510871470266464282658435838752600871248584341308810418640534629621078637426902469921528230471055271345129383397207661588865930096773531062845580365690746050113296842662679237067639785875300938603750176132235305585243957574784400579187341495876891824403719315606649245100806185583043900759717458626195640390676358601352992993943888660788124153455057454750270502052593431008413963448866220478794950553397032760791628148253360513093139438820127130390782582673041315192484601268025266856624727678782354014843223910978070345838630536845918806386455602815040706209542496962876424937397041420692114379817249047247460393788943536249030916769720110017517592780464388089431898819130668042418469726456762199889501900563231271916230515250282911123210059642475650423739577816374390790660314424244199854662666558439818538143989269920374389807716765022848937904896365966594336797396024437902640798682978217509735628378589105157351220738229244819983196367965610491896317731568819699188634502366703879920629945247308851649647396181920779840531842341706740491086922665626388892602280611473091075123817488306355554571976149196196439926252085498186246867910819185530997654425091810801872555845625615329506242362541280722484529743379781734023884715582114262593998963924999974004235219655627502800927360297152682700355595551222813142706273715703610930457697109926018133928631930507436225651541256854651923437473874949930190838499357597142574431827305262376270331310787669300651232804783281573799397674938878678560498971936026160361415888973369380657717571248862915402516931156533814332318268734074404256122574991593909723392262618547611291656906820549261799131953719883959492192139190501480344499034443653009178454574768710038752628413729732646886422988295393578154030746621752046547500553810616105994632967024740082573009374741108212025397624209663855793164550609527503252812929583295621240495057165590647768420050677603747104865090635261316396107161513123724205724382536900702586928649804663516134082562259418267958474156141418103118906841259056185293479152222977158809455446150293475788968820658017169396606101710133561510588338950933804170639557638821915937588255863070308556089720379576200864940586195211629470667117328603351092563033645315119008716800450818384436788249643005826350093651891337940714936937302054459118304632617816482331697178521165591354350275668654374087703165404415734386470969581933715922814253880051731594058133627715702849459629357581019988844175533938486897003804326797115062896579449444497108384443036086031333567211619406592157660735845312387002295379678458571287618694318971981375210140441478146706355169516803592005777343461537889888546022297207177038905600922572968615599024222160293978340846589932030374649572980321527972384468760621422807053524624245848112180104037026840321309912339354868380903188245455703371629727784285151953491231645659293016192427825435740031657584543514993223239959032110040283773114760447581001418960594076364942250013321194519075838903067447025840447597233877238334029912458907249666554153107356233577692210365773874709613618272861286721089094205038441313001347023100492412833682866388238317350406666887469167638241534960175089780333704021580357142708811719525706732979070528731322576095925237348801924435398950210021334857879382138967121885614530079245678563823626188397347458843963336449559975231869613426283112428229689680581453862711494544170138103961339408225935120829958258554720261333210535403466687927973470573370663214077054100686214286721281302869014263241185628247688439008983237160750810687089632291309078928088758646144909530340573529067039285100503217737696909787452643692068453681278069067048703828301713903138496359544057063428242384931078066488116808168145467668086263630948754056744509999387980464749475611351369529274721830642030206586978015016865873624893162526442924260264073707444697208178227988897832242951077560843599783090880419387202275080237846636995765505113828987118534695236062710840688089502694446042108075054367994628113322476426131174583305892133944444057360732131808561490047768872071359967595192089136444159388797724181368884301392053409352936672019956931535976169444233744326009004851166277917873143955951623277709687057481447155977865281995776570316382113735567104209644460761360261596391832730242654926687942083252799799916293988934077558336033477554975830365447326505376282260962830247132347999036411252393174666242320984466227426312399776308460151271372685831503873864269783969554512560518365923008027922558471592698750547657985750207666466902416429356482324916769884952590968821578895530145120070992424836623879402340850651179032174903569959543876778281438534860668407463374267994075386621397724410075323783206820164075184658838884620393771740076380411483939320110932525741538063995078384722762498436275890380032929099338180016423904394969102118209801163635320828338932239887632564722240622610450497222193127282458062030645046216630309042992146213646099874907681514133383852253996600069526947946162743850627219077570861908427271118499262239400631282214268992482465805691229290082644810700707400711923941593359600174178148763839309145154519050603176511873933092235103896395675701839412274264008677651607424218506485964877277340512500558473329847655416274654674985636074691609953441178779092506832970564272219530682297142381464421400109165299368831144002000677865419043928347271789105276857894555305498810814609152720259364175843948045386183724650138473563574797337697272703092631100464346033372888216565925668704341634238948476091871181527047192205688406808583999333969681523278089097464324031798402447255370610142905787310920537773956723448055851654666424650597343394577107822141212404986818852026657337057803532341659430897148321386207854384471333741747280614027385903600902772676975249450582952413201777347731553922843231306026347871827751436883060167689712910593550810436432175815631843109559825861993349612274358886861553918792563187327080078021590693322290074772990686813318959549716934802299118701620814586118492625648781553155871700298758682431178756675437195614265019495777807580009382761040515624924310709050923235678632719548070318577512403696017821928816196071850039595715141596173242245704974648038164284859372041642156418394662150495135424751986421570097383207248096776811353404641676671188188227972061507816103025535137649601876723106217334758505415614290659654793296574834428776185842492797315074542346356694459478259390952653190007553689194741972199584775297049591046669782501021367319888757885034305035921947005852793522721090385256799318084782567317343546573726547003733393291538739759782333565918254256962214589761080671293441901723866939619162339030239290189485542811598102259267736363381848410136187714367209862414339664237951487795741361466855681627076323853673190719674222903399484259064593251160168330801502825922029224573016950521539827358945527962140696798616282714832884687074590583104377841212375542746658273616969445951681553541764005260946398571077745577046834234718192074949567732252317988582991730753318725312268335262285053273804831371776438009730389544544400440945613687938209553581664845625857724471726845052854067605134145747576945083402933906978454697740052078430168422466982871624396553247985245624917505635979552861905751332422915725576823375709739098671659348504896741133669141560380636292369250596078284713131076636230397509820156203376288766861040683900755102748698173524829659290379181722900094468539808211258997628071871168247293539962534276607061623095242465330463817747297847061235499866698113489152522334063870504445667646831192618353924473612512800338105867258864855439374650435040829599956827264290205444709145160714531802799214122953360293617698571670664425766042445515906814428272572849478591887700608779030176766321136677189709564692213223644132985665504652740761033354105816116020543378489486738959044302582912980272269641390091602552415607521027575669319845407427460502991044936742494782156035087114626820556080558026007457899896252958848325013961427404177630202047352687925074009801881752615783377228830266525599330985061999014207013501540451641596318584217408432113386573536311648948960079221571377230027946100164541174383642131407814604471117432780992804397708729385086081540144319778800525780057128509974624074438370958596951517081887754981739149159065966255693901152416505604408601091549810737063742891204294045560189781230900364872914257658611545571686762380342953206411371421831479426172834267224692767323355076017595598754496281116548164448244014027654427938677606689582753487459493940397722525027103535844559169818881099895082140289102081497459656877478375573466384001886904566159622939962242071479314345060125502156975479254955508512531873958712387365899746091629457410902583915674946218517734190779850760929384499753768160338645402782497837791120505780726809246541482648024672883955622109438521606419907531889758496480925898071323692096261129815982258649664548902961116243788917468882348434858079287629904584366692802630105908364300221371211590432255178322889203122859104844249373420106538122310345109845997780496983161177377509619333648652750543950827206865506608865848671784952735266876956362708220662198004113154858685978773162492335248329256998509859582210162211500615483055241912613926091861975105027558619947654665964767315415074102754746405154618697016325958985896388452447619225242899300267838158035889759883108792493974763263588862703053672348286576666326163141037244085804362589815844333474564789551864787710502258290229939813732334325241115136798936396441541220721462223553414980904214065557770292834760239737120021861622990180647396940105195950462110221575668894961154502230253837795925972029383357286626005767629580637720932567514661010407745362684084211474467451667682061793863285693404113632602298449185319837414684639412751868676934582418862279739625507610004486871982773372031455711081547488911919820262715842680341085784658800788532203170043581996994059874721956129078990207389960483387304465505641448685313269227574911129699585650537444640638913144879397538451945406574071577590011321796656042324175899066133447251245070095870990514578505674045916260389036906159885594289289488593263503657960220234612119026452193075204441961137523892477335506888312270640138224960263338777539164224455129760981095952082936854817843813627071799811185199162137987862995615163317851467575301311742652268965712249555830968345925606453348459931536793135105644872854603801114556193248384772294709421487330138610186566767224285664941917862714838343996716914889050158530196182513113444171677471038439125465803254405136425561405223135328909511529787105233632854308895782158373133664185525762818166248856988923013872583217886754748260524722636830518917447348811577372530532108524804116787545554960102488725342544056035078749913024527971121051018137905953528714196686111337513339667201063173686286976991214834989560033118454262055605311778576157637569331600747711346368051646663543927755473143382715430725729064540680090478091197395071355563311874362215732867646618377741553091933408366857574200061073919923263171295313249010252009876772611623045902119890220964962507843728288358529584103321793288038186296401112481007667417682667939347175748997167634948765337232133509100800111978748121951332042200897262936649710472107917955175711449372107281627983382638079915126156594393687158109216279907715907380133639172153196137849513665847148750911116416250910744247866482947078901311740197615450529453008870856158303464363186340982312301371901134890412162341681962390906815941751261352899061023467580914225160828409795323604060427765552620382515578443110269453026114250234331661072144938796003402426814156337554010552386197842195086135564086874390357049285755756816614779163475487737456769219154254568368969815139492471643401697600785377292673366919159531504255519357450954964548081053141349307140230580599546104769916622874924719836776280763629235074783243870437266134476056966653430282970311055569412281308994918188974076486277818846468611264003559335438478529813812654014069810898817387943094533683005110546810922771843859388128710347364085952727130420716606585142867201221930853573600122114851657188024759596647511409127052134687675940636434920880619221660932512212519834271414316706883171598806076448349986035260549111390883680903632576661400922430573461338418017297679064050298451417418348699311074580315779839197840305761478463371959129205599712038662097327659152053371353511466342922154726392035287739955456188129211197836704084229062199937619482194621546328000691353223350623368740879738437198254088594365360305318212694721959106709502617005632382006649488656148902133771184231812912539342225474599584536538190975539713808837402975562357406134854071682691234218203708280458941041762840256292421557857395713852427587900315360193036478222968772904659282859938312341222251642416557526564600915666945554499239000795004159459136373045218439679417433275653617317222192038990581450626286813429309572872154894910419247495290246165390072268053716673804015476942195222697499051630480473456299013349595135181541137329588747657505070706277121114478911264771219715828286018296078677705544816479793087256407540707606617701786370957996201898727696578295497732555738735978761808553830370792697993049297381343002080562726991098713264508989593740204716254457765296417465654604628252139811622622890506289633506664426297930697018397084772873310748879535467135496914097928291130356737566513639635653024591571129880560666851527278318001875409347705968261617282628187718474604916852184517474091219397830563979596981954539566598329827330019880061797471296606933098155038780013294179889623297305523289484506528659542968303634057305595015807468741461687713744955440504251329507500475209365069157787580363530439870500970637389770913414094584837033736494809028827847062172955810294888894067145435054770429512930108945934431439210385640858016068693145355832595599078250808432244750359024326546715905090464849124381057855119331332885744059946265876920581722784531703443394794243501694389932132031866963510665693158001348598917271486811560027660240493252107063865663943279409669216258647387739023980488647701985017190824344518127275370071576504556940697155643797306702243622639190840718071335884553793826291012842906892454604995590205758160678333981672948237950727756441575735872228598243570992368157050681345859610111924233563302818779907986738876239878678178845281845693418871117277330378065691324644052827380565078988591993600839207238394295931632592596735731337744563012817485964103768812291779454827236223092697499429741294742061022336736946225818171842499434560350134221941750769159324204990381887949022205336031242019437268600066901444870219044912469106579201180363550391893093317886412656158014210320441714001348384414688565821791868381336425351011880269565803153753456786806460691958321041015334637417782981132108161058109215732775208717912274165214277301000148314888925636900412087333054685751982605801995541144650009587767950289270389306763795008724097543641116671232485251343103110144066956314569953832745453681758714552795125363398838741249582650700361160565747131674583955708942576150595698985542080467158211034255163249763244351551645507017137836592694873263881121094134724282261123861441033284955058058007422520125509185194534452293640653575643315875620800253313562351628763413048411659823000083839771209098152395578913752515234933712847069473769166942413805456634088065763551308384128647199193435999504973055725095192592723196042288475909031398954937208956470753433569819493210321425805578164767651215120261409348825038471041171601780548074105797284659772417433272891281330415421467153714808916120611601614871407265998053133100326221446872610094158857610505229162536223296224535305046835932350031059009807878593782852750780702464468573441315811513372389914568399432735618804684196219109663271725434533714557124471242345902821515935032493611632685444256902768270643762406552445265509907983363614193662863961030799935824605154854247668035641575390577354533678521344056565303445696520734143256309279276499917610714326967185142570350571514611948630919493944873216286028170231244176757099097124532809285989416339131090051350503704680995413038414471960233116661880597671801150139963802928276992544072482529934190395174987012920212729940481329084206957788353986120935222410240293956842790175659672727741898882295073615186478972967265718437785409666612015905177901991686290220081012597186707958043347657103337088740277683283895468541484062577808166525802280353499354752483975342974294535573769673803542309568389038806576376751496459817038346771552609740172291424630696397049476366349263039703087092460380766123695825899786832103810485382430081817930441138918739988786517064912373518123844816042588254799775027023507508245479305074916432994686013175061052549681096492636667529874665622624496991739979747833150402785064512732467155406174106495411943981802406272468766850758452348703099649153230634110250585992081940726734388038490895869283556510728499568434159805819297807053984363968330734069335572415634807783919722007754890331979720540789426387236387280645235223697775113124803176842811580247224927652664483641401347158649736351143623677531439234635341293145308316147207459650126285318017477957034774271353678837511977286966470154979573660428461767349008378888726478407407534826249238643530079319322090218908983750313215442775892065372643340330616417950256602836400772163845454463940203030685647753869072208213773282105863528521533017508585023077804226629107237513107210447980710784704034652242701270964747004435073833498827268851546497189006162450858193925813625459350017014741517439018495212006877574183032310273800204388316359751236310396370868403812970463407963776825650609264761067495973186875529472556873710951934313573800378338000700807967573928008330388712226637779361359085167260990651661317805085225263554615363476679586185617680771939106305414487534146939439305657275868833970838094500243386336633449901717796494274613318548840532123992187272880042801822582275093290540069206675037373984259128542172706881193559699164989908882572429074179901692990647986027207750471614345843790636139077613986038951021703861605462945238685604731905621146888586241527979504802062095928400658874854669210397379858603614494844697286112851295185668158828697794781776180442198699781370307056823502219403518116037035777081871608005985965652651239400663435353590404333102969413365730525619492309523711528944839164282771409284551920247190714063437850752351479266962633677197987554463903315589377242710803364611770198294827782370560315715271034742209232755744187719944158773527686550062991104275622442164217960708370528214666706556616485436975812171893926051574375566274036343359801259733822387448451777164400233025769173170483233612232331654068092486105171958678826786617635234901735076917279616918822482371482889602988792155681032864715462029333829637322231784415886781619989968669161748377393209753531715072112895366149121296340750577525904649764033213020481906984854279971055619744071095417008809466998107886534837088377430115739283540743161975863493146606228141868644307398637482785902646554501793723204329189854551873695802564633531507763955607246265064332823442638428758524923408297258531653439050808799695455860587679775628025522948066562838947618320682567383091814561295995395629303809133900476188719576351921001214113976750310719650109369316999980943962623065306322781322277591150761569112113130123076242710901018534809616271672491535072129763209922410430861159255284699335574338429657444536694866507466820541387813444505982472939727040762111519483323494399930826526072598006024896855849081331586216902521939679117706707357030193155845826869031480272706596428983408277523751560282512452837505437841163663724874656763181760433751456180045194934035781229736796377417804665897349717757214593632780637858797270145157525456988710207675790047900245141388064418405094240779922727715392600961351778114530742050757408905767803591446621439740676069335948831159865477642655158020355328102755574364624871278130270879494044981261014132864799530100505731092587962492737082278540376415167713921140143959007496966974161984331694021717077459610383425541160287323486930438200242006579107475616282178521805186123420812426553705596880144897265617559616694150826235329167901054552510749846372702315258598539325254611953901307908610009972145386462468030204421104493355595911395270800832882393531998698166789700237686896478093069050193661138667389019061031296442881093286457795158823849434403344568974341617218975435650162675906622961934276345211550661880139968118009067623666965588347605370205196875582120671181505554277468929892293950823360446575721243392876708404511130071183553061927468583130682413528288589912482767973719191424805551768521493277998380517118044484290402522120050675468302403244724127851332921113789488370105311495431761434222112318207270005012356012737770151284625031095023376612159933304728535337786471029431761952681117292594589444059642708423130762057568039111622445805276165850911191674662115497346714217387135324170287865056302433728700566411746050507649557909908751517911025013887800782349240787845858931501094272568142255859989402270174095216199525190548594447773860806568993140713455017174912651122897725836889925653103981244920081512985949412320959384219534023912579038330119013698773306010146430384773842542977607024656680928535416380806174455408274283267431166467775683474213924665230578733037972232183927298094995930378363285187295231782665348508941659622431706334191509915426788457837873859373485320614163162529870099720212496149726055524154347058516274839221964647803670430693934110879957599297866630269032424399650094266131503838526022910559670971450228783506377807745668796647526323166700113160375952359393925790443285320568903663952796876596546170960042878956815567104347299924110407394165623388010537714901223776459023433964403706915746571042902266974981084607544064024708420229166354414899109673725453625622337179180591675341270631609607823771737370519524152240014662340936942470215800473797178906963513059905566272766444780815207656903926682686673765573457974261877206482937054728437092147464801490389637539823158616109409152626803515729615292413551230671932897040626505997258706037643656740529156650181587536024179997266256573973646010178418445791408995103405984272669131253567617284262175233314379390688072298588772829643411187222989734563642015203659054061730282037618267999883579479460379034842304340182725529654858310958671340380810402360487268722031365252584270747657133281906552446639018509277633692320303161138817979226188451844421903187625667199291178768441081322432636008954499384849410186937796333873750210392026807266485756193655538735785412293171565072786511112992098983841949266462744572206458971337365759328237684216669404341971950389923992278901119348697677253075522752575524448448327007102691500171109373184918173261341431806198434143770539465406070901497417176221304736504118493644085510556737099941766423701156241759567309486780662600374097322521098319929362992937508165773280063693795791191046157407111406060608348470454965584896547059282786759447370542712053832961138880231795343968777138046718167129223874023870752910348267962011097711283093290091208041683163343233704898025955463112179394468264912148081848073827241817933633182128132012438132609220857580111906923289763662422353124586271369239717910155781864537339233938511772441714455169889038125196590267552095364492200818608244499169433401458335472979157550669992231637357853239479299977924967632072305810473170847323795924573089590098468927203957981661304014692331215852714940642037530739199421601916887179981164400419885089361068234729738915601052849773421377884065024819197792797595574685016198722666243165735475689785070072946319396322297048800483459473813012500862829327838527840524722458432779072626854588206567773839628594676459828723621171707246017962554979390416987381426576635403124954691048102792364134589830212488142742728179872417540790598915816739322933247479857797521937289172658290132289738024541689040651907320891856404668130223317619038804400080415609969033242288419018316642979571984277596675929137199239409220394825559933217411964269423074982866048201175149258574446735697441226472492826581819674001180648037330292546844550228776427472265841125064931097321830955962214183649444693007357569411524263644787061222783371127628720723818228429208893286327874575939544980641495959698627942460430279254985226589114250561154540500686424381088732082534071079358581896853657001152565872249985125027930468827350507226611187408444199999270794980623077994328062754342226143333472799934639083598521831626991747024873009581739854445647088671603075717721188620160812163246071642935968657187836442205363144457688226131499465146667680184403469199941812546996791387082577871477770105346124749240670109925138224502064542332329546875654903977001861225956086482613987340924759543528633865525660242928622969184122835703154753774515871179757087694993672301200563840501275454852411862110969507516466944039939318457034041474717596856275099018620622043967228602159661161709469769674725979709287343252981733946449231292643623930433269700796779799218522688678949956671227823059161960314808725070984895274706615687693093543838001707629445759278738799716093530704712403455464950168785409326882126372886538381672752176107856328685967137391576136406719493789013154948731928475864265347466193138181832652424245756068049215466133822087429242666826375274623954750388616740532382172579109282058849208400445237088975857095605561524569553674095208229695034856524381226318474599797058761168453589604809743409079750380533461196350699727397418410038854450641438114298157649861241468038712971122750298334053145983950247378214175680084205449658633031840547708389366095422342968805488888714341413813532038060495691680483303712400816455230812579081324985526636438370595869530250061473077258363926080725827138330860738649894968348468452817653091179568683689307606606481761561212200768541591730115262811512870478639761246386804603552011653846404111078254281697920881071800248462977933604978536094083459776931716805195388190361282334494435274593945903790386041271857162127530694190629372477407840284571389711649980310738761720209620269807425926915610492709309933087526893917005896138540928132152665258765506441394351442886339168769862232893105894416700942490662227284307543924414594261848604575572349212961253821703289694516039686360477496492982710277649163219511573119449323959953632187649706675674107805642950833814829330626183621339090677144705893251076423516299986291518769531517976455674577800300802814042750186277284789871634016740234398510348391640801633813655815784802509348735978509726833788651074255798055752941686864622934309311737792525312141156945826603096818309569850940654942239141426768994328140311749821042249116865642279603980126786743926319472870010951050756151210414688002214070577157522048154638843516902041503528164872949671003650010299548235913262097758186123987672982996737729980143684235362656650084365807143617826294269322501297421839824328121250703393623195886371914273644313352751019601977035923409143586433708540732462298602868833709870028222198007235741527260092386860221715413774321847949240671007094203302668274263405447223869445553125049632899595578339035907591677105871698950914486889543200497422538335738116473365774288577896946075891184741969142018374812488119598618326727364548700374251933621371647646924917712352376235292571810074577276365266523305990565642881193748627461829366800455100403728882726405432038437199456583973232844608950177072143378227027502521138290196657575476926143523558059231225331244291466243688381235153710739966519090511039338889958850938235233705345217431596395563121476154854524854128015424425838917605765656427436456391864011428719582263819708509041750768090410920612917403480106700679441583050501415141922361504554162910598834382566112893601566660151985000831418691746494146489901491641828433166925043173647573365909424140559550138143094883461246018198302590113321047391010949416416318534706385698435634412588850557294765831060464579686076295546028967043572119931348327954806275499924048552875862369897654169809035419820865640926959282284203158999207323858289983007570146829268475798540419163995382588537667773083673288590229301648099308571011332383723331120697282398034071325977465245556972292531282738639204094007434002464951853425359124785179672516456043572613247020957659980117684730618796062080579398983427865399642747765230170604993484257159367865383533421303080880376842592778402060228964229452714540957643880867689810420676671205097842925148252298541684694709990407674014460056576753399257558296329264592868235311720015632925613795788447412577543023148739961180007665635431362682162236221492144800860275324866710914548152657430778630191788836881634663813630931309264930088766937142576195693330764854961759475229275188846262063345408500127820742515547931251936976489572796642214265394347182289173143765829206786499762815598680491448494628479956872006469070279091964393550117489823482113006025834134301775429306077639101382003588200085265391035668736513267449776006223885668662064794673599360117826294045249879957000969143940616548804416101180664191442525275244392588709280385894603385592292794221876189872339506015588427076318207374555600765825344431896438064727992391614704626160017770440071292178261406790271604504817408931569439709636379623267963401176617886374944729306842690924762369177873496420063251066635247552203028032274341278414906450312592977101473474827192951816221225282337277375319929086206941806721644656741952541657466179013839020947226420402865705567936516418758368403881386680497612328868890619141316199702043148773162810541627221666175613759961754492872660178908273931080711041539264760388884573815637048762350293607264190567057822117642903634814836245963623264477237734411726430252055723202887366587195871124911874090549557851676567228660354347909251849202499754862243390762291485059678805108464040488212523600800938416733291054680668700366279318848411821247755777854733637559565935556425799326455090865194961556923361896255304721815834476929113365283223265262481494490128141140666992443574195429407442247164711386082820829482745436757749324817990850307715055885850210323507862311182498317316011895413875617564978590062636146109310561676680217839374433847348804786220623630116485883461881085330933384006379979626321821286182882995724350167801962164059026885679049850120566812077919828405254606818697815087835223880196182558841142372618693515763750957545462518163768534896110852222017361972178774646918541166098731627662068057860275644821200563864481030640715443940296927641441719956766992958714543959609257010050938371256298619164832878442449521883965572246774092830643355925280263210091708652711453540845330328200613301791233096946952657431823043037207758514184922644893746935370925072143049537379581977327860057927993797263879597400656711247467287801139353088807248940969676294915045083555649654472436324385370177253809369184056988470326930461144401857897426518305505514567069711439181714561130522857069278379276067817782010068962786099571005922602373713391375829171092366044694152768757625519409683470782908594640246543766352403435093206286670798328655532115905238873655367011007824745925614845028594469481908804705346547865490290790853010126005463426351749407327754383227302803484271005555908295938838395419246136313669812982484620914194401419023452980227133772828200661326326155404976889147139120229915326372370941584191791000937551357654382613346113523586852464916347451426907243192115710388478522784396045583723022111166989128027449218094045147269322330100982872625906949272997731245059364868420186042424768909882289248251825782719266929945273580820785721203003920371097108052956410020815615466362732676026678035646598820934298989197785721577924951710586214578249857389807298638534520968307379151564139064750490970489097138924270919487000453417372850055280690514882933049518560422587607837527187401558282071139723757063004178172452242604471762109208697685530320098649294695673131127812293458673041717263063281768305165097716115205839304173209196051729569611105189150116309949501088543371330514484181365773698871055900584003392625865497956490245451198215758957542966509728489850370986348547088004792541208557900906754236487025957297341276895349180218836849664424611524106938459640377889822630538883255419678295056913161356165565197683936461817440150666726795295496155609280354682412107122196271219560272492472224162931999909683924119925122197174393236801520353200404808901330308053652703061150247719781457795642626046472237786463584738822261772448548740403211856029101756704702295489202912398708487413307631231167423356281138888137085012575704186411031768093005918121747113021575910541118592231300561636421743832777194537072977111847786513590947430953291860150787797549103878153484560255852698875622407392675586311005549168175896295737977562766065310327292080488526692485928853840374143488069548216541806434646775653929110413689402094787588018704688834439793598138232660517694254531421702754242608598729482727433167541555870942441694387501264802771939339853426299927494161264492796423334361216566341058429283070680149921021967259537236085474526377431023070842068885369474507107462427497337655056438880114837284636180809829586703200389557912419260650854742557154971378416783341271573789199654618140031902775826687061301515791076869191456851420342520838400456269224717182240176381415018160862061708818314512808944531318410774633691372927619462822151137385922252327896858357634427454048968578467125836221053903902026317372201208809682700421820785456455764619450495210533230877023030250625771242623144409531275639564614053707188651843670551892484290316749514614831210258395846780542995292690109311160448563125783703509483629089708594038894212740679911395383592036406138780769084411602177764948489267347875941110996028285529231510876245944951585992350073902038016419081868783955895512593786685202717669821703598802317010661582984307284622478486362591111931909468474192801200469237985842911553389341870362803636678465226986097535846344615791448258948802286881597078851274967676851162878823493498051194319039097839359336650287209733570569003004841435411473896236148064726284053139214530088801786795463562756993487572440453221218836940303352389390507788969937968821567381799651130721439040444031570020151058851911591090075544475693876225777509516194532014449569809130448711162626443147346667729707388009128001473465059995721563473879697963837766067913208151373538192029866618118812947402604148707356710329778969252541262377525552608776514938615737796772655265236935489484486775093400521937702675445448912883936975995292444536251538630381565286497851868059897944779812796503602720063842748364456057856909539648103695812771271404010689443710589898156352627567860208788863865355936715107136821161040962865491129442879753203309378419455894781471254895492070860042705729294397031283941176506063505981401867581778995921159912717164164583897123207177893678471680724639186073171684687489637277803667569742101825895854555249026750424193729617107541847934474054432508877858135234445653215861322144218370759358889817576507324970468759350811200394870060434861402675270082383263803310143722128069717037026225172836095145307351706603981116644486215012902481951614639273284734225877265232228342885028217318784595011912063227456867689920393823746571783615215114646481459592217677534496303131038713838630487198408927008610189873780595179909859813022467735705351834467668476115315508247417485121820747320955156621250793681853411589724573472610858869480981187347742209112255490125126851148221108845125503965786536761960835022665075952132010495995525362395298056214652151312581542413815736225507301673826467997023030379172043984544011570501275029122103893702120540990366950003237385370949431252283727147149919263865960558003499826964695337203819988746729860867413118169493168837429697696081788125773869460857460189646736673481983689090926532958793714639424516575838171835713088674360050316469907682499286029856301557993508649630471755482657159631873314881944059218042339858386172782064612678419214877638587271898841146336044887940546984118198954040957785386263659016186883838335080059921694577692202964744098223485565039442212973627558960460196922310043824622594452473065946278276911204046362720957009897619825401348624178079219506157883856057143791372837469453377313283776529385781330772974640333791810904502117327234083081676395240713555228052358532054755177210995832434100793696672774080181531183450240923681025883181872323369789800308053001370958183425411059422664902490279239288748753014439450547023916662296837473045951104119520694538581306950624044629978903456638642575098086703929499536902774094929914054369341583100406050459864316581066839735747886212512734085593374222802438301929843660100470913478435889276483533067533871537868823569118689607029626487881983082332011115496386783485408473509575430464036320755258647159035066014338562948387285562783217815736283556563121972496352616419899348208014279013786372224990629350155332073312303105484632063284339226233862795790390413926481802184176964505215289350470846784904090807977506794693523751657524161730838513095773167941147116697311133914534083781088908693703760069771518487468598354261730869120517546673903120996701622914873302873448704691069779738598879972302156725039453311134916433243654326081327161362136263017684960313766959932823780140718594300417866370268701484516098483994494443803127333252576484157645179459477473477861691742925860053803073336661475612684340966844805150926249441882178538608670745645466364839266651943297937388137515461897703461665236784728726140516473518358325256992630809186852005553751117044179205406452424947795116544606901158788648797106528373693270394062207152694751128289409411710138682330310211342950717798257319146429771316056759025058020299808110307906025829749828942165306120409917218079376527696976239123635141138954735688077637666348937074098009423722658272186244032334936344437398505177849306311093684376879767564860979382053076586623063735144692128676982360656398387139073602138663381271341645329634803147355240125963171540921150128963342618784332829162130873325186560672365461915002270380859984439776734836910881030843500252616904542905435871038087673727989221705317710618766418922252292667836490446129518997814816577534337707102324330279871638351704385660045080635223425586362423720213482508646240324791441791752346820403039115782406675085992845009350284988987972826579591035697516977413492977465261052060137457092323998946444037534845769120485970459442348944867805602149152932306355500332350354040944554057299073068660517680531840238834463208893325658709707983799367044689574333144428327170798814097151365382846754188612002071757229012551003303932513570752534257188020083301738464527029195063126293526255223844500449635685358038153140333306748459950028337140465509768977244819971208658790231736850758781631374261014906053086077572554005475560186310069771382408572016108447554793915544843580464553839901298882458479680906911287380418636580078621425343016775117808128918516870794625300621858153020258836165312026083965849370310071392369258230044339442182129080305318732781024401512739866184523676641043923355207046277814897037105182145626355311950577882384930814540964046822998783582048944699538252989168336105781155448665733651239031680449380964728194119040679811041256320468218676104957125501999575477832841477240934521315884818212502480616594374638258347764846918237581090743191459137759849306058896981375261886237856844856740033562108089443755202751229879613214694926816075790371763190835049959964908360548787357057479531599720361077728177716009032497084908805479736238560624527088056623592047227999163542035441704213847800754833762575129035167279749937310373857707702602732432696746859017172899522586397176030126919583958184737829439538229435009352434713791158145521512408166691552338421152717707980353135716326058472637646911503160611421715191873632876572804703029632669809118269790303937156444211111536814020209126196073347550405118788141129871919914752237420264469124211280944251835524422053334354556996611310867900177925394550998883870664785763138843431728794121976476757596361439531074307344423136901981991413668600834236715395855308572889110660002281369959276637812796239776312284791955269686596660304316629902570676458649913551612841160578487397425046214830347551519922384501594445502503077513191193143808689876290206713759605284144050139036970411004720320013257224866484314577873598124233612562531624590753281250575528359514780056200673550703711940230449378686983801680998016143918029016633729991155047030277796977371180555364709061076994259392488749127317600350388995709770884264923110859093413902204659928867213589832631718438078884489630838568575052365249224484593408496092660677491245806877672520708449449652917119334527148856688105477125944250135759032557246494349170533518705788022388893631352889913691894958103386375312751244689102414250177827811719582226162524139438408948006347071267000878235711282921138804552157181272173295842524373243921379354295000845193617018006551768406921690127464888958432661379330951370140759443128358548052047752969991190008511618974755865381951699607636938184089429105057647337570595715507597557624570315714605817018478605194173817136458401060931502958832500342689676088628789718811478575540562351729285414333746284451009285822186597922257333782369071355228377480149019157836236313263956623027105682509125707777853908432412700591806674726807580549652569633290875434228177268735640591991481192386676958599320623149640108102467843213648808773431836608388058227280533482649921192985694656029894817510667387792335503054795061458526033846256761242880400957695714650745695130517667656215189193565709121851285439656063719696051949221349146926678145146581497151618616986922850044025299322997581791235411786518193128281581664973983929418630772534033049991388522825099329506236924959061126284109657106107955483936321495351836563953799728199112665492919042662169600637912475842755026590887038350656835770287361226842390099858410154900225813960919534041072641878683517376775783192873331153046617020578540854482084641657279103043677298869879412756841351251089476575001065141515842783007757151703281011326660335710698922771853870585456444183490884039780019812274083380186773705788165613512417867174091491431905199133095059864253396042322769016844912235918534752243251044115175906722732821577645796380724577204113361617683616155111702846399822088381677920520397031371788637705794581694853267485338144053553584546875759514821356708563607303555675663864082513354008496774826767564320589304788848556786906288062796687115247224750900893498987237103177474186539194690874361441538365397397670652072568326338607005966563368653214362457451212372696467043308229418517282209715057195285441447666812000706662369382425621287144746337394504097434123676076588309686134118552499988145387806099023322468652407240648241123803318979506022292734933068352194750845363635256807592474801724200251441880635378528388708090279521762152035375709867076618950536642988784136070466732837637642941695000438876261303880376425608288180941282611233989815811292502595118544879880343422688979119440726353040787131555377204701446161525939312594851649930816026975477179985576594742564652442515732517013687284701980108283763939439038461353514613782296941633484130323312239372400492710074491268023787789534051982759654853032680933389173621062050013574839189795611691904757842835496504738855845915404485873273254337071582717811695385041856246414029977410299718566579714337748680321890711201618001529110771964280877350135539096942974435674123583914021433995493377790091072432766985602534464863629442078016664984415934037859851607377232398860368708627923129555458930157415453718688339691482924647618531759486832756283764107437668241959687330811979625727959980091653082271047122427951390094678612749240105445736008928663998372864143429788177211461552176780317803936135815556465570780126801689621526913649264343692803178697352819004036061136661119591492121472868373829904909921610327802745583836784160515151412749211744725668957879145339662383977486101884416488992529495727590699424734377653061125410083689132562246642057880520101093974772525198930026578837104791845142232450539881295592871631113667713516251610158431874392180215688762261138184123487981506872014755503836153441249906116369179869213998215366851234959879088958433535073576146530867254299470043590269903719670780774650464414862048042895501308374586950784928851140059172695902848895901143257927013313691877604652742314847459498722127885517853223954992886937253872290941179181049279544712247357092949333629550947253890647743891933818596306149622601650641432461430204105990260723994205053937306017420751234440028366053616850105172278451701127072129846223751926251886509996686972741754883018665197396099563386813124117013871469059834424821435578331137159885945326367665612931268563784444612324601541958940048093144075289735940130686364154476832281644118641469021392201799507337730811725062411787922937136669417422120932374717657866040750970933033585910848593619672491356889635846619812472894698228616420110164417947334911531150193897017920896674123334339574596793175923178373164253029031611209175364662788043975671011432257653836902720083598092980782270635546549389205904181437123450702534001961291437332398042970368902070070089814870409113701242682150171168308799716283293886812449512833173228248568257545481213345758752619579502915010045105992834341548860806658720829976321796206705806383894608956319888081506215170258283303322069698029648719241171584353671689195135952901541424481682182952580782249814007601755978885582546527603359675715688340329762138992687841923772706128738278820236864821380415471288433994058785830231745481296001421642551820898125635408912955175240344793697971739259522596501096553404461900716313505038849349307639438940242543565741962256029021329373281785183634473921236191967696753143045748557629788362740699167844506310554678574073690248663688442336032252683340504954595715325717614399689298782096651412819213220490190901379898733201174266771019748813319342507993979848838549250447947296051459672129521176617942125224574417468709723688556670395789437101752804738787298366432127064368183972179794342032437477281201533794228531520400877216494682598122236527941343349232469127221277560065134418803523209249070273187013808375626111096401670776718589053322000919089557777060475404872056433519188709481318715541318337506380140583608954686420452289293788834279831071182313612630910175821853548373938485610673011864260048631219632075374403208298251539559868159269723980420395113128651488019177394689159361777675534143650123791204538643733433858958357064772236929036248843675431926085190401633813545292816555214912468631439281664507386618586016723430985665823828239431664602853654945882597261136887127745577598578601390626800850041830250559043849094166670822665521420542679279268753079911738358003641662204246247459122852318658291401468898115223604843589261967386988495526489069649527429561206241349087086994961127018380515953438817263394449138070298368438692056381609016449816029240710854000146952023668224463058875057137820869075729751193520312560154817684172812881042460281758054683634457266827620922942898309357529001544166841208250605951161384726873517219766276977067054726349952787268839487154807713540453744239222232461832380358165856432897960788425855662581018881779153017965685757329300504684038679223035316317151789613549072185167665242418802077791033266388553805848488619387316771643847603142908431144103657301019514156192404055060951229225386501719699408083435924352362791463711178753339595178191970036355002149148132121215803766853021687753251773037173866341188552222842874944193444899073471100836906011960039520593995205455219405194166631686980820545867249767608373148951155121976330850360548889432433062103999416634261834039177608907275766387157722018060519283135123176936255744238784946192562980670362916974343193596960584926670941552705567249933047382299049924057029176473532474237421434067241320230513974489102041099419759315243307904470330952787213890657250187218960520424079397283192937487932340970941098056133267022834949427975758402686930706279820460190480996955316043267976238284412313428858915836411287865878554987676780080243787551926031870157636212888106899908747362065176713804042486863949852482498098677468350262369223663605568833290121279545601593432031291522455634450021524746616119032565865116377571224929933414293390633366902283520175417768182665509748997365188728133316079421865676259371108549424142347652235304967059569676485663727365235269076664557830245298763209463588917127649264465441355203567937096520028437391102151853237381642843002099666175208853475818388683846425839951163641441567832404594652011118956495952715482471481667155041878373496570961822096229069443416239896784835969801453116052755848224046945521402509416546197968286112214729509261076794874082451502738783827585146828745062472493066491539186438807952594011483402741024069676073010704631352994177818002360130364956703992120006207843670402513764344740129647630022418230809779469970081180475583686271972776643868750976530201279890800164139299631548462256829281672475793657864902024612343678439833164473131856360171890334233398702793912122371232501657758671046211712734654272317688207945121581601453728340768563511012497144375519890432514894325928783282549098317611097162523421492673107909734148105811475554849929133926721098531598809643432439244817938986552203585714433672441954428418327470309029613241050697291326647697940964773785845276878733180564682381593200495289880846077286505638158729270860794476831237688526322111449341152957264404667316182014376015807851036410889270943591941423115393279826694021653553021186586541755021085253529219125874239141778021714382664926967954472129933092999702790826128263689625196940092437788763516013495489089570322320711901753087478454041944295062547942604995037065727751349760818358252051054139894109048216075342184281310396725001100157603465720626369315456413880525421410036899531036274203577052781179459877024986989547379098373742082209222808736299043008314775724406980036892639860223733415883543397267038512188025123369731033292891178012214412372614419725930492815652917063695499463843840225781285930953062374605147298187076189590866502547444923921361724679515988240956353653230333572982257522665715311045912512587619475740131635137575674888723247328641215187527447832086771960726251277737323369854984555486780486151119305915266707313863372923967312009927096320590037433659997878433354545140277968314308019766026365470523942821337538031103834554919416929112398576065765169781283945622860093311853664695340256293547104846722821317321318777024397067369228039182621192686755762261081404791996685377314789452537724421603919856670627821430984499905902380486771670664646783523187857511207966684255417003563535072406177845846782500640104406436230885076661436706389791115562537398737358871681724808974914156271844300905058876858010381240359447260991145014343350797468604727564123691038363857986800590557538554809943118602226051620019017754417696390622433241331879533388429180859175619766646624064114480670848838928010110146150136317377934299741516270024485300147092874759632376740949235376426606455978825665820846290031292461468411452874477414876533919433941998353163509585638066386455499239510646004978930640846292605010721268649301378696577003101824758627386657554632151253923195196383676120024393797975941762877740007617955228419003146360828894451557518785120537050223214050699140449787512071795578203616462213128910710032964719959196136037115793592601267959006359830710607818585659072508009898682276397241683625232968203636612744430695292182781342744908712294434836609094990883523135498607268020036003516596769657952330001669315645902893659363808766912322748412416674196587226413499687168478259949472072138165556024766876895789322563554954339991404609071274314736645369857581466306858923677871326028501010221542868791807416432856215439532903255861522396841604816054959579527751057179886017552529448362041424712180741868159711065920287228199421898262491892918288780284255109673129714003044868060824546120352604365711191708274190927722122138035152140223531761206181423647797850466306905332716209021415910776622965033997058438186815029390939322190340570907843060685007895617403083683247219620907723561401524929365015448962228741053492574891800471118328701118227731546214290471570961080825174833492012637002756215210818231755083742794041388822613596243358981964699221363919820868110173077429477407997559189952917543212218385527260897340041791798765125491648308783439895144171836369501827101137426881874181435685331887181774517658167101174815945359015108796794766543001676115722137794134416886682732629422728707226196112159612528053693905615046553576345861698725289011133685566245237149921717605935038425626644597957127255862790058543847659338357725411461866946277448990859763545615286342972751855469152731048597201134423332233985529219261171697712659971550044905697172001751732006286776406239529634623932703386927975418811202643504188405756982465385747796622727445926393032320773667293269610597162799936033472614534470345210087353931353905757187006166870044853552728785971735247432505039326199649800166388774321511344390119157980361659586992438066688866268516421752124511177923915040828503809135117829069647853518758555063591520325760838037316499430798822358696650419676570678611792369753928577594168009700188403985004313206672412482893031821772004015314574402843153861844608945049732281876230640770930364017659776869824850879943228181066477411209875114911060462675409478633471821868649722724957158203642555381638033868423133820811961671115415300246355749895600532736800329719851956579085708576882028633405178234008011906089000245977114473599376084727822822826089826148965918715961309361855960808035695772628903261814726081441502422114076832338568257526083245477744837521223586438308768897496304042448049935327793270567447022675684897816326614463558477505708844768491813142881188609091259333113828523982079075444799492078144694763358944913425172216538145393790779864952981273316590220067666803215832173851741044819229684361226997472011667991463010626021194064922581941561926726991333003925077530107799970463214393310856907642594776089162870346223218692287220030880455839683620595073675663282515995845599505487946009207026875847597853020432956134101504677195107322381550582761481167135245704921530084205693993002801873612581529341536073620062775465427621828682122418405030532763184110639406050332765564843590316834278972660330639159475624547063169861864407741505003857538863767775298588290279316765286975891925814536336757560508281677191815264745118474019206917651964166542229096699605303428759672993668505730971548296693355718560076356458431970614366832989708111011921502404034579321880951341404798455044534164764354483673142221413262140226293898410401139451488810567710396596547023025342525152996359895534998090490322453549387986821895750805328313645545484069392117408216358779539696542215735566404818355718392304717224465381687823512292706995817928267695282039434363056461344585460302844283262487757813450054080346213448972895181479078205708658443896077864654930477087873989916435665817391075677221682347194975252206677798497904322425942196405550641346441697673355627515761447501352151131669643420365708136540227647232524755714751874866613535945335404956474493061284911990571747574602397538561642247791471816037455650640362585948584163054446102393883032834065097525409459120131860338362730979560625061035939406954387999804683235309516079266288645143697411934007699227611810181357210700628511678118402127450827329147349887990334270868650731205754637752510703752067939390382466449674853292201890611311817412767930395372432568334336328264437770358054349300022196455288041945461759365526372513110405417360789597770410323437956752081760834837614367991770917027545995363520060043500169856854830216451177039940817151409062564463182903049718855512681646575256589872998184251483862886596816405619148651332961109304101815314728350617739658235534781151112918351513106099534679026905360088962737140171497078164628968871513111793512771841940828548360801649905129329983053962102115081221268159087566060194929406912621175934159325093828533687967158726627743857011771936679700127454514690072785529389172657598505919031207744243546644916084743350201793702533786536494891360263664262196278991911465478748710891923068140689922302760770230949348825053242579851685003023985409674271811374853085138291646506495081282171351462931302080000808939069379538961535199264271245566402844206424997042904655034704466430077854630393179576489840045494429421564312972051996232122433507478548756354707557689847646812440190392816516490873348122056222562259681192375520937985848823598016635243368235907989652050922183688284348694985564587561874823408734537957438959537520114875105717223818365978345962023124074092987451892621259903877529985417594330255088406531697859972152420944977851059294703878896557440566053441567120348977114002974644484669150058064838067568242558002657316522417467502474415835795233761782305363670063310150666331307387123367791625634920715223579612675436088118504982118990795723155543754564719216043509233771491348551447246465223384434814992684655034297771582306476484083750109305630720527342496422478956874887171060883888816627882993595830809644037400075320668231956232846827370763947752266512401967341609601152536299853682773748333125414790967185957943551004096903996811973646870591343318422366437308333410430519549814835793165274323129654987898833544570425243905825020392107939996601953959095429902149921372105771892170733615152983855948250949823629830056878625232521474051247792827350088152699032767040632229152624258304205180836778621412176766203921071785823276850702424592600302679156861649707820048838692015966660872403649395256444918172401251829121255849679851526886893999880084685580972821381520315992353783178177116294964786874348614905420172262669297085861068828218976459698849054510467791085965952227534027016380369192573052372614846227722684062102817468567639840086793111440893012746885126964280414360855246540766768332206587496879824648070327874998329642280794844629478488400373686421192439242947723899731025031611039908636564915575645485788378817354774994851006858276839865613938774286532570917894804891540997187639504946633826664898230417991482344534873020486049079069901265831938856091301984502093518446059924225429039699618096626069406120353625435873040634539485691323978025411696420637075805675799528175714386616110717159282534999158410615400594333717340549449086088434608990544526243539726206163746832614712111389557494404667755091696328462571172277520642287844679735833724270238591870454931055530622726028901208547228681334380171138592150399543092274359587250380404377256835672718233926082854506334440632958818080802558078757096848725238478886667203039310366262950629827758134379706129789011849368672658308637014853622839501245465471855694948339962600605608718634340417851418733858406795584415126191350092994504288852086834478049533314459028410667186970510162377514337271975890355493996113897197655221990538442555997222733818342594479503697899455788402984918241353808509269311996280280025521342951791236590063084158259804126252126613263905631449087010284978316389952718142669503967807299297447172341988815687230949109896621211015919191745631503896843681844617982415749552381202017722627295610644090507573253241072732535060956682117231300820950142887021455925355089774699934794521952661776183554076441693818385239605612506700663163081365667235150435849522762971770809361304970756159659893269266504587412601593554905545072509254803041486538827511610680006808300503304919920467419108239186333764845191499485936338390326867043920334415056418802787717671508577649396434743393234507852301237529738433848062120938150582881461397532348651168284206855378863112444320651251612555995754828010185347338579166509273900945414085352702704974720465768900915118222616110417582505987339224790165666904503367763082485785340964144504234189913436412790393247717714249647768912784320947997849536711474988152025460101560086910459369608360012634886511689737749346056909773230395185447731515034043357584793194373214948423113774448183054057552135269155677356999981027983132355437370013693760385473621056583471458152211399776457851361823466777715097438963757446029078514526249376441760223650568849331054903937264703676890458374347097868533055326472215149786797262271407888042016170544711752642813383075873186984051896779662082027198209379025241142786442310551369694181135995241881340183056745427864425427135073330629267800442340267247202558058467049342816866429587980118025584583549687819033203479330793416427171160389645987593634911209534455820697179782878278536002647241546162448374285016610177714578850373811826151207054715651114128202479740935262843415946637305247588384630391880554313177104347368454976648296759212076840897119063908106570353253605470724561645893006186924910186015062555107543370537031751182630612347840805503165680526658143327307833700012741091684113122901617249975130363427989478533622200259600248536548911634750325426474246862668511001554319740831276242751653203994976450300423664765896213392299853157517712315325625165768809293161488814861665793115259442973128325970641012361360608192227936723946982328388865871651926383800901469310583407973480181870461792914021373670740730349582399135716533026168177117153733727727411678072296010542296166789716165529422373117738521416569531098224454132223068771956091579830810156613551018264096399316943508456147682784601579192852392193309906751709523046156238143804675854279181228216926926974894921393499101129404190945810406947652057556674644797807437515541641652088229016811359409544232568181098313090035107344772813660073276221195330509453264442948899154364729627493579874338407940839131220481265961138333086735268803987065731363804210197091905852080972671739480423658113490119732476233811764868722048867122867368399800532002880749682238579996601253703581047371684374284140346452381121711600413787217509021362580318118679090892007373188070132103697098848793002037097313648950313884171802804930270393146739040384283935814091521666966652444551626260265232502747179071157298148508658229008957534055489158744516916969259285733320304669482545517670081384373844998891624783722662171613789031786015691054158969931071222264392644001310894155525916188140219687293945794021423238000456333698543199572836142030401558910807773361181896539582122275245583626633660384766261718246385732734584523405132363066286693645717452275156125664408541142244164830025600259847981009786946769448515168215101438838897141669918080977445583187296517744843191056620317907444961169667007659303989394491740185231608409562360155183446345104017154764075198472920983926503916163426551355812325054413109968513868975518899353475358320664741564621918821024067897209024738442903618146579212161898660003280536352737620453216982125275921543776987981965968878008190875962017701223696650126360887137768164953093564902468950180867462685133397790541043138169791578040344692266978840085230589659362754099081047020831584602618885483595987731672010902678774674152417857698073149606445340577037377561671707622594695522557509532919363262468560139477219277836561964530046264835863533331913833059782340768041412354457727802214636497153210246706999118578971362116116216861037485477580909649708085761338811056306442919161142037394373742585548406143797468140776196208534786200761101354165386927879558123836596243267969603247835353103657657316764468691880144073350398033876995521363149710016920781077712839024696855524261278706288644523283091457498923855301371065661036511440164936869923963752088003479756741526271516952289101091387004696626815664857492214127419168774896768013259224705155945224137908575638885755980277280214868266941950215365744652879414929223667052494233047012214447783945510165992472856818542606368301022683083037720318781539784361074302518467388518569430280479437423300670228170743791913122546645384107732806100561628112665700437548204679050134825962152186787234888574135970948639133482499843966650056217141438014287364240121823318600652653700200746853751636239652909418549938075252996638967054025197126956181226218542358860049572312670374322621645296489962435903867018833895157789639657232962863996252544188916737469231886074240698550521915119918161412756300815063127685800232071169529498113650264494134894339307461841811828324094293268571703537299954880316067643896763578424164778395015134587798640096328488641363166222358666710961176451199792422686183976677636563265846707230141976227887883634926243494327083062261323835915579461028863816616304647768096767365374039611358826823599128312562468933820849292730071178498795131708886526404818843218479172837920657180717540864151510696835383322168818469772742268199143873707257026182915756754941953895571484843584362171469903667534256769625294256359047488176329601882301849159127532912089256638494032425886287715415837000219245256068214818047774592749059356900546775828462872102325821572632428643261604047205601925439549155236621790355119297645157956949108585476868047050007100610551358302648731947108799214530668546408243863417665973125101362165282660380985303153304834730313715056938942695292309346366947837087154180502395821300488143699949644697480961471399582861269093398517437684991273193136507750580005366879748841906819747732255325083075184448433560062444278585549402868225975344354722070188774836481832494757762404746669266459837811201047295408028752097101858749297807372927969120091610663980243867641967577965430913719470946717360349405097765490603886789135865696797397811709770678762320404029081079282279832539253262672462465317216686176265981916269763929059810408289534102480922968149593265385701005314237889783172163543798475624253385139814651348512844114108546639719243756014896775673902653530191722401148934574429493902569699480210724239896548245618174318907759748578195244858202654994723594851131473017641887642139006234685388233213186120965994617284310142682156011798071417161630143377914034231725195767485715182954338730627816822570698150350750820362089249388411365610610194674525000929848479938694451899591677298940115590863387968726695114526713004365097626820944951635002400291380679739734371065932249311377201456488803606613289000274505680644601660078865195490371481600459447310538257847861960565028374438881338025893974935628631075923083613375033418795531856282720682300978974895598726069134396728262674886708512920139274007769537144443387294601990961781352262998254929823848714297972910011670450570582357785388419646737576913788214859475018253442212091655887430169220155775406845175190641021687584537780963203006211767811393365613242214084642259200749169858532007288105394978136543946639011126598103676873223659196082839276596429178777453242837886497467816523282507205504480868774743175974983853526756593627154227618302288352510553658489146421242613255215011555959915910466923246651953636729468676795962233618598327350468473838927605799554917371857232213639247684961041495573702895670470252464641371362943843870725658297112430101197017118340753082332159562128287762524412430596496021321642864446737774537589580950586284034000611280530850997547581914379757922367646207287389426687973695686464548737433077359029158537837653166009100463826349060207437428295150905635309402573302802156433808202573950342362298968393161631584867865301514918314850541857922465160307647484621732471286658702373387371669813848012941928886754163503219637210790995704532226648757688987571942836439647067923065862109060570634034434205629612624581499064550068477609104408492553132421559690572702236211293986929538612988539085941664132151570741322774510680024001667618651392446658570090641139723762128531126943771727910092778398762955839614905771244960156500145638606363575010705349490532910385559144560167412445186540978612450845433469327941080450410363380026045495848000882978759593433005413523457846039571273778183425652508535332133077734479362894330693861186317791216448283231020753460785015893188931012402281932650578184129854416813638287501794245889523607928983725500843861753275138592495545529865875119895043848354233301048892618162012291704595640427117565039477858865381574221068847709909465246761853896779634494125039473463092828829674072983570304178860520634213065504713110314292272300267863841307055228567358216900110646466960305255708999981227526383456044712414342871708435897794946747757200326877387174254670030720112767867900450465328203380172367457404968135346855072387780935589515843911236061983268905029997407310659817367313403261378364444806956580299822929416802984442102040373212166719324129902150156816074019732940439270965541730972398157207347508406241555513117950387497364072588540373423935953148338616977384190476581443017298303851227097078173970657464122152818462422493191148797622011523897676333163024241540662076404275963355662731154685478827718831194935241028410452898519415640178442192663351939449587652378840014033418816548206225948521433050487859835206785062892117071426798372472225313212335387487754395917736046942385986036598168428329761949857782246744655600541620511598617551689726266183388236193650196914685991693861880997535627856877821704006171500653016047482032010270724916815453544921141099675016311113703107879058986493878930175111498204237893407247531675513157560338484258077365387117198213430650701866425967310484681524619179740208490114412631296835018621297943333171106876702994200626056560901070722092071798288953589877020576480042611116075059322925371622020188231067430686046250542898889720926913464527852906860227384305771219263040659422422223329130532344272379330363772024318073240218644614092473056338600640854382788543278377376287056783650889040883996870794773300615965155797586801103568061799650544711636956613396849492652081971524496301425660059947421387350822838325588554784662303317050854085327539176606300234938545605795171879326613544548240809924153239866814271088930557377417530275866085572427821738659747795537497538561931507951220435525832024165332147337865018711402111953931749511430355982430413096827779390501811896903701255730157801374543580750495051082928546382316438639742823586766631554896539128477589794310209712686644409482102844649463292065341290929312421071388609244364513473010040747176295321302497282341996618122660648649244551467550997594715455130414065708166315517877395771187422731967669537216641055194263123022875579684414501841483664019514257478811054270857361284988213886028659655785857362812370248721672502539640217702242641415958661216810456537250519135225704009654645193231940003292557416806550845914084971953594258711787713495174943398782975045959548005526023761276996880120649200883141645221808932825444475753475227116729397074334588559240799003544140414180223134127193218119389885097133527381462025129505059085020067620091525419294539998326258212859926114986822350065850162925510464108155863903912612146337351175744995318325983840924959571356080256326232446927000552396687385335938173361748940684150194447432124642613111694004681048641294120712705776723108260832558548901407497661986966892168662315823918795269028483241738173111595039766704181227017054238964744556154559097920782362827993846803055233386944519744202429122067627057751789668037775619876804830446679298195747434217761928834840187768186556855846128649872205548792313951452433973411354707539374163326481060832846415509780162390328266714428724572287597617868808052605001612148091155752458678251941874145931238375892558969662195862857170332893164366761667387290264312334530350740498546889590234764870526404843386222804609254114599907107952223020633794333633681519583784718082159793293576842231026183471846680367787705914597089492500096410785021766647733612413708558350878177709564836235343870230217336800063714622901621639457248864121785428836318231204781907844987535201726702729145442824628510132468293465371160142575744466749722770534248492401942596806849758624442383986599533029252322669328378221604851883754692964607487871009212285890833438345110129882354148525218269828377138606990306146760739843449133386361606604421272577721560083631346015743144901885894565844154300867543618075032869276828357358303918856648382236360412956570710593430212674725572692222761904985088177735289506052899490268181340340445366372036939793049178898049357816175516301829940069896585751882177263180198842326959853794463519033844626003195934228387301972873694143033044705473299229251027202571039380651931516304057873733699185649873131941040769834741726528689756117976821874925494912039363812256230599026918017053755764969117143602827055123986944527838256307957053981964521106599955456399823132048023318315428235728851747132047396514775545866215976545330387716736807283676850724112534828149061273855286082582028305006969295082330443742621850657506313925155214463808827357124922052544802522474526165418448821829715582660976785744537575218747604503793060366618009777879201048444370760490212807185242407106173716354436506092480304977760293227107803853292364422426983656611376666249026671659642950909388909588381563232833996530599258763107018986142545182765347809144056667383570279899277658210312977282541306754186849004458424272013409918447350404753102308883358915450262071691822071304883269189434078614476594746433573346116376500379273176373717775651153330805745603963966168988220982336231948423730825660482697993944924070389922082541299383092633452009412153897613836679642895500244642376627496869845058066850199077139083197958940218505292060457810366155184810178563476631370603043166836225494238722316896755139559936423531029093549409160226053411262355195991437296700251702815641389048891448044812062356634029243249580995691627353754224418818712031498760424669803244049701291544896834053688392106950058714880288616785115797661631359215592137074658081244107759056655956199636155911172663141447473974192190023971236732672361909930593678417640643000808150579337705047564703937772826882022453245591818508800792275039408423255727230646708643277418689844781398300971441421753136695117272490912600663328570450365413462336185698720513734230938177970398195349002516220685335604188274358512653884224455450432948819470965244693330038905476288931442008769239365131059753190824526947059399211934458478618316873232057715827630651105356524963187415097527171726396930628290419026154659090483692556795264704243337312155346854160599464600961074287624532952653269154872538228730482861184254366984967234199968448479936362405787823408410299890610641465583983938939303689459258280056736998069786935473271902784433998963858415784585828010832309480803368140261156306192231200065350495692041598642524382559125644330009199582799850919655596048739223063234786293901241047074675700837839336796955420803601263916958372163032227319110864392433634416294217115176497020216144998789073097295864664927219234500458785474187195196572563770854924777353748407617807325660124740214818781340860862076806092397535074815769890863378362464783907441127756089190311501178509911119231179647741618589730165864009950839187074869335796048034010055924501853282805792877367952641207594501769868324208890317614820720341406454734118720647653398746847016944487160616127318282566075256465713517945053044061320935855951473303957819316095267774058132412349814129060087941096051045186127291158735065711654232613593331154841469017783083685948670331519909143580330317339236855247567128476293635804438168557916399991151917838895212950236986303661869352600655500260566247258387257937716043425603482440125435753146667987957827118745376192175322141190170603096377910826731831888442411652850582047081814114226843908585715602577356495245118928916389019300601261471679695979812743447314960912184836795607660241206695537701306426023160441916513686261015624424028007768242739502628538597051576715985053727361199283300374726135744456759448729014486148724367851961827552944687673916989192747462427329100459980947896449084419927492316474917063913739248505761509908458477022089010689845645395025442087752293458755330316867657488828620238583707126966519951699925945116930103518901723697884964736814365650535384246989890612611506915934870923667968812225725621194433704066062118136471822632219867878940818993935145055921851963340659698803039373539635447609084128437005152308215595823996404445257408435120912804936686919486671562571739322405574745734313290861557558245460313334082844492574523025795672480423361525342329871855132115240726928875276508021336970057267939975319791204221256121065615707636953429354600523982485627098326709295865065523660359274603234783372695621996061551929426353823996359951952694343156318499570807285436951224943386244999842885448699118164951303893191787055929183654253803285419079775315875486719809764917395453692655339830964137584572015610365880899501919693571902060591822154844383614251152414245988396178371167036996744368464584793373643898798750197072545772456183226584536319780056004267692646602183675377534827117613789673086860039846635624207509155858071123511053654911030539572135931738192959442861710211490664476266241886149583053962108275079158998275277312376645146642922253319130004304302868189984423418799482117077846696211968988091198737218466487315753323928492590295673760143297988318973183656021328604517512668032412254473616979371882760144195347933417489216222853175298199857197356179835273392872207319916828881144385587633816838009993467998115762934632911470367284089960473008710609144669765160772103376613687693124537655687991933237593089820338278773034572711446773193323433094253721769517771418770889010788097896555839830384263888639236620308099326906064441568747735816144637497853076888457416768172758626894531115342427115127379679100010021889314882895121391657757431493721666603180496628870230909043330760169549337413713636533358737723104333176239394021464303747772255972448462543913171337596787582582630070122916530053278262400569658932210662099756591825988677561564367696163609651205502602756077481058921538560721678856075285797392634709743735140590968133510080541076995788471200106871501957646370670951372033550758294198056033840530953571175020343512928794987249570391095795786860865291560536743237153594209728053451742484643949037008090908519217384958070456038701178344769564760060281664266403460150410942302316188711241180834831464745413582916303022993257778052460904291324702670896846152718264482711439634604719624070974044396249432644336958177218702546640413690884791103448237192499364446467284568811069192760760960428987568097806084269339270591441172713355366699428606578785519188135567433282029786941905854263608667053136523355596839612494880041006126586710817689385573612281667197017455965240766074952403731222124356286219134031719394475962440928486855139235731680271290410653433895719250404610942769172511835764776827220070464041744393915507154852599547933185288797744203045344995877243442361616612014216757087394478490617941605392875422974033527068019258623378450984579362638708500829643410026362641071504201544178939367868287891234617313813988335747000731853486927899758451127806178450667136695416585604386744167677033883126615761492885236465411017691660603889305959066436121983348722771741950498074665013287949341862683828178676400175953429474147548285523573043437997828178535808369648679129406059535268006007202014666816453673340081100580951960352161933992049935582371195137053226547033949879706621437617623204457103550292010199875784594656712311417612080929443854692307168436652584779644481185895753166127470840219739716242301987106447500357702737133422704762586483765130490931769048812076052948807701378493420587412291840052907944381037819200844483673672206663918551834647248146246621959508485984166936996070916560731741910632454827473051761411936933674474061322998666436542910822437329162035391535092373226117748437373334150242304467454550087909812720224651960104271908912939798241407552485150066504013382512604483828130717830551005703607830915743458687084082126466493568786177699418685691764593656868562829939475554403555586553201234869774136186377896973336216796835808799719104303231089406393538513023871774289831444092634240386624045295411553088628707453774176956959621621405542505231966555440109232985841931450297070375227763836262409062696540264110998991232938702163210540946744145936725407068654536328197021853610544795345690358501382133708470265870795544413361097694960925327459747722317818169764538170912431806851098897124340015462971721312224289812494822131012297385240259751802106508592702423430549000793482401665575006538808419726541042197808521454892474785030596195046264760309124167210076037385905755106783609137807583003641933296605127906165524353996901857389876216150985269644724054426905779125511790427142381428821862361147356134625750891830174101168083004726092034045380790551307986815069078237610563949810704260303798634665023106285573778076731881808983410836129321394448730018987897557047475804964011953601455605281830164810890739519253151936580766649049491029270709744681396055324533396767239593982003708220079946095249684114186071344655187975407497753266101884338815507317165719081001766957814608192552415980875574188343905485825033310301728970738509758172665156016783125886547039099748688741078247415263847476361276395426477102068580125083654493619064028983908906588880075880849654120473884722721524418243946212158830794105000304951409604491587414701626599970954082539724890970803197142036764072026543807178500052403640395611925371045916011556376047457464375599893092502432397713064019104615591153026612246864658872484596293919647932227256353933176323069342749970683108787806341043720475119521148468877001825608064082151667846351574661490135112611420902230366416415681072583732416652623858965764820057537065064246257491350351730212676104226746654229764988057673780288106595505830441317435824429766066595144451072120731563126613901950995117660073204237014051378708011484501618665119163799677573201936563432707648425988476376302260826416601896900046061955410907732733506473773562278546022420270170363084365536559338872585844237650886465314903501379385834714656336334888322699114675782306494083950279864116719479345900875491591795011749796548597497224063442745459272352894392027455351919466376530985567158949456728530468483952772114508120072618486243786425657715021329532773892108487862970515758484608545660540966333021722694902145151836129573017056840221059172534043843797737258943693354979994754995347248072435033644035139563930322628534874445120018476262284655691416398699478644862054627913377781396705159386739425752580567854932529381742356098197131558238185572432500787013961913311832184828368475370074136650388019648163993319874724637546571556947946176625821213757673746211042210674330326061957887970584819272894434428210413134809057796627151462372864607513591546935076531565070311237903977794803059481633127719263660431891722343979685774982907677142103962964146098625867877718663593350968604530865065741831654738506258798208130814755624837845237541443983006604582974982830490990604087313446911307611296009117881914863840490294661726704420075445712780657622588100094927037088338941856256681775284774430851504041105891952751251897042757620241916358869484054771322686913374204109184778684220602472608299901629962423966997097816416534298210449781322092527350107850250853782272080454225136065137089765518135505257214157879283245948553368370741598680781850293375789309457093079393769063556207967587782184633910012981010441883662408604208541321967497852936381019015638994087986100421506241063064843798664309443515665408778017112794830544932431307573562381717831415233989419240000117659132886318904776078016446778662231644309256539704110540542605947628157473985624961670451590724365884061091048828816784668669831636233719310097741355534404428334873073936665315652505247945763915130659847901162356225063412797913228456284735820921204506564864334129040982606727813509328060385013569726397393610783214033069002559962800006891686780507008520259547315477037780498849044250978946785692449761859851588956965205751653101908411794256974384224790145746414311585970551309286637561246684051377999519884464158044911634938276065258754143247781921943758016703169622276781612110689785331675685584867176573752256520665470412209262333930633480278096323205972945360454902437413621173017979155009152245892556655577794339351385007654200013862572658478260606058078035894408403133011615758314934879504524554030068933659547545612297064898686127675609433756752405661995980152197093898147272202897407197401071873443348132485621809975005846305232429379339435641626296977443959141182984883782809811081733252312785741809766873785479608854194107905611167714606602141107189674292222242931004497345758825126238061852115381539931494634820257501826254483525764928310284601850927183300839178517864122024337779372528890426905714756093914224501775096070554085960009208941967030261718068102896663434190547177312274520247259474415808345853278015980204461653984031283202651936421097970644372303778422675116452546027950558385614675976911215294727036803628281409532325395961913443962631401989497588945416784846487555930456510149587674972766589372196746137368688552262763166132210654911185336161342709181673334848833435360918903558537889979009142257951805099456036715307185025816081751921916700302545915198084637722909706680022196371522234187283482247113401532395840265527876992633938717857367801416109090297838745690973958401792704947863111600969757108784418189759643102790291731226773119944066956085687520010848893267587308980014215392880584374362030431721468377946578969685559628209784679646178756489385269237093869231915741578113570510198622770360555977657325780294469894481607780518983967200150018785544897692677068960022623310471764144198884195722362009721669631978306795271738070179630192629575425969332767027067696667341116187824735032059816943456010866171604846233593140734101215430970667316772577514826092535523409713269033951441445992480941724722935067859701274117639845225238128742116980783354569385763271896568121281208897144807666303765068232374780022253972946785031749808223769554414796462681931048891655216195876296276197850393574437615422604027518436824180590480160183455624587006466054897387808271514126862855185816493030915890429128348507833383513209553237063196670331331516512764850867375579661822535329595459062228748689189504593893763731460041806379914844283719289490781850380154296384321621576114245062380281886941920804793618297572028823009993586643756326558689682973648164598824412212394490873541070337460575173344890696097233307377722992748798281863253375536281298129068291384736670418250533360116365227042346123127543404369400991685880592629229660052072304365981627530165904769434604887217779810366960709409964861203224080227189460545174876603667183518977517077624210850036453356767890242182502779279432261451652741667762244261074284208201889463097242929677001454757280643692955180840006847561121873240666724353729497623934944563007556682977489265199775733238104574924961403819364810069786859521770773394074927127789102031312245054295758542685266848859262116409265317868108286199407287877096771679145566508671150831724364289250052373766291603604932274888892135268440232717542888837319885710945657366379049575146936766297010070544655247677366655539695107848756654319575458054057031600780304626390728870548219738241839884170555244000654276231750831036751690312061084845717838715195931315144818719507274972292292676010700286831310598996269069776489852128820584772078824409364451211133699777358207167912312051190615625057847003282979083746163475858488191411035987725690858793531216398169605533755594320845481607287320439995823388369799300690724128505749515840556352537637634786146992971383596421757618599462032149260215354079607985300684443007749123851474250191642875814060735201584084942533061438941899650286025745509857025417070068317532696747567963063860949862772024154504877006376640063963880063335073154013200413277921010409927943070012308582847443817288068633519775230432841163652768495140769293489641030952632293852619708032477097170298265707504700324277057440961576885101413839919856193931892487257482899019991748690994047950866706779383436116351051717934600973908266562742318924348002311042071547467297973971173403225709831409258727720409436217977896805947927987125704363702804265211875586244050341018227772219907795313212946116801123567544459725546914127815604555243966351098313403407691858090554206576982538184917670350757642717703641511606272189150031186648342688145888548077328775374535461496834162721961621949258004478870170356702169597435559522874122295797098932644596370344575738955877559755375624506037744878419061641321932698561592496800590620449778230172357111867538418749911448668879159916440242514600604503526664988035774234196761754612434130381918964647252473777493136520810351184948679337771804112994742178403193359657266638823996006367959176077634218051039277701336496984052363156006180847503423153699674235013505378276670139775222798290637746188468587736756493491121252305594940633764698292213886512191154295650749314189769047143686064341992754653923672528084930108013515531758260430948833636445592455261441114684699351953080036650604997422939810419974066257189440980796412543137242855200282216177778440384756990113531623720731947923340539156668119957623865650548338651980181501138273729531009743196781681512160157460241299779415903503152179944273127641808098966083507327784466461688554913649307655363478577065440639343642968126318538004617035682505793459293166713407307666554003652453098683887312858016094731785533482179068925269465964208268386101558734775756795380545692440175048804720839086912491975316709891856637460320284452667138826450436420038663453287871269152760919392850587409216916834489380825156198840388556974031393713989329169402433073673896222219920109086794084205407466626838272439225345162217217370249082938395876068779767054483721338820429885342647148815863510303544984164616695004351526097643666567969823166131404513608151595168411417118886451595636415112208922317643488666680511082544076578652035476265901314987624646379973491638464676912358736573817258451700089089529981553311117914121735748550754721755665565382242688138004913956997352945797032175536773264143781846008685578699151724256327471188811953480002058722152227495564024436568405516096560114292403666059157761325654188201451798292012052133935756673204174792133335444291577719829495300681962599475074277082211716966111784128348765521214904649438791194738992167176001405768006689624801767617776931021939226972757640503233162605470723771894766323778712386292704395264730197975503006747443712526247296795716597671917132083077169317246257521935665361677430761354577767188809375189240531686362498771024358435433788353159676025964572479801677169399638660361949578609885676951989718093213655785987971498065261464711227309565836311974869064238446277090788979304717846118330462389070849895235419560516049738989819864677335975450335535292591131650425662233682557305614807512918967011553529441474605018140741269070452868589955660765605268861197276034949991157520745230002515193961018306799987785005289625880870820958022211696563551139118625055390506942867052469993216632023280207335227525570668151453949228271444323217917181173119337264428991054956163788772840621065757084913608418748376552173207491617132291604802533233340130941783964349917626679510120735526723147178400605713028820215339632300876717233996057254407873767324660222797932718274023624439093823638422691112449126266041172831347090331455849162298531558214521541656203553486481977790726050011724211420899980116718979055984888919917846426458548363934934906006376697880217487064180692973992904702164652509470040512078856252760597118429868758747285230407878738328249396959677712935816626276685916501532067225437873379655847842656119557777993114008419115120879787437177252940271190767915297851275715696085981876676488467994008548112239015655263399214787411966837167261219093515594292969390796028788929160075252547176188709211597219622473786385407952268578188933466966947174617263064747156828019913855071489585181566553489922822785377626088834290749785253792596899932522101886378403658894934382773678642863467823482789879944167338524265264549432264310439171618905048371109140511743364040074892696109700795258769726479992956131996654155971787185623322118115257354007390935751547105091846272536412432861255470099092252695527151462411446864633487173635002992077966943751968847686409869854627892756879659044026959932333829604008898550056034659228468078207339668671147039310085376144777057135914268201661506069643212789641594866510139533259307215797084566088265403151509272580337013706813488830173745958373456644082494657693626894751366881352100347263721886207600419187140835134757360350558074926317617988308848844176503675396284616646583495672597537784365525170712942175058086217971147615808429978594930661038412559522153667457017092971811649119761143091719366627240951446236481017226417073350628227085409436434430424704139861688453959823382851979397873479460328711845468128252711848998702857920329372958614489181020805521060240275689261314255849613003733862763427538643264807952814605511019732323460308313629819645966958898027974709853401858272395253481663458065377762888614518697371476997906764920546140111820147488551107918237978321792715958033301908351908084295831231058584282993835348564325510659970550114784391878134243137770137149293504249428606057479708555491171691722385344258016427412785045648928693464294848778608234456411733522268957119223992166240629169112574312922311594153367451169289236636740708680539467946410032848172925305369577102002114789258082911478931311507588698203053246206042980801521937136498078203492493300875249845400117536045523708766411021306203259510300879784746992692750327819203986997354432424859924528024816425330552366771758649728988645079633877635832991925831802998235015076821985169996476273399124141215980789585646717520273883264648167145527414133158038127752709699515274908919785781338171830397153031236412066085301037575585589618121985787809093433591021403458292130296914407748830973072459773673764147010804562634272682234119925781548418717074785908990634271872300965835158021152532657099162053802860813214038328416920969655969087190316634604789787395056956009642496131723978775894330157890466667065470026302404307961723043827955622532210004405745663912719578415855725340689084468070702304425168831125231579310765017164645566527742967541162219180739769082550284590126578544048568964060995872471917505153340664505215292262447415074725346187341055531348668372069632807081045707688033302043688795718795626690031747787921506124920328673723514683652648498558070364950964078466290260040383292572626180088632553462216726013073917066214336284319711717604635519464237048855813174616376232839882935630569973940092611797102141365913241745676373068760579670056921714419866903692869075334396737997984815688973042007024283330306654672209519643534531986159799922866307191619477856560223289165895736346048267468233569318793333320473685392923468963555876916536018179049692240770416887293591569829259707528160410726374391340640123453846058287050573634628217504117900419180516346164722123337945312200446398684387023589426510512320966730608675251867250631662967505558785239206028354758165056945187929217753280659645070452872561204169744968245246464961890892510169984804473019340977126225351330633606732812901834389808497259628259749391871971221924185410421967476131384474947132220351378659720716517533996116471215473494031420674751363513481909048560505381743513085397917659821323993515961453396794609019857104404927108654298824764177661151924218441902153667634818674858151048062317498276063491499761237957386425064656685339335431419714462513247656276977353000689641111972053112828882859161053243440326921442857061388844251294454289193593967900982229640627423018363255174299012595287117208248097949241335140230059430574695038377085290817546331581862717444372806505006875195796676167956834846457651550925599761633599802573486984571765492118488716493193180141759511879405539274666849579114771863362167460943270969843223829892179159698663489008051257923197026804723514646135844901067820039161389987612948818180584208085586979024023854017630060254807676701426576906234068137922282705590814434813798742480225916111294446692941733520289548838947475515712175709299022421304877028793252081245450034643152781638999244672814429389668599423715182002914413241408155096974836682597139407093625415960829128396041107019211454125285739796421801066417580184287204075090441172271389766448859320660141768350808369590404297547309519734257410371036726002801691686362166675654903555244660748820548009559993254395920886202463419486669265802563848093648463666667118715703672776589950688429799951507662347895406677246229867507777385541772892493831278142420296056219992369908809899774893253110516225347707011143468341656679961556521567825964702698621175547472557761410380334289838049291990011731371348512744605954086512974126432553351990762928057334675530429324715958795579841531991922250997746111043984047198959312935390161848977490701220283251850398013993377642375546108959331506193508764708440868407551166337384200186755311671912636272717854564976526492026508280962238804364288089750479402512299981782624994928065724723098163604467369869649736570136449809119960482373401938260207792040544052975650749796689746783347751258734344497506426983722723579416209543510536215778869858782565454682041268382191121336931713164040773661029802612487576847542367476152667670844824226006619653141269931333778003958351057724476164237161947835764691526401137778266339734016627987538970623685935433599225691406660146524992246771628893316014300435038494181600578312295597726070439973565726481861989832374338620511059261922850688724154001697849174112442465060630170647968615320846885596177884646468435404279371061730917723715366700212690331188842536611475710255862867409555299391820281386283682206261428417465382434639405249211593629913138267182317307709007066671205294882612125999770612985491470364269721070129140703757528635098266655949089831649804909772342109581100934015358483021273312091465418377145148627610325332745837945475155865395251517728562636724926512345949652262664434837002877824291032980468329422848579629017556986684444160586445199165304393047102674929177348095124372974822476396572547717463622098397634209309202223085189436423379475694523371602718502248709441518875624780545727130937117891618422164040794504838599028440005496869615366249270156404282727061530733979999466569932453293435569986579539025064394970676203003219696056196665955732242849068684671379370898846022590412000912456422571707275473688390116939232287559882589821067621202948112594768031781042286343752530570276396492088353225855776021165565230968318504990675283821416449854604629273440760184624280911042069006869159824029634186371218623743206039270871400743612948448326040888676516021490932674093178854736371390727774630804158806380745350198170194288604487000195777747585041724040554348154752770003902566336948403837444491915358838493976948057627615962050343975020590574726411964443657798884690688659842212264410405731871829030485582401462101905355905252580281795442206746691301725403944157189879726368815277362054522497997307576382160316733612440283519090743209607876860570073966861544866545383642099254679699219330838580032507013389357595817699760640621658119371391845631479893965049610047826366415769995705571124562355437704162447706577750010956661798914642784528742011866763187885819194244930299774650019418262697822878859476212949524262524058190513013442997065351820223230689726124693071175645673091398380353338401342748571564827172882389071312589942155863897470116644747458347349251085918081087877113135596976501850240566972622000144222720120768858563641074639046408682863822846405874464025757160891754760994258111307135919674469746683189137225240908841204940910757831677594870260177752429760672080660491983096093056070651980794350760973902998900201593901513618475652378820885513046712528227284073711957935366121794965399022594228462199823298661247149987463190582074083383085788889149745713221122175418137950003698339558325299466597154454635172339019423981255511560829340349018100948355219208239030851050660894959999854468984595973184969105703395512655898013927419646326105546738875385524054388631278818624800792301696732142569022720607643777828378035509010990160705658422514158468384440338030504228164481509595069570877355368734368403420214907365974213475998037037662162831573141922867030673531195903527298589631150450961818694220347748427814426679030134098631696009446573540404104339418218548268747963501431082838882007177398492390377908022277639855803543394634082506582967126981858735740123220325054157132932539675164291873101857903855756349409004721360467605085788392441794741156959850926230678457166463719116507024745374693467440040697472426670142609052305911680486157963150660352176432418822417802745696638520604117063444388166407983062944591645753978861615062100606513475673211668584663787769523943223531873638901129796408764763540896894276843268931335173557331874685816061596448586147737395465260148019592773270407455991826179054451914185658297659227818567759509222685719935749391286481519389514850268571912705741303550093858934749516381180274598157018252557970760375083872731660094744793174703463429152268137213389109505717645207272150905601771166278513461443987935019281599857646660306031068131812889217961956699418201654269503575319322041467475984796434993114668834218337366078552490331651364632011572193587186184811416420238976193974532879935673085655071018531462835034236301837960519458333907878203833239347557882188916265640546021881061059239429834849231799526943354030783364232259944302383999021080747195932863896770138611704842575566094688208719028238576022878686247419276780017200799093874465914473301958809886192481028269149160261488252230849418028410536977181356305460545001306098555292288066169973814500423519963284785142474722419852632457434212858059097709045772335470414593735449870939711941259382927790965505435441536581288025616996518995721167557722346123540407170924844661746164879259177988812817494192387172893789462313486230271511375388248772699897322907320759496319770999775744000966979913396620349178482886515581315540602307409012224805352670802431092477731759782693575178849160088389471099946815409574539493861527092288412044818030414784134003244638483707346075604566012898172468528351821471828714483115452476484921445850552764853473279167439201656866208860807814397186042255343171186905078977149719269098325880429031788187812540061328207267316394993367813406578182350883977432709910668837102948646393248913490821384579522794183135445773213219471429454127171001611665722543690029131960116916645243933753624634908917127825424587419597237314990126819057786416091267452056669743967293102279417402872154372524843775007892437718775957300886511049929719968768931513379317201496875657856334446798510464186778322297573008032238349921904023682273250697224758178687157129809334065652389291049667941834289599429411322687661359174650474829161919704137929836670867330037179180408565642612732487106085156084010426871304800351994606326582913238837753635758770317190595518802089449356772346884417833778089659808735220747085092377657255180181356756549526871296174601325779469224667424224974436591687146944049914462588945667002620402750824136586934143410893769201222339145217715474827013814899110036704770741287557931079653634039071109089506935198748282163433760591626594536633614945288023499846033161107632162725983260750080113071524425454839080035723355361993447124891208440452476477753044113414440952264014141931012611133847817492013739395588813782865668676487825417258991128356630523274423913559910283355540845669887209555744567335986005356778876433303105062200255939915755115069892087996361685642652242557463112930572036096831119127893443226543085697288581578839544373475281081113251459968042323271022603618174214868074634358290322391662621648795161010357586995906065763395214046597689560191900337592382113042697953062943153616428684855994318236849815944243084250045214231150396127936117188271887949510833090342985814828235035678435966632649464588307627975923618584949166675347357981509985381432672178383678270586599255567262289429093291552373043157183394399523332218189462572632931675748142019282927738373013616776670606565117911977665273529687534817003136023059725300091798070341645614288427207987821943446643237848587626586104639762798391685837478637957823746566278217674347262451502789558637904804416784090532398452371442891357191589872521890558701116112442579628007582010571953874026234833890264125398688935725022999335042041291074488466873154197610085562636096691223254265021962951263608485726815624508527297749690716210361333806058835296879441037492375560243613226201016416753107598576167450899806848602651504014065364639265196865735748823093475755828194657853532057715690039264197628001267879863959543999539092757850307867040882156425313434637261807743147829822862593462593350398579785724986210319048447246901763033987497713338685385650705604227963547422831906050001464267093539983199554352608082786050992835846707339098551074451486450436459479663299341996274779464238736294356193197237165927633281134948094609660750786255431984996984474562143537073242670713974267822101945989132671884953555363614599952622590875142885329681848172345924889686403463311373776952152664344057584348528469581094269801243363795063014546463063506911181213360447101852088457407280157344053777374821566298302575236191993884927924174515957924464722960049177328227728532366511806465423646540109338271210917894333405374893243303923210227640004011426016848867330170015019866917554840111871815302138984607745062493903285588696016079436951794573389972930624983464728589238909229737051507006371429808999472321444224073763277141444174810193321882152757587641247083057936423820649285186466451913894871159021375484271112403413950764543196486378400021849814096695400285176374826379473981880679680600933591535350838111678646759901766139428017968084800426030235588877398719083425456059498404335754657226323652352617562463225155422101373506552994062056855868014496403573094676201795806276926078620568424014022033904128780771580895217834896908542405691885377397358280310880271097062709599891260794682849917810621834237496262485220100581191835996140247523977091849485105434658953240349108582993932541590859670592530212474053498829992903099545178763667484692952246200174534448233129482754717034202003433459253785606167780366773990480891655990254949926368513843948866823531590475976081076889775176288507559151031498318443584029852361387395172300820001577221578965102517849607241256684789405038124586300114394851220913685742442747328046812385778560100265503312144832642180151713241986351330253607465714326889457587912705286736734853607048192084964762950466235403192302897075591675331011744173603409542484665006571125153851302501113333266395956119687271817404039784436803974667917736720800457893109213146471336138861495303600380743765620579151066472136084784999989426953546961639713721473332785820509948031222834702246091745478223098410980106728354692061294239929731777911326166169362385746366201925059969019977181093523020150378843046568709559955467875601143998419156170250610646001871734010215984053823882072518337401676655942310383524427054874605765134157837443503480306146797798778817460233591230826099396632226733144859661403770604933742786659969583886515632568212432030939829529870996199645473389940580523327805911028349302895396486148416008445679586403971858148862260655430672408358673763508055806888529243062613002905962289018064605809223560104697400453492723262225046512510629033848838398031524796474097835080512452921576384359627018927285193034023003141396085451728459925577578181406433983729870783507558207690105290584087945297922782105802475590177052768406514923455168663159667501915863715035374484927891959367500497557317737617583948026042934465214105111645225026769565288027773332903986424636423692786190169383713778336832428971865256177363027243487026251926361447324160894395527915681956321075932455423280622001866421992657901511933814901134769073176598634547602404438087114036608115603515975801780565654709429010132049692778015707470204413009488745710682585919837601874632380799867900599240506458587148740391575366764129071556892378470756084102902856247785366325866464189452226669887071932876101904599802498813646903971205885929503119142559411066983845657645963499686208812265703904481595287595705265810789346099983542897125753968684191309556312582144477398271668660085699677711812398228768882406383734419985228965320964008795390201323870838105468042055241789658962871555392033991471761005696741242907299890017716744494097561227056929594689529931575304703453629620662732216602910379126616429942876541459031163173038616368408704737104992818231492243974339793488955719258185160520891370088791399153720213221252308563288438268433796458114828777194695624226646125855734603996247641982806609099012821805067239173063378299020101593665051659330147442852312674769132459042627877123772444789483480772280978831441540686787591262468017375363989773772907047872196703540357547917340289091969567919300471007597060141990409781741043694167090618109828205451191129848117877310576034781780226782961303746178301137296415749421703888171528593171004349080699029035267896087092967724374390507585312317147416540339726410152841656635694144340401784320360698203344429606393514260027570814346886786916115543507565927765906098160095331663887561185847813469297593808577363668079591873232433369721713699397709458239384899248074250710963533299164849676708822460928534401457555986143413490205253195974250523399101901192686316100216740557569706732952205993406595806050278775118743634576194201493385357897946398971063332547449550924271382380887260413087142428099779997298000077568873277123789964273883696453462360074295735213776807842778659067124297058481731758914578678645951627620969931818325215921635128143647418920243369227058769355676030997242254469101476891655513904400555683560291279684889955127129266201979642936689041985184823140975987214058612352040941512198701223256112070018681114780616467398980574214047486217371777044483267211738836437919029337480891935702485735071615733090495420770612966353747159205468325093625623466600876362651787283822763633464914503100904211572941893383943523733945146417552240343735640455431328817184859978089351587725448327164390996088864645442792301010455501849220984057384934741227388600540353780342967168791208937437203650346493163154685915679681354446154295816668188514999959369823479869788544247358199371449339529245898149663587932754254208859307846753463036913122269816302255091058737918278557682850616645176556886745225255386208550471102336249628040414725257223202823318857527573192353405894104597999073675666886674235810043175089309782765141326820164707252869806732068525675834753671094689845871090473022321873199369120549937393658965960929473476116068035350849926875024867644474287345605975566831313439968914885058704154407410431823333739825853775329852594458924191602392823072194365284651996191161736104626970577147224593297670346872737885591517369099823055591798810312336492500743062991554809399581057439708843741677250903843226352451044992194287223752268739595905430477773509502998794039618837491929267969870264686185512655426188093942594207764332021722143657789848780454161605358120014161811561879755194620015163003656407215645097101295266933531737933153714919569342125845523189120081408287256149265025506657635892566033676397158129804741780970745463849829624786355288165306454097340740783048373418343589729408058980603120651233803983361522830824409224563779059725128514429271598160248404743163443964367839013346769810359993968507305678113408671617469295797301381219117940492049132448271154206645907414717900193363693935950523383856477809713477462332884373493061168828413290352806358667854683176392091247863745144021032767651794980646586112161991251231446307902701947182412727606666308948392558377212742268007540483615261026483670947528286510845826746831205998113373325845314774432739686105161367945261349283208469193869908963656291735422389574410331476433161759838489600198020456820058044469370814615236783079322787822160397098038165816330261541741094199531526163766066904355020658617914630528228624723463778606174232285425679654266706117329321933154519267786434451539818536291734410515041291623631469408249914623441604490241919127424550437800101561378056606131134092487972434685537985216536817464554491477514109849866853484002902927291410186145951796037254168526785770363989460431855500180217218605770577289636770641204061707676467671764675789702552113392327652374129931526731955840418538058587192490386256436528456047381736061221203010537700078986643948692658369215234763127244016420765337193212961441204598278194274228831999892572435807539626402135938799300288943807541244859507659823076590062468243427387653544212594947522284654421796162013546562504172851366502991605747741970253382105289672301002203781275213740942573299922071400488259882126234111295500472697670838645163884922229496739280354044756350265150098303851199089446653604127531762705290226207158950300776789810836209005807118700990705074208180964362333563047346486156045924372775913012827839802712025148904586556949481803503916606259866030411256873243694935206694776929396994604190489689777120959203051036016037318295834830109368477018266790265526982253787781903209903066322716462382822860452217133933732694461271303569093479565495016761452510460683518765649176482030691671232333899644112247297641349197618540950574288468539439010960882674926140986084496777209793535330534220862731857183018203100707418999381614748724315078013397006649217131767697678732804462386331842146198779395841570665166865624446548761567421807185629277050761937535652261258367752111991928545990350185966719671334812067024337367700493443179897744653309317349356141150458726022880503973739157647991906550940830764481762189102575987365877425149214402035526908493602128491980130680851518315226513777863154587116105495724584992200214856457980399907505734854691920289680400100269273802056566759084240757605798689076411326905166784298542580715811709664205172589094443910808720125316405970344953716951113986543337287215221082592965505022945395762816829343880742080847821239526018445598512075825974670051813754662381737306079327840585499322526584437336978087908353560472904830253520258161684197806853313165146418160486142366369474894411239304163105703322286604427127991888032024289132405679766238331152374895689293947957813034951134088081046681893788906590786191658442810321826796571217991786393297515633898163000671555107612367996835111869431971174600547480159721196131710943393896177392845507322037237218840725590823065215837547921106044378867350596360385903369268236197884670253401401134418235248097853319034952524352595734114699865951818403447427069829729592991796391190719211377923224834716513569672288540029972339829667611031609834970222646511311084093441745049293215278525898620516255611122881363971880761803837680644624709611168738877725914997406493631926105912548305346512281288287375815684713112785707281906836506356147497352649807764071110326650835940293859694447692617847775905821680195136482577886690199445631918651024397195528660371482145971098324374068188702043007177555836265699054252287213873555215671807256653176248270334774683007026817953630552199692863139357931064905486765002206979089322062644850006843407543982015097300374930086437979520685003982973866780515441686485751931793073292915613066472830352897333991932817756394456907475424447167115720697595881787503476963710130527911550668036323613358944269394977267257960021123462332776023114283341982550015540979127725895762714839315820166230025608827469037911195223507676008260234361917073255285689522483351311406257629222842460889295737040011095582688790849198197041745446327853403052559981167095246562484122456428466907315813617179131643214299517485234902597499029826201774043516446718306557324981235711485785940704784502279847779652460091053489142952241671191488178664374887435110196095737623566279329486089200404343615259440710012083950863853599962290515987541975096723637034540733260587149668819539117102168435461611618641673706048117025269079884506861159817033016669634082869123993366762600910207172691070020159144676190126613105297701634307211609329742403260135627135168740562553115380617117315265874412962818789544383216198953374288544378264278304670350297907373284641038904885443266712958985765791385863661080313646762057429882766151957550206698677357527649643832773398868727941722507286046760884574118328617546074163554015502865793071463350392330152460907816898968072192734358071797950291822363240817579736992302009908139715966700603352088332023429679031075906800687042009003975950025018321550326704174859912104314947818698149449210283059989704208999562857714211672514614310034665855564556652534967345895498440632298281714254806960306539471421715554496930658787597983910282680474373857475068509011914207768064324924748208609242686025802378525955971131981193215070186051825083282255218845742883390618700824121297816842981234734504242486105759635179910715723215063013532858429597011414722689758588900503348219306015100449872691605116082034100862233562486802782296779199355857746398569041877452104803169550717569976685007922295023091760249761236187125131607166107253527364399802881690101739097521361711514959047106844467383819626890872374726372265286936718293094892727821167923835532278040315830457283341914700427809861293677792654391342058509956431362029588331079395149376459384442710049271096435828331324359155370456268046305065472284098839824620633464275447096839487297390855419475148829015593898202203220446061780924316451377200597154620921458225677465163752179413203284531850568709332483823046389544760249803445617535528758606928123012623657339583212334624983780506568968876118813053215672747866234801501918012428215318308067004940721008585468964762074629214355376873259435069372014344544035426211089553350979384495735540835209415882847960685413264544921591281295327596105969868969336413259112989253269153612772721872053791593640183177257724230483159142628616376242876437558056958056055692602250978013664110626035654172378104566701037883287759261506541393582714789289286539915408808297401701159530430070244918034193020440213842792965766340814400394731841740110528506479393012684676381785195996035258116126399970789658614139548721559924797434186476329825304872787267298735997560355826995402867228633055424087914635856860021945656016784646105577827883288302524801655629063303142783975190153041345272314230710617962216534501438712619802374771059899340650587237182767832356707166046758021670661225556424492399835327623517693293424620815816552173585952328599632650171954274076546658723757314770422770671710134259886969953228183797896807367937581161450019419846484998656332708843889098502495831018194069964866938996351838989100521490136975333389174799755305095024921309372640131152420012639010736306949905749569633527868265996417074146237285193571155050283798261647788119121576586094728917922873643973852856350426223770682476462919816309575326314637590721282190071206984998843500589840145060936057566647293008328230702023316044925793599250301204904878083353224872355528254273188675918145545071756237563400158477077269775340465807839548036596212226346048264109708911006817158694260175980381845605504010781634536085602162084297760516406218665951536233352324441250991475307599137633605478572124259006409795943578869824499932682279840078223342313365288143811534826673179755519642777382262370264264308762690431849669229652413133542215534394440190073755658545166113707393696115710387436534421617025020531911258107075796716959069215437932480383765178695042393250091753273526868084950232324474730850639709486808222607833426849189474074184163731475455668144473121834780342207303296233994922317636029374496417104684911455676966000882206294185619847701924120442524515939523006711088078680947090693241146535721227976215904746278039597116155770773618245562181754538736149433591109733034803099738370027784122580233892498005921552007080476517084125341320650548387723292659632038176452735648875969985004181855038320943509863214495308576953151989502175046902195667534679183008063922701317026261111111510382039643093496633090556194927271606424871591147604931386485359012965609177621433065573163227984724479865966293652300718570001724263735411032790455276433965007566122102334555196060688525546231890861483873937990691443890752693141224072073809761527590685436200119510012176982215063628984526519785674329781592137967285625642638057166197307614699368255136990974810899054042636998169096285265283365796989671133395583108496763576913900134324501228913718415164125562406721194582350281700815184574835447893973188728460614636616638515760947024931966362435528143794179285782738931066645727950490179831230049896220243973391536452369042606228898268156655336648344303135092741465396748400481890658086245363757884488918057231485644633214340068644772683876611823650067469416058569413239118928053715803512689054506705116531726269256762988273241349452683670787084399942784447707681390722450043934917609991421340520904131175748340190153540945908098480998755461103753575794606716545302758534245042836714363004171475424637346656179311594826161058141386352550245053614992513037712518810614863646442732171868545083060807797881159619997738455430528396542176971623368866761647476689505590109861765173796332689539505213935451742472372404845142572930089546302182103653354582577172737374479384089855266116591723000519682250167633043960057554150618096484575112241556554478022841510318006131590478150840452391915242381698205938582622186844801439180159145885311895396862423799453909738884926003118531393143838481332954662375498291772802675774482989727586747499593526401841247132088590005271564840966968678214144039156469050770254832901241589957695512877505422227382667123006482294094584486422218377645025551811509042995714389118721968021835124398377875632993139150397722896918237049417854672048722889704530829586785153845246477826008477250374006032068545591906042905554869043415651193661498129203393645273603200450724934982108503936212640026285375261330934366940763147134753079007346497194438476428518908171064557931640039966913721084170627372538233982724084417106485632040340296152047752539041235911047471140583838913832649623277253136389447177218749027545954621581541556538316741287733229001743934543850023582763073391654540796683230509182391096444112859303686278520863953935220874577216544913771411838108272421260922537276371394702427527512064614842769116710047925506464328324094938676844733419976824042266371120862018345393474494563742664128794346874397260120004044513241479633217604966339475454015600069787513843213264337685624890123747362538595249365467458260306158470203345945726404600979490337286914661968379326988670595618872329637195319472043517400123129142656560096262843422069207205889632080329677017316957847363977078485587640030257826444118799779327771951298579084915907835350764041693828621618096079551131972514451396682468631623187495026677358597708077021696582642719142607215530938745725680361571163136433312667695660704852304733605751250406119963322120315063625180669903949766989355067047524633924278816557547128414217000786969715328208534159114195253491798900485363748755475274844707711254599110119991121400281716837466090212388515567091236852979741990288933086847799093788697974852355948438334887071367270380626463892380140374724015973905077364619588783222842578599515692814817617754163702161236087661427711244871256502355971474396516928781953927691785181334413775707673258164510184945096861446541111523291314895597143059425469138082812533245311799563722305239222149765178183559541039632045142293621053060406905734700357236709448366087133998206914608595711304848511673357582893193583634414061749617784029917574932623058266159085995511520697547954240956401508960874714396076267270871343408807647107169561315997168291157629792925674233947143075595856826638835110931393795827658737442843617919254662323531471728693818502582182543687995054293766807131856766781939027688011368149487714354110135461012244578976781506619482802529260209814487212787111579599551612894612444434306747040334601497494229934442349715160306649596717115349689875901357371707225633990731093323725294040399452504450747485846397835956470245382724028645867208533169273894117192243122181701878616120808194016115761698159447658075229818247418796395246878331549275372037578972336433443623864285197837248617656405706286553524090601868830175633253630965884489032714920619298803993316575776870644767780195697288204398333294045518938054353548137096133461779078143388678069866519172869604143994079428767311170841744338058460757345179217406165760705466811698043847649164690952091760887348411670323468640396604318225405989992270637967785835918510963094327850114620995460814981991566085514914573007410914003768656290887284337080410563515389829495454318873284891829466257366764024676003575301998072147826098620619141613430590267965147711576537122183558321196535567131174923569623989212744870951100470179174282437963348219269140781235302442881349257519231195205635427079055662106986617907364722705538335126789560399705973675130676096435297905061287559183535919300544962904522238254508562562476957976103697699958760349282267337442223773446930108237373339550776403811181752069228542576284189811776844247557666059428983833747078753441567637393329485083907143486602281411880131143477261465315008586509090195257522081336104631536146943700104434192526992254883123578927972776111867291848907788749040006259840346730832404074716188943295061933033079004718015435748956154502178503164563429372441114435041263012844819645061575988457813760529533962476282915304936070015047892941672481363088384445770627685785450215863500456381306350341680156490057922139810099335975126122009310394760054959896705620669861412427633074767105949377010449694740905334014470434457840265219109269839455607606297894658036459268370506519323225996538853537610881523036496983225328099257202076558794155372812296190397341361104002314897369231417847852130125597909276988515527930415533731587767179907160280991327641791237579421398586808989793506936639022894441518347459933310685010657544412531366522005585446710076351233431303651975222423596867630180117139500031421449275925392371192253127426979607450682240157314735085589108657474721274260229446112754845039618866115069628310066418817025250640743279601328441189889124209902541867692248351931786352410432390499458865765088951453589856762862808068324318401927517369151336893385978400714436798391575608347873739213869101772330398193234460349201577615641699134709380421783066165064128520724943861815406522002905715142564372722132826528148961380648706132982940878244879665308786689628235347519877416020643761670005590554294389301095280862317895300826547934452935428535000087044486637540327612703715934608705220523909873344122986753239153052353196315367790647563013881772356454090013908475712302400160771718528457416714651283245091702570835207838945492797580248087290419143059083660876437102620148115618676701763106646623711134782394786467801942600966302034207928518725038045397445814851686478500212063666595565970948402806061554701623077543896924216698998576272856708200668291484879292239760827780947779545853888362315249797476204080019603832645242178796399263307933436273126389933576643524037927428430830786781898500151950572572573834409421164509822693283440648463249116100494195451265242096012556558137542774316990502920096745393540556890222871261445778125985142174798108845112634747233106205915749265320610140068481084436515459326344959715081784236705532925642195349835682635812172432716464644003396433372993685254056454134753509207291209570109697270636826170605524225477106590538473782775267494705421627040425158433888056347056315662237270962212863930850821744582464130553977428604180922756195406410905158888549612286924161693910278732594310248770615039812357908432593992817391778063147364149691986468975004282067097686820458309067077760094559531387225263958345666934469221192980104161527803570028903692321570364986672711000033200819025893847052320306384383286906459122162000175255504800121876023166770564928342098103422224552420788329929203197947887164309807900393896546127592235498923916397918498973976494331813267453234328550897307877291482172570750670163512598647742509382124224762243374460337352455256029905365799982799212604359701943858194323189441615819764912869997367526445151804214075159070835926668959790213743604592577227249188485585616555977369894805518567642774453664367835901377243856496994978126076097033245398774962445455417727056197358134603432266126885169008471028639368147025766338772683645665446479637326842678923004349210419227526768387243423194798534612261018295029527269854486436608649449583970728722073943984431691344905303641354280075741726804178866689501398491209857374174347495816188435831333097042426188181892779230997886165304936350365077454408294790719941074225463320826708733137616582850766991756747187788176978996475595368862995136061484538964127742732301025950575300868073491644256358502200821104930102571662142849513077206557673277423506587782279160385021033531599551685376075557144282726229331648662491624363093724338829309451202252165719344069516147365331775623631295942736366595011074304722319403759016612431153485556031833890721846977533915243464654341294388251495326316339153931185022688980966265259196760960166330969824564215835752958448434995713028704040529691870842695326681513295091182449919897301397540311912531560735186057028068982981866546087127343237430516533955562906177842754735221466060396697301368802122226459701341347109944867547956443675569991948628817261566055658542766783222880068405309498534976022452037634104074978628866129705343928674598737997794139199811705451249196189384917705931206359152168877510331707763053416089557595890710702115058210493234027423692878085436877350898393567429808154237978452981920741326039899877816464793067050789695944442410760053663253310735919225856373630860673674245169702894399574701669597903521052924286008246458151918501300649153408198460216052071997162336201111785047450739406368395376391643641264848026552657587897113044368749943821685894419650414318849681657021897054157717309721010184038333967700493028882228593446274289538427466003520225231722781187562741578104670124460949658639540181087660066750456443486577623306386281944197061518477120343190533153931482974103400922941548091664963287712010031575889983966890677219037036192047709763737846518891397147009763103641946167200629748013661029241636470885237625961011665812467462351171567460394816547434447312821419501192916989801132137863882902723969440682367715052520107138211193706831472985450124515333634973900393858334020510942406968802885972701435316527285775921972371908408768613651921076477140796859509606768331291781572486996745054266485289898350733522118066902482427778441223213868375755909728644367741186927646263592905717466280166662489304455618196459138726442046719009049641706746584275604580395835191240180400353426592303429913892829433309482184689011519545545521873993216849744810077340512235130212423979107741548383816178978042881133932601846714808963711522264729329542428678270547797574349060811450068640502455192660637504693144869212598697882575608956497072980383858987363822219365174772019534695202182106621646856895279995446561450639400136702531031196407437380731312419535222767367226735864666829706949494307749744301690523013544705775812182070261508075642773789562918955465417297972606489165794520810623316145297564021873252550813130970534866278878215609046377199264140821299797549435960377414978005014033963963947561278265197392572887943695801655941895388525920757069257302646975166872242862477026727146643502078379338250882261785648429869437277350385232898655662075069739178283437623790873480962806797294963308294384792606353604623596400200419314104752568949162623749861925121557839558937543512957146050738654277619213780742735791496503079907496847204987908175320892393350956009861567533219074977998378393475265287594441093367146795060288930421800744787395204947363455359119186606327227160123448201625294034219754249120003811211687726611324182827097839844482005001362544465010609711808633285851992294427706015800045409176362990951134797740327745897072820932779874980194531194858372387503804714199826875620581769313031747353850518249704792562007826806999005408839479805245633085426097681035229616055249644180080773031575017976456633329947797504119207781534298312023772315033925668719266312424344417502350545488118625141140063582498752649406396695720415115467630775144234250231560100554270984923947383848670622095482229506204184132815478080484142021342466254740522818988834857879533446750843887452220621781381930714737489201181135086628825108577088014260085011217263297395177574564376488961347073190149073439065867434684129266549410382706400841682689864635951366261822151933298543718106277322134889897187333888602847535294127226208500753995803272044852351346071573239258600058624141127747960737050453555024037759011675975970589388902038582544745081380859166022247611629009477988610763430035682665266037606718369971454546867975724772435194607788754914497939729748624392012751848420876661982685989331927261655179978526703490034500836457657531838980470645303180550152529059041702067907422768924351685686457786902850673678961442813554489932222936918911168041426632688995299458806141919945188855775431886307349256364021947980334759650768863356266335612799350230372460132394335607089667204368074140152723951282801643600130059287729690732029409097077405616284898089494444779713819354974103728222093138912913238195283420270611140355663110392493178438883715375908549123073239687775376427233483971494867915944938192514668423118301702976213375704213464636305970620151385494860548324541870337487920364538092991990236021782819268893963277692406763463617758149799864230487781432107747331796627312626176172339271087665285644432004029200496739188026586118707111768611056788381881906366078030057076256840930564582086312976922652742035277849135679210085741862744368151800562577306793978532130211185913405859405073283282439852014914354536884002524713591300932995441508466539620740439083002849373434091535273328490658550649751392840340128689316505349007907334134557245939557540362536633138494756707257770760426594011633730217719498714996706469672333163205572744753027996086503084562813718696242065228345147346388783781370666682218409632496706169118004712973657597377260297929533835558249774669017456522461030806955352658216849496309663071300366398906811469428282824934114283296797289050940086094300568922492238612507441831951486000973805412878107823899247039148553378165576099073504438594367371261505064325565754000345600710186321711364862928327324700615908801635739435017707481681492838704886889088240743893333295933333205846252308837932228606087752677891463550212600246031890474277125540535321202686179959898102771436706384004498309899379570785095719835759746889596023445163108502337220993697143531327332555372679829281501759960614717180031490507285501778163689000093743817570841952626513008446391880143213226566994862790961038163984911429201287028144208232771572416933404307923181559093214616473801710864386231196187905069971412248979203021842713844798739712994643471292489309875141816614785600446097711980412728815927875237369482215807559058205732939185429183018056462500819701907631247467634656576309245325007772698368264438111897804505876625801571809728029160829201278553863535992450313242403330142147282241396240121806601204602015601705401431144583202837991502548494725550965267864570111385902471111837961560032753403330542105853264367210792004472759047041162787620820652969964083811467353165909733108687367549221001032439942801578188519952991790771523038639966036869131435728565739920724665511020549289846113239372356810996467215745704323907801578156687727767776777969909657519934500820405952619759312096784676776171288016593989806834226284159860918960034927913430315774762572011316940836767452031680788311581245822820574797593160740860454747385877862702570929593823591565874276530933828950163921314802541495721799132545849171942242921733964464143457009332495645721648905035942849638618245010128723458694167507961733515395710193211266913513741236986720171434730088171684862047005875925040244043985617753506715426819202139505990845992743401605552478384759510670237088999157850947082591449599672071912967483313428949205887160637799378394653109097291374361835609155599353268319445644906558091516719178692198696223455136893563137300825317713905729828033745615930359240143200223816381130358159903327232108194727843897816902157150991351178793215909521258349269407357908256322516289008937540988039037188912973711257778317293908554043437547016888733941273358884526455532463926171259878564822555234225154111122368039252229659117217299664087686334952551492641412603392465945723480152728899759732063364479198894927713379144936715022457143529083330062423613611757034743620063447476415354867700428305699362249281198263782235588987925992655055058257920596919471719125839557610903210510339930498516834304306550242598733123788567577034124578153947451895762262536757461813926978070544459526112148478303102068299997484310922953053413519012797704900303538986217646748681459811719653701670034836034822704763174551317424841388076350255060457606849123555150554123728220611481928501036704064386026869759245305002442525731083226303895989144122028957579049912160619974178468330297965700536619779474573863512637427000283146355675283361546616586243007478833204631838602301818337261884689388572035983688167178408874635486737030289415505549290755811030384082173382628564243348220786120095525327213200796740768617089574381653787593725200689626255670310887816271107418264861381211762164481220573548917421399907641993476675452377460756399805627257888513302492219942886113049553882676798962519844013920660913001708743961305727138205424632378032759169494278110359538631589806797430195201193591206193315892599425445162080813645167885210188700034815630004171839819645289289213988620558080766445251486895354859384816181913202697465311599637050588588188395517957817481016587440275974990388482700250243404371705763291851610035031226170094607955925402579776219853266568212001215654077116455460565574693416485832036010469213032650715141229005718641643343056276073843248474799997831732345471179569705898114398315101072015224237394187616668958703244950106879477937071199714442999558129714435931455126356757867936401381281489824211810189402254525793448689196739304654726149542412423558545113295755954605363922121579434680708808434972107627683176672983076440850429055563104659182492131919953403412685068524138949131932643173602919625816305902907792912949880234381294343397205165380586565065053201538939823550120205108529546273484092670510776515136487246813285172208940288638525134607137618347016110963424973577779508578797618120493589051658686224795325620500413507941622932758310261243011588836452311663701795470080488756150276075288527048619645152047426720312257034529820271606196998669078930998340284028679638753274195600618029071598772668350457348340605092207048124657452129528623113109757997957261777760603434419369368642118871494084961951412300997352618902837548717672219372478086796153496350793528961384215121783195426184228298053129790702556877084009956620869845871326799816788043878074832764842727639633553548403812521581767277398545378907912140604786723669113840294080322764634152154564479181293550243623580320001975711792633724054783558131818230277284398737176345420311689371005273948062360871033651616129123560093544348532168038577229314162924657860754498197351190188210874063305906585143326384126958877337525900789901623251708529311993663003174696214347283440309065323203982633896464514443316015154747003668085486617685829389535525160755991349560609097265268634389610481064318320189820991773740524541563375766691075690998932850466372490998993934421180394604284288546367804080129508145531328878208690264145443165229181298641405848345523371065703620412425356061279700556934087297891472780332315611865731975302685675888995223691008605485971497599645116213577108543236943226185059138199944380713473296491787857893466226128083626349553910640191288715183347110419041139842779392862805494937011907295890370185805702640241363392413537465089415568925801869401528908169984637111188148032253919808151470643838432417641151651805612493369536650388915910592921429044700671792251179466729402799165911894571308768041912504187175502715742367109676996004823230035891079794465735059504960680255266943587900244818955494219592869375907924019213385359374575717767703356222207705666287302664957761988914798713894622382986732220949151082442209860206766884815291078386445099376484069074002456384123637437449030872581073439588183044858873774039299325593267617907331159873869181054731266902981353155715391814550365770404755459641476773631231246011266242310486029223787395943297568880546951177804775667229729532798969698418238144603783200032527162336852221413066128502134430721130331847803995821451176838559033483492399697055831090619576012127202166521528000351547908472112658930755860795791310503984710060821319250302878664513303285750903542306824005114528383871694503682680193166290735028990651664807878389898419657081619514399755707795971353638755552176893888501286597538416068131733801326821222585351243206269747571422700781299126428040790268094391704720026582322943106748564163142026386445360961674326235527475393962680050009947123285888399607385252308967481781452109978494580865869735709601693879812526334350858734431406819783840005119660372680116177227354198391093636319408998816028616919498263534288351633166621650672563198648095163064486668752744129315466568120731844291881865837944849199255939281196194525911579909090614853128657999619530771753369986267167070755083425359930514627798013673151574821100458444005172073296167693871536786698711693610685936959594245073524056706427828628998835179614409572291059925173213109079564479280332345276404585986865448931017631963314825590118023542639882300001368546156658547502919401907192750987302260768799726752967142298480647529900538820597170050267293220631790242628267187899146649956500802978770333159716559281849927886217563097918745805837498939376868323533503755659305295733932217912149712475070434305988332615862382975111578454831436191395174558773892820877481016986217087548197689289128198752301197688249943155257037309814479957005353010553575073404939267078590283366679557878177137027153455684097645925418398763851998685593125737317637499049598801499848414808689241481243000811097847625991665975554888383998856975638235768856347342630163169836210474779160633476180478978124493045751351224706383286735938039872527634618150593311936248705156032309562747155568829108969696542928550914074277237901633431213895982907417597683540423098436369628660212298404550613774887744870181007334935214707137246529148331928550255908683174477655697261548195388312320823120713601144358737203478588640763486086821249334057580711088023039560588138904754781225601321298417983662546346488064963466993943703032342148959524660435674637894811331542468491377805343415100612127274743552762819323435571660505132166697909650146289802974942081327446702533847091399136973797650030045100762894826616945804076384541786219819092749313110438436951462291704543187438851024156141612199708446316729090261407382900307402279169928356996651117923165611203288516413042148465048782746488577089440331365219896533145450349832409912474234232110554369578215456728517534647217129577460421813893789511651059109899719682154303889186007308542339028594314336205573680598320256054740233507991664577510523570985381730499684325304420066686260004691114977953912463748018240666907414355234221287791456320698659377355998619588193707750309708343438109512630905159164691395492897993635056329380927021201926273230012444278918315852968439556246558585522770925772376164909345243433066929446035727328916337437844368620762776898595045181162229018551482063377935918020142620699395701975976367917057300384385527604869396863244873036215066387469167124009047394388128716835786915672066325892538180258500420163870559734535077582691201008972126255822099075751355606755784861817206950898878769737704025705821164958965565483147445019673663860149151768480331197464506751542151769235356120874147062369448024218348595629379133073549539254272854840347652535265198512306510489801457182048153762070744465116170491649618705839249304782586478702963325565923873782286892155477999502675663750946945363128643056839057440693199229891592864381250582123528272514021101132168997114769108582307406779776804365629107132954063166050290834747099556790555023772313328054915222329838742456941879487116544153969248644272587626630642109038430839795388913813928856227401564308056082775014889124670736523389784959332740627323026929741603193067584631586496886178444781581080594600775677471961107955810274430748120503477827083668158155304536223756262953633906711046691636921709052346351266361898180227360165794106212412083452974110943623428166679478127111510486821079755923346364246222976852156833444686961420193734401598647457209228963729295085972014075622209933162444365660438881936005245569539745120870438898347315295682849922053772840731090134527484790329507328019880817197776173916640884119014889738017782339292791449711319081694718654263895382116699673864306603843241651551893509669735903507443829164018155873812505585770118951735591640400926588467698608694880798661894255528649515605634086127801915981467648579892713904110463966208291839453625157097061126250494808306378392957172323657426370099398642483879648689075029281152002513627263642311108319336799598548958849667829098202724976837074493514689208781440131439895490434249346420143199728048735283188660508200496660064267590363166547200383764643979091930790637487679244901858061576644954597077250342396748747369193882511955190099594954557349573801475465516518275916137078407023430828116070817492476423422530245734644584762159891953157366540916950923523874938074503382057293634404977714597424177823303490978677178019350871696748553406948217883158078333837418269176130698783639190195311776304121983188242837682160804004571267706525023062932665512948463364922577998658027657845311391848752561646518966728561284022217626542379172034531910906732586998888478905773565443555603001388610276569240898613346872147471460599244003888415956512114312263437254097627194382411979606811677736371804318685874616052584248301265531690357048627606775947764148554922828697325546034914806999147091028564749466365763015933555432067317974045653824357862011649161503227368168471547839519625061470589238958430188129332358854748539212297637783615540274524161047342726734598592483249851971326672512947960180403006749900477310247354439574665441056818371490517896189509018370221045119096606532495466763084999676286221734177686361131821109514473871730408894838590192102938201951384637817355462408958458519268545985129369069562443753733162401153058662880232677707625332557389639620589418678766760626517025596410868723845838455557588775955936305816176825654447821395416236485493481917413892027376675658893371868949543582272296849144723452943914505358361281623786190028309731045501529093770831415196223673687961945634680550545626499680137719483671296263449757706414428166218555678113746244190057285902741275783588121161852063567195708234825175208415288806412441923500315452679646558248274006161791693664536151852926310610264691876618404698802913715990656408272194391383938422295333726024641852195303861191689388350215494797233151516747344242767817324689201712833731808598017469676428478990540156476654064323259933848636673526052816026518690810743269310862749014436137182829272835448463437312586743690547530506760787278960960508259527152393335180578090000852212633292600998932120262980430874651529386411012069834705911555022792249031684863993526256472435874947235439574340863048285128456173521510239440236027230828202464540950209896346935336324332650308293704325235314927523186158147401968439519755667667456478544053255433228135596913536883363951307400616100605943417146641064236353807822925016258297213603092915012762308498439685054678545528167750108624738398604500978222443858075678720391003011603842362595673961815824393416175122257865939011613378656083923701273762149162716669023235300679991318614323251185094553664613139063055517800450270660661821938487792944842391652530431576885597730188067620061802396597817666192981313999409828787569615066727595108465947713199214442708992331741768170899747767684455261567467548062294607435613222129754220349994771546089762019342476719368656789280577148156612420872734707739369923069753893785170238658268273837400204898861737676101193904686506942462768495730122331610149479814731742245563290679611167628957200094721319428918303716586319395520698836381328286607120737776088970296503828021186358654422110367136553766062037768838715802237902413801673058645914751672832144708465790739942870900816746685380333100780925226712117626111752303944295741576224069096501979863308117560721811016247909170384527024645570895314095894820912326776849961994592818744950710844026167480410732588641333799429298650861233022925268976986747950108683323824181110486249824934401665204926028580983752722246775378894065761349358147356876474652708451005399692962261678454231823725816729357363365547451693860251233049115162966062298112671651131958734191779843734512606080321516400465335939420201759871600958453451241655511553127292137972732658227320737560470208568524831597571381924019131997479917140714068148731064261057974788583812017608956798822252636007691874580558769254591387647423151563095251978596188840743892375998064317054729406178505702703720084801232690051113784697905362397885956339126509593654254570150267730106338937831185989226444064794533846513304537789425938608654948910106701467767570245891429102464612504328479663845244745939319927010644220435037465124052842518377280245309519808198800687937468738116083346909397571088592493243421608667718320051264110445568035427963673598662622013842326905479747265194009096080879504377315543557269139333836667343919954927938016580825120546801329452640503630758269656981361889763857012128070009647415698432935776353403871923318729801461932859940461384223786428625818509753177364174571565145909403728343235964771980683873911505961237210129097827412426212141973219924896874780814417988189814781227073474758881068718786851500800382361101477303913853652009557245701855403499043538989638713345827856369888364218802582068631713605706881958245261563749829780150964628860382281320000471129625737030208565789305187806954444238872159425394215521949533903229478995879069426368231349175499816449181059799781311970737211215216920121322292362167591619476700094495942170991220477487841400517397551667823025292504863232965013644936446545832708298441511841010645774020597165742985136513999757677287452571834398895961118033035545169716492377790788119810762827736252740207440306462719962538677889173985798516614829440646581076536171290876570154135755485660452424052856093726523912096744884765713569173069820527196860952937277853270026664999391254816502084138068592340952818244283412441759021488342920634241086331894443696537726452100508037701764108099126784617514435163991113163815893876402884078531763533846567097417722492143921240444286983118928166443038988556526565843133232684744801226058979235228848686913520196542485548923599246377085499993600825420141560168902462087859317989830067507458565256380741549568898333631589507205727168737756627520396990281912603414921160552340887486788891413037911633057859589383368644826216789634605932931218072664750833295847188173761164276624503341326552409106080232845829042909260197693685520328242821562767434201878402480670309088625839968202775350334826955255793369194439381550259598619828152409879197645138256905370288900237458580675104139682493620354952552755910925341979254495080244725887216331343477893694262228486640926237589543310958920991540025801265816178139646313632176943320306186872814755088515827539243651415842002229793764297888333878203388118209753206886580925287856779652076918272813331071691275617758446995437532164991826663584382250914910091013712859948738259519858652254183377638200976490340091781792598630523250071146195662900656706871585428207127779178485416556225055839041344942932376758117165028432107014517659856066967766373860260819363090759912741025709540155753488915944247615511586525154103026242571847442408001088179779349460365221537337285619053231024351738693357337378508795882128224285570910930358857640624693796087272513131123699905064937676000511565453307287301923342446045466874662597400707456538679451695436040258097073962993116575326910424779676808397974955204390943040832635810175524513905443752579088090869353015352407305167108359638575947780201004275819071280604008570357441350706208258628317226281641405835694549130180176248061664207304420673666572939095104624811050831146849217231666941997010306645043547211019678858161840875793627252043332380349704651717846692608653069748739702574355775417355165589163748561515434937483408935378403552411805830449829886814738896670773725353514998752661031039781858939314506171521101685055558709609296346322124296920548167693808285962107302871217037208602812501237561089305623366854785739544264708700635239759012340529531711774671040770615843929323460869120188949667604560101998690475714484732439325293421209935644410058789940197133717525650345432231299431271173440490420545620842826939963320353754977245500720933466065471365840515678204584077485355707483281082014621320182972459588064749539476018303530981247447257997832644227914112402493255793990095208214531444550568863728576791253166177973773486707643442567772697275352194559237990141316828764776075958968921145621739496785233381653712805981782516626168839278266041940343610374721274845859648623112866577726786981309841449301071899789440534396016929812153546013881722225304308587011846716606479836450355407526565467036938416919538196301015320454175157129982745177812674488009881185504266325730815269724782957463228875259914007801854252862879047300623826021216185297905804986231739526764711470827421242181114076236781205854526210980905112533583622171766533562672270556025210479133719832111737189266356359699958423294247347997537520043860527595812147473596506717595391701976462316317552894667976069002913897061623451752644062676195064782801470801586445211103039926215934287709631522788815266369272074008289570512790901882961283239282740664209073530313283645137167356865392317058825694970741165514014416351894082982224540331987150268404566008629623956325525527271606797926442122185255047479738062096860778597172419916660459597363239475109251917007521747169136291792914228446593326154583715586275501439904639481730181402312192117882079975375940441580735889105552613646404880993558210965348093319597621876939811644418854071813179016429019286288340910614324753989643928060857476565047565078713047608610772069106841976714750970889524768116438716370117787288070865450793718495777826894912209297264446178269577658430490150557404324451581512711648413290548974977237694888933889221454639528768151603474073367366893461671211375198836529183825887107123542923022764044072337317063909015862724193361229319954980909186503000711493898422088617267388485070375027166380083629856441202421495035020061062262907126784169626504470186758080540951101161323907963733613454752446120430629956879201438160729852577721054993915305614636696521539671588239079678478173160698189293452689343045659328595702493200607798688489138057458267354731685249781212618287154264549663539710638267156776507152099014458725962526003250868558293268023554555182754695098121904835498004050266609922784848482829283475173244428757308645682924890116345023328688871561859762802379910900623609626873188018554580076418927902923642436876496316192729986366456806278206795703486116880127160343366861679934166497386860143994348872129437593599416754908129049180190085087758663746422169233353865236915408478827727735844022369850630615487269331540128686574142998189696410808485483782558743595280517325436697137406317078232510579472059536938311206938233994752633251582823134660409932003864924574465681558970862723076718340131279885616045266930534866974689528024664338917795453654254886088542276718418709236272127046091105355806402127749018043876986148787620310381198695177853879192979425733500035902587547360769979871000481875945479606470301051438097205436118252117493899652786301736858873508116176887403259701211719919738223362852669310376364079049299912874476224645386017554545329693393316784369201147395142961689504475183668930505161077774720538567987406821741460917403885344169045531391200394734211667530797418042827017311159570393768401102762978774171052232100778228237192995111939211676573650818345500893335979241457901132640679932804811701775123608608817621720357608131293914966754417281664976639364825368854353420561721744081911467750123388833116509957031215054743590104399071271809780397703129739714554320394943997628063720873010207184212464825634025529601423373895635652519898000900011526687652783721802491996987530501399342891894267812006014515271719377898117529290397325478263066210987063674519679621097043458034385584332591721399102081532365130865344850487817930280751383719426360058129674265067637171022342932097645571023311557899045362729686133173951875501947160900967612398596983387721645299210189938384414126024567414768621267603467476047573214205735850369257717417846457525279532263245136314436788667952023605267282444639264951367933735090431609399374327663624705114224132802753482659241639810161709764142261594140617798298888977156569662169507545787120319280402377354342644957694363830573567347760733348025791896119357276523715178299311773315126420597302901870267898203971706707237996041098769837641436981703219891160448009767638233953421553663661760855069156319881223581037821434421655418553586987296743374501773658703392820239289892837759910443217748740512927826668632359100692432027575644842159437531038052411087599148580545612681982954275786995627833175048532438758773716881919294414827239485450467596089874439383688642685845926927852710698975864306088116418413470521476989434705248860401578858477712580848445217390635697484098118389285573420470771138135769020088961532096440511148842481301703069378056819729667509047838127925470777479315547099229423390028236978010456599435604930902903853266110855525208480738642580620777142420295621199868705791182196246148652709796666135656984506317948398279594829449690633232888762047328483445409380441408628149058469623061657847658142722943241250623676598569192251285651819744662707513194674130391457502524694123519849462901363278647429282402122032344436049806483102191963262196869890359134836842047204164143118990225928967569871134900296603261033836962599567695938624431013436319411334189672959245433333818394530394071688883033816560348188300979737229959642147925819892365552189314315903577487096966627760820396123922492162177340647550517277222015702051391079101245501692052106250151301270317311393633408658786203267075644074199351780936205351265782557553804588078853559978505918451752688221619713004091815209799484512139075578648377560679504395515286208571347281425937439579483398624451730028469948002508298898168833980751845279545887699650925042455841543558463532962463479971420729539102035858484296783605511712442781337873695613694153162313791249532985014531717103824634750029760970897909396351862024301088263139491763407433135300978849420337965507461091835006143755774421757404203955336817095356339214786200904814651758799833446833882054792958933191566811981479619223457109994394838535076027721491587090052874914264544175761160507937937878481779448881185164013597192726370655247936258114265493300815050922922406734758834050408887141299195413216685570091476491055675110736214979004873195992250693773956121876405795577565847336601779962493197481779438954765385594817824680932094192325464852485100571398815503178221072068617201827050785926738497802811170269148699467311209477840837429495403785717783992272675101249975901971301538753507712362859609984441996695756256234609372657420065245691618347467932030189103840477814609267158047260901205626384125029616808062786126117256880171210286286355509207845538496966389366917524373306055274920939934201995708563607849169856776608098163656074844799049323425230446161010328554629422799401315916592761398762198338662667443697812783056758977030215322342231607687759737503834055894162874068350063490310966742960448689310427819708178844959772504624399514421867058645276291891130303887400351141412976105560883205622839543328103696162783713023089870668716219395892710664444657736558339268492494975857357031602119389157122182793926739839709916667963790772492338496197051932578235944322042825446338972161810179666082939115961402333268760265091573496683611413327396591638560546358115936485594826059745430516709473923512796415533874564448986921569275470218809002953274484199256220582581327218404068889424352170626700641013556986621796454811349417477225484673485082815508721452644778312884081116881434533109310894474659017523936696323406805230291400141215747863586329117817511065835294522719893328943145817415451603938320019572141216649289035043155582728886772889385761785608532768110321975727008223058495652524599613112863823975440191911594018809284484661688658296335348125572340410054064787093671423377470447948456296163963265858951763594992687731050126627687039044637906025073632780193471886019603902544047003218409067988463929953182094683400220786440705586277786108499021289020875753762058571506435518810054468600361482958977923537799378396090924350115087962560662727106762850758332422540659070915686501999937411434806213142308059136743938129343139396117541575440277128573653999163316740546241398973558977745247348374014867760370984617613268886177081429580746194417067931512076969027279427467801286001609590159015502358367081946500088157924390680510568147482054265296256186141944324855238555731498428246638047831554478297508123869997026035448027377078342864360096042381808019901721796157032276913292053359920658806494551291577286671568506613283796335320398732452620857938798947983606063582257194276985970522091368768139842122492186461604139590015563885423443461801769412305663370316980180149731700348790783419125145094346820047147847179652550312700077108092869517996581600532875584324872657575232195420207078458895572327479245437681802919192287846639158521681638153354226314923080410208128490617859420970945520195743184325708355538049834751342361573160298657598807263121015549777944547558178459772406337928750872800223558360045950265148435597991384790146984600361301761541940916260712739455353270498944221415711784403445900881331452523106389835189053796763117689808436944810976073215810503045865643706879799127198144711220280553456335462024810928814935470864626452732907337348513711188901102595496843868556692424643938433141201186804083165465507139653163288777239168021186745686732601967835855408079973477056224402914563616532840728641186092162631528744168037275338769298021445525792953187275135965802177352350839067364381183927597293773083218576267842100749197963102315829891754546289851914872429666184432450120848700906489636093047979756952688199693043112031828081914455594850440336717090693865002138382814420816225491878470053170516581794560829357224214350988786028698206191059286824523901594498113893047901847282951732827556308117350757687357388822664440443386745039005869880813970411119098918386408383029963902676904007676047133028248704415780308856847606085797147219497354572528451143838683074332940133796013546792943707923360483174410979238313952438507141642924333762501040484014718964829788614202035578334120147753810913154252003731410279599048057507277470348376574672637641542033767989112647213398520450127795073751352116096789442220076015073513387791552581855022899132517867212021238838568642012741340263152257999681470259914262503088492106275140498515716615837679444799538549309957116149765152010269024050017834974581166255402197899875574014343295704314113606753357199302024807000407475616461140954699937726330354280786576794430723602562596884493279350011765395632328465563794396875452274104450412943660225659215394194257894692925285915815161996597365742730847773679894396270701720672314466471079578014235625577024739745764744453999270167420255311148576468825196387794114515141380510407823224875043148124174430042023701379639085461650135600474128599819517762456853400716065736356928032827057052791992165684534650162354554527074265772174174171979095868225499781743524646643560118709434800533089864021812106813177297799000213617920473511440352246267572823462765216799492897139673663469698099509751640659530178366179541549934216200434438475939782870390668695070939409051748839693210470961684607621281190912514309116078293436777083292357960194871775574611386272537181736581626761011437366812056290255837707782755755556139049600691770863668259899445409469755467237133749834088988284014396875181417188573337851462793001450238962557796315986614270913199157730686843269376925942937048024230315061563532624549722756092040460623213772162628964862995944666438990077421658715858541317695901049684844943444742084335814655076938658656073214957916349746704386142166856713662140513653391289242997595879913205105897119726640324334894031026720939778653045773649094451650737380799000757893414669012609344272708568773490427704340303848840847179796051932079480760628122778682870152895079056771008469063485444413253368538987845260209066150302799350423573185509795290454116609434790155838367312153300589590737301183013025413634675626390978898729146447516118316759014847868100005458371406716288106456938520254547929713383212781462242136472838265708226206083008160162280154758513110517137818685751106687607746044930819414541593233424279947813774290658147040117882306498350671657122498469667051260347320699038793759226297530810066538520969266257195424923605479430068433437031003631713157760331243348085698587649121419113743234311304205063308792142744236845199800817568427841289568409002634491864527100974724025104154673182547379497473151482682177728661754259224165951272026257537963574502606157649107814508809124782879538305731029157090053624552966500285068552307636321354576646361534703455458446771731983658625286047253691636323888854347198636778726143902167961539265744422813480117300407543949182677589796896729388090798394066308227329100997935101477129364131482889612394012626823927783782506496455065039490788719453283056514327898764116573337376413204929972458972436808752241336982927107355964637708077364874568833621711843679315444927228490003183759888127072195680873984260447769030009976414420100622532095398707153781008659652998629658848467895920784141987009029450981011789142509857961825916763944461479303402791880357403803785410998028125510421681262116850081837303669080030515519713043531431372196612003338788699591806462738697628613111309103869123266464687340462424086286628868638735531276140755973813313344118124381154177612548684106227799588335734738693480203251666153661829836059904188937697922255398185843225819949113790917413323555854576484816725896438788839958575183266933530854319182072685486066422684855778485950564398608504453240130954402064541416923914980302416661072995250484702067751606926574295559529475362459952196760955485478473677741809083358062138091800991567056234845718771589593408014264498825785074477290736216810379872193963060431122119092238062473071586059832072283827193849668706264706871125167408830974083175708327371597305501449215122500952709694323654012972113365158887142316462796325607950038807638469856801013571460826102541184607817239178196264095938555286631034386250308968894023748114648807765031245789869008143053000386338504220184385730007186233122443845242763342516001686140285534272877230721595528232322287817202983917732883970954288196603810062327188728710614492534621639012751477377897230653369469907174605213528515093080387179314602823614548747395013613294832297081689597014601445016828139532543398091526586084659682833345903102494908686363314333751064210112141854011001562477379575152730639027358812072599859580518131050764690882980712971261072292852294123426069333822964236216404943519399615934009895298443261702736899858473185678740630477203093830404543591608566793131739518289922659426136737544787536898665283345186673418839622486147255512553084067203211175828772743736179675058025774807019076264279209325860163990480576915743303045798423024680479875899785262879188678082658890986782838949644601037372809794018175168933496355671370393147549875919171560285041240125287413509084826108487071495446411687797834542691057061615921184974619850585312165481645508390366026044435259462757591989967927326468068826615066383949968893633771818360389898128992998863154507745895542471806949140474080965651206204774292270854821488146109827569078067710171817279562802434713644825374214467494433922553044265279780317854009904070383510779411325881218157360035952024527137312387256496817494551737267982618519490417389287215411291794416544145708221829601853685825115350259932888443258432318086073742440235639723020552430704857790846400107037398677202824451635592303303215532716223560697469092440196438800498236148553983570137956230215273222898704232078250463514324024601180637551874580614738853766187782245152530620659482487726318471851520054823315132085208745328463899633564571533958247993591431793905214139224745756893162519088069083372618905990774810920601566762641153840576748414779797879527116936943418414125298997561451749040693380781241499876788556010226000635027419069948630796801669100399123658763488637307600717139304947138120654380658626890585972275199529623592769048129309381682962873090603589028974378470389843604436949694980199563253312093502783421193281330870067832769346481306053018967282862830016472245517939522390958956036418693901591576038092426285710810144826238097073569122962795466743921723110190419090212914724554273139157456352115205795132614109098070941441260821733330234678025803217581841838916982965728507573953650412906677843175173916717161763180871250692344495859239425526739631679155034659217591979861755397284271767294033753548962399123251047502695193572226037031791393358595606996347603100447814272544302001585772429323396702247158805074552857605994724538340534539437929964077674472076054103852596579377225191054224118640856057627844754170530338345201170764430454792900959714771937176995443393083050269690627492520800258751568494711171551602034662490315614869057664549712424252231340941210961365443435077505658440040836357116762510550437020501509537075567040446276694465112048664988072752652144614931395125585103881695700854698710033441611013935415382877773669410575051784654928882953142853983286658427906957414340869564283209478209319427589259865703108206132779719014487937958526129949536744852238855791912192239177952261228231120226341490798036188440189222041487910725041186071317628907570007804066607178689784476311283673673937307004948192762846514144745775425010886212262404754737118479916663284332944699772744052894830264646733749189690657328195795460762337680943231017794005731906709732635583742341403120453516409183001325461240718012420531375857923168152061657492263263857232265789880127089027685420045771554020972663520330722593332160942375057944081627927447485211221092604452582941051380280579312080628040740734311816002242452628834183138078519118549066518133524999977269391770044628703579592756422914531663278170419769516448819758584413120262218814301664704028598822476303560467260317108721553657308666522966269554397049085038835604800127546620285087144387177918713036902396619802149510520044664536273247766395355950760845360608178440035143350974415424245078454120946220546055415203839489044491384418900223662323845095265861034528679332595464096524242944917951021151789539972717741413489497715250149493341536038404479177802144501244774140063058790774278670631669903681895039759814863160673683665030793793874591336285066612673037889654814552955057335179493075965194079399076539410662155800002331770922169054987843385540263765622348942096676759967063097174529453670785898314610088419021791325233199497368261960184749004166810110041876282102136371770365427013372320434658025906531261917146029194031759610675766962358275430203519436834137138911546033097029304173164490224797576577376914333208121921460729162778597248923161876866986543574935421230556643279956358063741540930274772253400169543287981535213167991553693152590830525591644921664211169631006505467495471484137221725511873280165071039639210874025179072501257689582667086471089368440924704817689179467782274777333400102179360556687336169670050189568038792590737432982912897426383457762660354643094483752981112608671734180783516150488561389488043331335949046266929243804291075504755392399120069483737571816239594539174198090029513678990227047766041494229773784621326136160989519636495810702359909454969628575402215993598161353294136566164027666399760961708642584748370716992012874311296195286624763385794173485601777203620361263088393047336057089513155434372472730555556365193750914807773265809600878988128631612726855479712800850943274007742649769515112628220707159056920537143041816156414169228627583759987531805247537845642665827902221955646062597425213670039795875004833162080787157202253542274959654824589722948717948179760767994910187589700769860316876445146407727143118487371013765457627173650255078188105158697783136209098556836278820545821380678406541112531095653116813696952660678131752423994742300406273776467010450180979750977637369201304856556639529530058669027444703654714050503415753477391634129278114112404181324568500833705914819556186036615532093966815525929421788863181213373709992315112851312459386959536492469642518211024327001902168249549375692588806094043657295472787069997133138674849646340481234796687378324834839489427306122697378448284108022518076343122982819810605987967533018640278217903880615974263504489184340190232745595861987018374914676502968392864857761222315722317949019669348349566232412739093237888080432340599158297446629165938678637259591766844420932775158859514692027135515798177546260531443993990400188284708329376173362156225980561070778764562055466458593709691955598815747191302048202456750210612353922223972792524563253998410828712331401870216946338364725758311393124844654306984217851809763409756972556280660367763830650284891417300952153913976540548235772532498511441425459452330061488705873234731485930853255476349170631096565371848591455312275530765266899816026846160723517659760229487220016173089088492592533837222757369544097878864340289352794047285318220400845718601181828365650761852796106209317190191072027355762064436170728753046125716899316862283478006758202045403251901533912384824834582870812603507463227643758564065929920073594245183150160826318991321862521477616651993028289742326931939903606663059738113349616429146777349429015464153702316602647124570173531864895387747220695999687211584296527630178948363729002001469739173871908501723732968526837159848319099873373505680709716657380723927151925908355766318657623209596625084265140808722698046394178755223742314594551743424893043557411242609364383517401311850480227399715258488213042054600240287358874649818358072620334504196096415313597773217591081312724279130870226819006947579955582368244116134940955083084072489549513179898970804191833821565652562751277588444113803896835418142321775025247735528624806165904168524465812251577652911664077995701086502123232472585639516381202474148776311069116623854779311580680137241668362577430906769097927677039568935069774663467372296828346464827399105428702191451601222325397567104733567809135513557702491517659076036814086568869476848670888168075072762417612192840371188577762826818870824339755398584130576366381221061949571013748542873546013446731162554206277024665071506681832487725775650103876617658743262902659086622957005490856339576978382821803243476425515816931538771783540158965588892549171663550374177089415139880122408595057198407213967861531691699704554355326375983340770939479435505897726385342339661001926155262168378416801324671772596536909872501079861514082235731730004844093737547721345018864140456450487788431423757783152674444266311394642697512163475092640361758273506589388925459630974573992456817749183320618607919286475968509587757833667299411280167909832716698712708097296834753488434431373574962088565293775329001842788954552413912697785198393792164299482745274015661371359561293668989880914123434626941725672689285549858274636940350110995067280689185280402248956161901159084208843176193695842364391410339918955606655361576367923280664603827899450913857663484150205689362944303997684895341958898283652429536602573196973321028524196559264003396094109088235192401372209308561928736305954584060486820749744522137777360498516211966589873985899344940946884834132830185988818840615037928955660510505111133694525421511357979209377123926208287672969584338740855870761355696274224547621319318452488254758528637445314287524740063788109790915881422253598919281119786008121923220369595058331782200876723319886381617446965481865099606770435833010103564307223659199216310414229679958588554345272349840717896354037270511943157057690368100335049379675814547775082165210681232987495460608986133033650856553402124085256554726939077012269935808376997316496928703126802963072729414027710253319073894309334533385531547921299014556747263529390949679766232217268076734401800673468157353615703490606609668192549561934588330951772008938272965810972900003728802245487063027138522493101507396356187947182851687393641632711700845474760796534787750389855610114207511957940485565511705685393136702366319454963634764228282645581385102345657652299564891399323988241377618135929568417190918401580601287962465646445395665920953538010544025319669989919559353826670561513598034498397291727096290419021398102054666848228177812189913439617747403318440328078200390540626957481299270785317564956903095109517700027449536743317975273652613932368649170357573308722805023542944773031440561700259820531973035806614953633090139243021028649771789143481050477078967181684005000563077146512622143139629692760223373057852240696637970151166432380827688241731925671845642318000941102796895255779162699015408307885078947260174922677680816543511918144431989885080424863927450620347373435149193025128604208004439407538332864195732659153830002971013977337710139891076627826246326600050921475143058769149730116719161714101491929667429771048186599037233563547056292731532881755241760045491097996478810609926370795848297418344656593096240500483359002140198779616371405983109275512514586579304709488090982603820375366438921182283338679342867756964611774490517472739223010943586184113781692703230279322787694093828226715515932692185958682791156855976023418542653360855363926906846715620338851585182716607942483488077728440997024486598306413832995170057286607883387704664671519360064080590089261174784699390475928623239891677541848913829561893304750771416075930705884035611598248944963194506214205833892146343351348349119796525568858666445107046764918415151209405519213205778833160870587751737828864094094851543404165628250638923418841883575949429695035184321973971494911431958533682224163414609850651791292778616640414436005360779594575023862023999436458747290388944707488666305386032079171153535559558805953594270570644016064696919444486477871112182944026340861944221121125238660093736349414644322802346050127128719521852696313170480835283175212099582212119103737717690031204792373492983700359245980624886629788718789905050802847316377270837704511763880297185696363288450977925137682182252005022117149328585437112839643759476851573354629426854843925002175312244746591850072335491504818205727382659460710951230643380423769095037281653924136742517221600769303678446753538310229439120066801360347558416588204738986032174099574398375534585794186439728595164174199128749358161368572379927490350387786532183245093512770832877997692109674171708793585961562081636923582313881166828389426641411097127276405903088096092154253122651048225936667420310620914640868006833302033574019827881672259558712214552520654013430786541545897863876741314270748674711276111761005597454428056473610922879353695043988608010600338870984189806476326364379765052515829296821535504553060187166435395257168739469724717370684915166383831987267497559327373527396395897389731575315567169616234608268483662111974689321188140128919275481195921025169226664049505410180442291155016334179417378404414816758690036627158342453053164235908161904409136685773127060803229392007253976997943438092109527220743758232683496710394237110536374830075783995001142928801880553249720617696110629091964037146011874787884752184366404525000007571379043778739370890483215301440236332658586567254275539896846101325842647023321645742149193583302693129740462312698452263029141474782728321760024586942884161936665707692111916916331178069248090413312901671554842276014882221640588415501131468281985467642743941539256178148697862991092531655510174528061416233280962994470237823193722869645985821856444929069646358725674759310407208146288367287819033447258646683101097619490587295834675582532863381546520652648482229346765352445212365105246573734929158963101245513722740067103719669721737460442492876850805482101286244700441658746570381258035376174675493725222398354907333857681468168509097478865233271769632885101879375990594755494769613874778055668672203772323994020529484337954481681264064207025621023108683437822545046512860402819285268212599416746288853705298565211873540897151024422251086640597844799372458017692658458355353429186715801740787562197479069543567454839273837295266751621677715575164413251302191508989435246231838665365727177751943377110211649217028474084163460677310529993468138393477296151668855306271612364819376526474436404091733371851899402289526388289614849182723121298354664326253719867034651603151038907320074663360129339013651930875547871768690054783258216095809049765212768627239264566841632908004650927527209008173511399278582322173487254336942045278819465621696544099628203737348550239957197592329582298760727726567954213775474864849666036744486975323351835386744371400151097418339428211539884846545996084629952883936486071562574610854371731162876304157153024675976454208753519180122672710681767401900943445197668411955890150174801985962213012010210463902149555427838471526918819159848310023930464718934686767479437364346940301687351380805585532421762710608345645311019712046133191577114515966101297667513128618059511123786128249544731351686679158578321300679092430396342818716219366957834271926650641804708889702257723229184577544161165996309903045701087481230562171627793679184913325997524641556197868723600303819581265973550322727014473540506267063102138173251741916825306883116170471179629031915707171654893477686003847136345505884376772125137845800782278144063477443780923201895250861468644087162885257041379577157992112583626227098280370781648551327295158210441893730222388018052869193836259931454541008714956002311313049097043826412422925052598743124140074573225413341424859915014735796864693031445275210567182136478180089081303698941646734650712479093844407198153330822560910191979439933176907544136033440383596592229447613115163451207826954106875712059580733894600039921619452323016376133757298543217282519457666051205707641161629537441041043249199774235404409590414970191198770338380732965369753232477078469120289293534554685850466249036322355301290461905914038793472582683417492378635229988047769654518061135883570730148720513685177577928581760656620138394392008484007590399297341799399168814921722035107656904872206752143539592608564344891955374311906700865842703637280629681439422904737087917824076359234566989855467539884964915097041349950265282624301689921600598658248877430783807275883324663842730832105063675003509593758777867838916888776450461193927846397894988914576521318579295220466044027097742097623458345081712146770242166810329144210143774992946128078012340858293616514212351177498988072415000496825839438674594663402160828925929215379225888098895927693471177381287087871150832827414436930348593829173572697270248362866428044030296443412596657088364279421889877540234828173212161224784755130942799092532886030382678572928577602677925356457305368050654377895396926331086943150067784109381677647738456344734888350348926310111574563782162790608749267814572022182352531677503350333474805823682657568029678068512428656887933833371211164476577354339678950765482550754727569414961112553203105576225838164482246770256936634879542473783205968178961741474341460598601525462402806336292698529548327734295233720454795955257164045360797161621186921579961915338243978342697800355287754383371847711827829219075598301832395213725295558225272144033896959951240212486608241363966857202101257004244483879706618743102354854010378897895874387779762646816435035609985048400776198899003552530048984520425217989360947699248245773858787533222523525510367781853997603924834360870725804806851619219949047149660829240989579235179988222035661649399077986451426619780967843298032970624749926366825939605760256083627508072053115211165815686970939823752692314473963356186464202599438824450511349319439788578665191090304311261866647176471706542448275417454862330361797417257481884344560837707282965079400563810121436694487757419405735426224669835116699281396830525650979155578240691231532485114663798650983177378441443797761839503792775758805855243641081673361483841767567397759502588638010281966496710822545687732054627284420620456743624096311031383782016627774033349399002278235830723309453181345277692819658030459662852846851878865093294658057268007183085848006688785615259199353173683183722304009257772832974045942943352546948219532907661369158974175614504726766797365944381668118586588846068561711583514713714496347895726733436366252718484658820045274002642970381907228581893114965773298153210312005857409479454634613157114789596590702105680232341324904065023879986755496130360743864401765402241270501246785145138224182682346826212063006205506887749588125321908636683765134258590789591442019167188535709869605693317144913660445553873952697235377918155722518243476466807664989129729897003501295048368116562795911916356010382008533843513935674554695168248303427135573746716833979907604760722845664853142642595817116232735691795851537923148634171104273530666222070881422524282087082528270503559255605379241359553593982498836607288814692069665166715967866056522277212728090529598156657321935191771468107899324353661110896457033818543897557587113013441660943061942111789988668962764476231979339428225164137788333342194671412244378178641426203767102940623314020782767855762007234845389233562650189093785863319701527782796294190548563654386466433718478493564170903640549982302734302251337682557075983290896595200912916742634826718186350326309420602415285298670817357548815022777051749174111242036224499720430675885205737216947199099485711091340946147065054562976705281159625683895795613838150205810125768843206272779309273748193426297445080711317453152823972041205133692698060126631399098938757233540475824377126752773292721311065117924948767065867242757329576289453658980333188081197847270161135938905138495362989324519707055746014956730440237020045097789075383713107681580803263572715917140298450716274871383926881265064876880048472931644766408829534916643333153805023544839154495419761370771948419545971487965029780277991509485003709509305014954838863897411542583280565737822720935506897573888217784160439841991526125943176194742867746058501745038917749476738190741850843007134254501735006808422954162934742278508754885899966613841953495033500262267765068142738288267508998736851003993498522036034936803658794997237692319525495338755005260450851250616371858203490473451737266988217229366624212105062301694705302691572221169385957390078341778194318811801641324918540223129851937846350327711344940766418539546354827620550800372209487239822904757218955529250791140965389428164904107940379993126561494601533748085017434440033351817580007519188866344050404508142376790870301812395279753181278761630379312934266216587361861534407342928991672729389033553023730434811166745808934946717639098330688165557516982187442668278103465127288166785302445359119836404415898958427649907030325017633088840623591483078441713259930479476345994698200208900055176920590441055439337012043032465736333625248749642225168789733598923046455129087692456378326436964323160743896192036688677556336861138094452770965880914311338545037947935659047277845617341736870559122958912839458775308211974639359989548894445822996997246165294521231204619137970371527200843872045756483885737384566796242799664388808127057850499964119639745611670025104783071105812704144159224330063552506723956194805287081389680979940132910196736670102088738724913925008851667027549277524142208926575237378411657151044553017245801100133314209164529768975069318192853594992717136070437400273760547828361015312246411480863513817427256379091229858432113890936047137636375130631223931686884768050832609885949724404528283087482840832203269538585588123173878758005814835354696136019958732677296812155045756202165308512443353961929918123025583527258757362491843334830830242585984016860390824499380022682627455363096162475410638226280023863666703923757361267702402113877855094655767036052629791815865842570233257009264559105108290218086494267216523205562741519970956846867559341486040054210187236958192145764994349356089608702539376932164023072853763437287449566082431697148782490186094866044660524528740032036081763699099369286915318815318609747860075655266228907944982526737924229594099370701624638467781303134045122748289355787760639349066178020487548735353356778574312029512845199783704966013139751972409212864288065416085848730252763696366540681940056849213744233455640695807252339408626072693656349256823416283788628276738916542772095785225677078005417801265049879724567589994324816260343356267982105651467678727820374764428436322573972757697360756194033390662508431867725544089858008550537530137040692653181850812780629376465946982032492402715895932464729144640568118413824398462252601074705119036680130298610582842480306002352011521280065957758629888066460901205890326157270819870756356705255839368082574993085192663195895827469161288600623244941003269331938162198046059224962246673281796903663598283801418162374879245145974348766117624109100300182212825271951747581196448868868588484798698039307144976797670538754530339922418852987306927758264013641771530947912650571553016611983740858179864685519674561505628295540871211422156781423533575227857050228237016728091671745771815073777912638856119088795535209081125977391161294289989369913939288889829524333326774308160461990592707633848866759289423901169644312447702154784982393751111176528622290606086939744638256900228935229912575701295242553021325514264121427163764950448804229990985734282215413104470318668847892842404764036462063442309264088272421171372871303502535840520133247168458899257438083908466424769428134251033827244372790400868978441638270403975754831423033674449378391409729893547679225705341941264599326879194069171637750635549410663974718531425747859271902536693392724997022356642797372958355683966993979065256096468077800593733813041171534193602754778695894446183134081626808382000264337118466264943137547899176456538557607098796477205266080422725345911393487583263695229278802026767477520984790339527576149779659891936285436884048098785633729162474992174535023976216889817662185088806509537043618828085914112305912503474041989855268464689759125666460843291212041577498796543071222269098078443599580160365836728299874191105446302882010396164533290518318846002650486269344818666576735442723670547309214670768790939601381583064050546930235762838955858579999876075305447796454319352947512511451802412710516506809406061823287289693422330574047380427590111458777207021678942952320895214863764576053690809234523117066277229038534185294116111409793742037610756955975900279623535820666131565576005058457884965198959813239957305227493293944297473041657012449428739010424037789621026649132384547353167162980351543467504431175193853219974129299389637157642852908502488495937608453615780313313268361915967104601385621685574791952962709191815348971920345864331275201935588350598101475037890779138921228098143430969863978786560982463104546099638175325084573766728092208921197519808702173871030734231115781569985890600571028738722553430005271929927733284800976447045520963095553755498189840112346405732529321116665677630090031017209862342225015356914733615767313571318557948682062408814943852480834734588795047507201261616677039338406355639439599407041988832908191740712351257399321930465985807191228885592023002562799766628731128135606259018348503683547948818860478347937297265344997831642962195327673321430634720800649657713605229627372546083959866315614459252907398249884405220839462055630811943728387365624885075307787601694179933416164078871213669188072974437152811184024413567535981623449198712687440702973280524025830033609279226445954520362115970025770988558094142632760722229017440305516544768679377753964997394430506690995164172409753938883388989648939006421461014362493651409416800798634870251049094048366399924037266903904048131441301878390257479455007521122417452592291462957806122000920931588670546261416938265759321444186734387907184783501189623131064619267685089745926605601321214217549045655416602652253466895201672003947551359954528765085470050899372294228252609967094360740011969513023949487288299475732418266510888695463618316314997162214172159779352339690777777592822579582001115810836105667206909377743999469631582315218743403972310637124404686333187768990389497332463340313339633042859127599132644483951142272840569966054354928391535522967089909195955324587387022348614962215114815873970546450499561317799962501144220539311152962443376171629413425965299037706468615370327416570942149614918981625865461140569484257459840721294145751690512599788711332448001175333902680540111517155480785710254993237690467365849764466310635930625398015374159184466317628725451989343188136584264422599337198393102143691637159961618225066849360803098842697608078904967307853738096402999852270731272791170055026421432846108923710067883917766607183388364275426550423977855768600210426356667876402095938006204516842105779270146068795196873460645357412583388682180537370221622568430628153651776661408216915142468464778844964787464470047112615163974410140361679785397795874290844646403159437595244812972118840777651140351864070139407552679092147357106889047093710941250557501755989292706468760078823722253620521596577994510440259609631605144128544279217151931571508826547385996277195239113100436150603776500496630965372875022913062976886361028492726063622349815825921787567312030888506925883207242014565987999290346249614873808745230085487573446951474973668786151846402644925369746401133047776749244830474850134846603360924391628875993307428811160946191054817233673549648156400725045349841834925109649872529942612660752221025996699071174279260546159489057783480236045467730183049857280951309383992570228921288659910492675484571744059496814416290250539734484191120995229495625906996770832362386654172582518110474811666282507412011263651260335479413925518135870681388774858460964266546025944277689063368053982989102926375918280789985874435161523474092629525283504481306260766007122457232744609196450008106185175614148476038999513189866087327346880767453565411685622193115965082931429200387291545528628820567856928016056203304113292199753112044667663700476651436129232139268983885682854623647859513543612810828667195095897795732476413444780914922788274334877718817345100990249637551981332040224449539305421442114161838052814592107236633340557626426123596425689977117212768717499167790132191164778253789173380916945253176935306283049548030125721516162453888859877468555248459336710174743907219260500591131026469587950260489495705673531574495893915160452572079221330262871307197303716655466922904454777145152871176318211525179658364767502919560001225562304949770534258452378072941756633017959257492263475903052515748176080096218622486957530983285160488772368875357185395710460727069912708318080647043781666155063160068153035127917575125856171132048713141380819169417068243240970663695768255495558305478464789105335531583541842169540185559690963955674122994706655678894521773954991968392433234494296077058665083541898428816613293061728592684370438696193831582900415657546575126417992425223590281961981347417118912307327381425152461353785475532839475104709475047374344887092136286361722225814551930885225987034499265629420080683017489276051119829810866639331334545139048806631696904727179772510191230082032948793191529399832614552496743418732166662174629659758385594070453099528250031659100702394716674240314007766968486642817264379215643041300805690782243816627597161242025001685960444245949840673966127382845604791988917470312138868938423156060199071756584520092213302972590375585780916010823487934880226876141817875689066507514459569016581504960951496571765265646907778248406698207898418411840010071590159905834181931410326286336601216885258731169346439688976347681151995850921805342415202286536308071680262889687366896733202204079959184036360132293450398358755329098151154261149631459958012448288144683645268512057245591870624448671533990016669212114278194133380833413917512334318903385456078063410254170221244027470534505872007373165625441107125861832609454540383860911744493585139675488065353603648075123419711186340021785492950142035485931288203647265273779158486849482467252930179763147096639289048096415944800321737480027452338581542600539492999216437260197097522388454031456203059584778965018445024265087643513902821283663119612943480326184950625907873251326416228352056399198743261659863512781384574564095451869810465412247845774889775059290836915023943828124247757158429281308269336757618301470450708296680576593898264542866827698791992350312805023954262364030944964143846193144287442755466047917068260599844764998130991846802106453909280617000262384396070384412215470333956023601064687548884587104571069203642428494057921559137267321638597467205516211046365371971722592245949274044509833029320245989644168721340011313317337058393665851134388958708454437745733228004886349155770548691899149635961505755795586148188357677230825975329768757754438808524152613257650200181342483899804507874659672884444157187401759057507007726101115524471258902985146628035347723431499192436905195137333445066695428703317349332693117039248117675281290211582489713131306259048167596724137971107836401292130372671135267242135870326002852429270191799778300513833326598315373648815734137991078880450905672368612792893104692481434739214949804328233226954049859375287025128999853328626038327660119966516518133802897423052494959171603853982111320765428774498561837094528572057899399330355633061185850283718414786377177474967271976939155538467720264695438694606745909276336289260464873762358038730144265847451958986371825021429492048067805768257643829478225154101640105735320687455989094991501598561040288570257123026560396273134247127468508967254569125237827883240314488866523365814854046617855450716212246058066357653985226746256675007197925507779080333760744978442457090292842035571291839064290044975471202364052881945522823228478088335688142837147885580096859444935201057828053391108298833386495151996836599366109940788908221975554490562502740230765066031244738993694550972294392117481594347787588276800021123392120685028371755579369664595049677154255195795011610514244331134523579035737284494514543902824076987677084982676003418103032969586885580066405796313563946619772604487291147050045779637351733373127353640039263354669940120201349391204784425224931714757731337404846865646597316180569705644463656690066518131475555629154762679466302737601326910329658826659609917802464982168583531713276406314139211867934938308722993413144450441180678160039003516161252750036583388441985831736015101482463605874020808048730356679785858096284265911426489679810318254501498898248995386729056703955298533464058152041150523322014657750434232415544606870930808977520973740381268649758659278971465915065333547399977726117335660378060682127427013395475034181850746548325447996197138211892126484853027734945413321759778332084999762478757249830129770250673113985798879132881891753088703426989538936910547498884137130729885618343487433486287063539917808640740276616267164060831841962288716094324932433868631739827063611728736413542081496239058511935780040866549756753714002422312393663083353798820246741973765432097577134195326624536075812493250704341756813056063609071832720283281843702873727832106319977601889396352809722866153940387360196136935970860307975886570249976144229351647089307769512502581115670413964497786834007908863319651859674847506350538450136052395359161124468016127060249716259535873202054436599535916620172233360938217874129587636944084809531932515189940581161340091286059344904023302697329621421159795731266084265771551681122211910218950237767072064645220888219343004634357590787498821900612711184961329141560489166598134319266526461777103403137247990711343244463120317597679390871462600898508919616839079179450906220312123825320281345000806733765368821010817788672452698357152330510175682949482041402288716826007713570863184728550465106237785729045696861653137613242241696010061891678729800578928565674397812003844983917708325927991373259413890835606523300781756301642308832404280345921013212032443928112775871414577153509703226940154384981658908763354263957905842939883814324865195119050219861062099485874274349970384961452160265628609238413987354370588171575351102748958654612470207762473502853961730997975517335149620146628288207556597364580348647143331351324537584599812172762507824935314101656552705327722024140401826537534757587358026390598085262775879283157171555085127861518679580490476852566401832442438449771814906217189699579992138399761996155330828355354711596069584867265079779673107744527739068593416779450141657037933179305629532883974592155114170130754733198677514039743680607237956116419758071027782634905784495701028653623041998984855853009238219150626022496645414836316738104288875303655691806865749353153073279536383532336627135872154389554729389527089152863521011525522366144063482577661459234004727444591266930375235862213021401268885671478942429100517559311948001387502623485370168364034743588018504647154690619023594742256965116421231370417895833497047131557805576291224425204497936718535445664435486831298308565649571377368958720231492091650809343848834482788208409222743567552741342871966810137310848937887147876475310137168411186653517022115819525249221881581050942293701011087043984040147202665072975143527552179030640222433979336129868573481264330071348520277680659647730434000224143813703709837828219511327940974103551317127496535879148694664080097363386316605871141776175969496586125071068003247968417687309352603037386770408682557576345527350973739722504303218326046376886828263635501804030398372540744349248843589660752780543350927766768414876507162662664048977864849869844277176572050012444341088913739953253397646323045586223445603088074123755731919053949436637937911877648144165666154586422385059337850128025989312716675630306786086060834599610239754243504646164730163663100017856005551022849457458433030249208799391400537758432987848977861920269962873765543472215008245931903358031237970994964411164739737278423589427552803165159436775495951998662727868441346876799314892284017110865246532616422621143889671657391978186379375198453431276860668274471409939594254119976225911886784504599186282021987632872356742615630370694854180460280343722138065105957256050354028092786946336373656194898232126797877427460738649567458867796860229173998039444190241536950580209774095949145687510021812645238703181505524858838146900376937774528602166359032121187164607108228904085887525887926921898146294277091948178624242753902736596297582221471109058793977808225422718032568130129441747730961306970462169006920378377967085477807192848799104528411078903463076988018460669965988885158459544848680017260148074889637746851940062803487323711836698486737794760066561421702599101330605194439681810921477229384932373991550866020213399871498664344849335651189975145818227225884282678815241665091810116667525073554714080899084665459020570073523770147831368410528014754490629608317263322924951587810434696068443091979771284978717723933453704192534109667960322338004141501095119361419853168506138238711349291707328470518264792771046402133803139253006094304209215478248538201969011931831674275463348505801385974350674236762504925684437314910717795729793020956149886270161242828959962787547689694832263806461269863236980146610479186241905730606610192250840673547971151164108707208809827349840181117206825775921545532881041198668719309846089652632102908210933743162018446220399528549507144261733446689920466276782032403149749036792048532944165979745792233176711969437297933909842382709128336355937979738311860522661128279986222500592427045969299146520635590244635192373598262288871081431173299320796911235964922246434192014793104767828650522151029189061136669825135361655014435860594798679876894303103247018160740202969001841021924428457811768905155592888435103036463719499508993046915925658176204386322362490076819793219016870493387545387414538757385220362252718962654232480577543411838124821513219734451031225614176377473037917609509018757967543053275248474740748508719196743404158920509890203141932480343922535168884644757545556131856201747296687562779735520575468856982187182080592489676033846492479546158564181847148099706599669610831500098784768305813653916817080210306675858431673066310785111025255297695967601306215295134144965791293413852040945475463236833679288374046638035556106088777726288388095041276943731508869918485462241778639307205257460535988452421555739764961646494770616076155400955956922932259338190883959220261050436587141184300478896781236714596086801132809400678858322177709979885775665714178277724845419202927930669374277541952424078137803947418664319763567450716211658044606825552509508720183526274939168554409793858278290466372767294440487085450285835268174574260314940987616645023578492545123543186532260607459316154574855247484425341184599852735802387798943203549522953253015016039461015422363382195809525036371244937935405653207622061084109727255863069437356177200038921024800077746900935563497684960729697919216915850219508755990761467303728320707959232122936468017194359882466507147734529575806810393398537390566279759933181939571627434868761815140596867822568657402369517362471685096461582440949016454681694483428101280535957234766833406608376511240838618644482931222322938124769825544426396515383976376497796002884457610716951798755632910820691385526055650000594916312382002362622169036048816865901109631304642225692493046218582752413984338090973242402092418889868978818452025603231175764091933827064672934404739081540185500767198116034071118520607283960919775758619615235107528145442131523138557755942411538101456375772700689768422347439648478135223830408157488186494146142066997150140218468773430333126871958915920370703256930666998734669002194639594925406318151964932346796583809300426561405978272681731021971206782526795133843488594946799203637030674204919140385136952047205243514489873760046259030903249551468390095103693232819640002190580131107400292941227779536832646284787492325148101047105016909840168482279326473268567964016015640266344630653291588185400399394254069838058727644315887521041442012060672124869272415070783138037280659750738721324479583862164440518485595793427532713020399404164463219318832434367584628936902209846332416387518406605820012923819338708509064414708669790520320543729863040708082567893916328217170006300174036176383842850744873681501099003285956127529343263816590058847122088441026126564562156169166693712645212472195073900548194812143404870334076867177141840408080395266320984744826244629999983349737668506590921371168862936442568002619876632822227334644188304447227728878221809524521954014106992930009896330224109717316058986644761412959044297404918129367031802847746778511273503072520415873153454191080608789996006581600150698763944956353024123066866183763715813724541098374720634301223997094879436650775692195733749228289927314158311322611420197131766020107878780145756038734333090608957491738392209325105161497654957403764494729602042097103780135877793805262010551931355116053483789083314350230790032610300044886257073584346112780755643736653523203643707461230249172643438394691751372457826292464395941569590349246673330627184595764232500804970702624590599601666044488815736627057295231417061214413687816281114028467369875031407190566892204017724111870791286010815901834547387333140752330435620147840402623141907556313027220125400526276785809348905993341542265475467959383661903219527797642592304848554941757097784648149007456579953658072638327437322026741759498879068327941173740027835895608911500537860027343329549594530869282958327592591589535150568714508317169607569682792289821221975332293358416999085699395350330458157967387700444577535014311080595444445361520686619665397770657067025935532850354608147692465701656584563453170209788428883878628408730140986400049111887414725995892183480145677893908273903683535927359484607107722285357262936545498532875003403315808542989374923599724200317784313593509526165365780127512238104127545521698930493950149584324140142371124815467334879909042478187470546392111116096391610032946387314141245622220071921552632843762497229536756434245158109091397657781048451855114897052977221398831877774841581604460409736121703835297418468384909976580215325407164057265466933178655973278143548391484933231107890770296024794778489329002015240549358819000590371532530838622664121780719601460918239094464407840409629750012357539251926506542926634461515154012107354636823372680628396524223929532945703887432713068027561352782493534730284902505367045838657964875605910529271686666629564786114259379341385126957570871203000974620968283984874345026220731866398760619685995348901598372612624124747495794841090194263702699777762491052372919540985492152808067019609464018437029038495272125211025872019902982486595686123292336885514651972358519105436172107634930799652343499678704057599962130228476007453109541275266152556660633712212988270289197822813390038067966356885921378836427537046350630644001711549785121168897697973931244388214191409869235983292393101133817427530096712087366615348187753098030508542204820896851134694403415485631618857272715740100219186101626260365649007577821139214116992641842809655243619631457625491283287769352009448485130834147549873689873457876065999419765176926902598789563237357225080139020245096466326292062895210648403969071056514187033871495634686465113102255459021029220631613403543882715031759356843564288110240890346696457761049058592290061215744023947651528172031369347138498563085200572270839662585300836363669218490096160191408778705998839629713057535687637597016101682019994630801636567096992517002146147976917475665640384734616941912020955458970554165269387358194301900691593422550035927493465949682646225933342631180819857445513010234668482357703525332869832025413619164824813765770242426789269043932316332671961255428979548853697977643839573074729046058604939862995328724582603563878414407719124108065778212805996695247231816617435043467582986935036120407910876238778070181269663270992501738102457918618958783793552296607189026467914834446986279700221453908718765382884801461681835013671750372019262182800305360909021383339008005194011067722357579800532511341480910590602612915618377295324375569477855115678509895359733641652520082536020647655932456039672356651294427174868341833865769293300330480800009225001142818345518226771949917258650183589796583869932580436712216427356098487821116223338825112854294381281977704555891033224477926604267564543763616935013318766065958641645704820385643048681250285771510859774330752027107439876550419473930470406809565554668713634834310958617440236727706865572790417947687105604091625620464381412936430420803988882930991146206888627650288995787195963369801677290503729584828093459077969172361356693092239169840867649826499393234197314880208671835290072010436142693253377064252188495810069854168494732676831356891034270988945094283250780292799715327076705337140497752088061627536880352933849550827559847111930373275552893210517400701163067925843852570285141653214281522953641174830771446215490081122501532214884044084001512498776082279467663171468241071637477016996483366562556359853192683425721616890215816596931271913388248859040197991141257513479712842447212823972721657443104558211665655762688321641159459180514282599587292042312985061591001220173708452188789320642009062739027243652449309506329832903439541147336646465083221682300564804355583922467913965598293371069510693038315851120605333101424503285195996618252406549890716099660501034397721854253495641696353062066545975287191650615522360170785750822557351075311477797344119013314133765879809178215622332924970123559775625515573033499718093472841618595137655573031680265880539793855308599613133988452982654501006296410599095978482354328626406541606477895670081771986751505802156778265948047062639094123426682904433331199947966992187211766228090494118011869267282647808182612013893395491095766463630576710581270953674036666366001538984249934146402817055432255419645080706398696773532471394323202405400117098471576547097690314033281490594556937786441939675161837375499811928909075665995878643552825945554695914894699660905242566281198050198358917272641023925446688952683828519563552563449397964703010935503326924166143377172828848147424990336724585962481357847739177756363863926822540429239863695296181537239546382134069823246561940148768167863450424479390865420252778385573074631938092524968019324932555645624897554679261451363170392174651448969400378813747128689852115260418838396358161626676282696598952984564074793449129446234305116105973359201666340399369615951335509544662571155456388865422219167520607525868143339502449826061048016214157669991387339080498481174633651681063381653189899844709284994195017593825981428468944646239974520277696946075411057870151062240608588379063578059007662495280967323902270980693963250843828226250587467516105506156512753006796185683938979598077321142471573982093831175667495927909168606660920142424262696643167115676728173660885278754873268073292855101969944451874389729001770362558515945515603389521252260943439421041111946334722050541487053648209264877252664544174147499902060957937214248373637903223662957507432792082361754051441231328941166053532466547000650488934517312837169478883530279081129195827668358060966641586592714247755096750557785842996031753324442396657582048356738646062495100848834222860229438203206708035596355408928216839238180251578830038440708721930655585166389695441122232795287743837904593964884315145473792841777179925726675390935787818156210663059287258117167799995855546299861176725118705690123143436719745171289989492074966264543384977624494831496098661621681943346567275108271806354064382331847252642143359225754854173268808487198460005403497828913705844190871081938610580933255885153363500059833502816612690563517210982169588227930619201040306528429913868946704996725992616686327029395082295365244636041698706706925806582113527053175262997988544443593247502306502105150654608709472648735207490982439276643210879944831778938955978622335784344944543066919933229258291077430726869903707810316604871580958996584088105470537191473142890204920815362508990705823273188747324565313985155771600798493417597470125469594080285620125867800579045099195362618146139512060584520865708198072309198221877177584640812667891424306979455726176860348822373723571602866200162816243525925655551631568604410952582027199436285116952706291599270735141791786269533136187096146171803409102749798797318162838333307747380424669566197264513277698652263829304715705261848858087734155977752491499053362737385824117943229490049023224274637593045835683752054343454207326526246147790145701923173100587006166033027132020196327890444404658173434615080301459148239736783899617577560367456495139626694083090119099659830736487551966766447539893033701134861299768347642631075007315795344118288920417274556286470775369873000081711519578545040912198483588705897102650586319449620385700459625779306406531501008019538704008056347052122251936044550874070062633643335661580755824551958061666885315714323484456938015645566623611545632310597815236753175123502103439080874552272367873201991180236289192783770860482405486360732049042418724519443479898496640594086553182508816016389380914302994876276120697728901389278308453076541070251797000739486482145211562982682629883251802147801273595757524163349133660821631392831763737836586146181949936164921960842891710843660875078458639884080946803695116965745596020821870733210816101233021251460216085429139973818652475931696757003615831081458729329740810462317190733771767898929536841140006784879239425093547334133165084451215005797670200737772601334106429033596007856187274218952618428640661284356106752383920224033147739832450916876238395377875780270040127511730023505500850030779029511970418326375000087231633549734955638170616396534186750644336489182624159389558302359044012865445877776294662703021860032246634422867810345394642774591620627353978445550051997298885050076229678567561303601583732550377501196102280524710220071331884039565382563963829961979606364906885529337733500963099364621240381201200229935361417112888085126154162236168255048778941443245517640896614581172644006928614123360171204533236102933880027300916452442653670911319522152655405114110922134062545043214169814146687076739561605152634354526488071096504462226500016991079863437538442461280972926365006957160127775726569788549851938269360519431378446290301836788864165042506708269993336165291521192084248087674528714335652650978289028965207884884233704459235007210452732408709336493012639466092371501097359557495006055018066709674347237839000867636830491295611228704469382719708187444738140513152273522832519933662254794308106501735916743710179583979003800017676735328558024384161774074484172061502785342775404059433485140348179682186457348053564132461873630749126431766669805139434580321907187172390928275020664471398807506670952833936483423529689009860540692128334750837690372668947855969851970707349743158531891728286997048519955560490517771769081054626531776796606942128542738998332996811259739622914446536447275671340410146840918845380905623583354773842296135986824533161121194254007648804138715552347478359662496813472171420345336911389236204641463638177570569263678488484117402095827455369840462327988197704738412083522652779715205248321974248215273949813565892974674990133511193153214110898648386692389801371289982990234457362671979257320415517162938701071521607425217556506955243919287534416913131576788017355922264715245621398190872381010594601411852883161981774820546601527450516425149603820490243692505313191647123818595831963268059523284871281562714067508426706078838788309049333533647214082201757763119904322016351516733738940098591068478241654446950280186674656787626227796902453288999757440899917460226503395711091554548841027485036458835249414633549597799286369616366909446139137860208594795835667288333920131019164260185885850625765378744944291135242253710081872985174071577984358041368223570380911123524047693542538272977747578618674274516599107411447564629930056354088002996635087705905266242478040934221890316113215505790470192413104602884686337423197356230289273313359115799661191140775048569954495202482142295902540529421233606502122179675286646581682869038498258791435461697567502685816386926744134166596085101634803562785791418636025086696335712989306608098494186035857207194336963491522697386794771156352148023789040667951551912330401313580459969237456210533741421547228303144517186279107779230014797967444586728162227542084243859746928979379310682582340603016447631882532267547896481860248879473866040873546957688612413583061477828949579706636874408818287109580369380926366075326308613506157061025242075893183467037621674364992092907043179191772684119779181837062848931814758827572639081191989107276595608769904257383775402554046257670418229028776716513031053206134030037354311929359940480912322219307971623548168245909160513796738225076540253424177308457910026835983166481835107054530870860806965325472204335418829876550163539857127607113881542530565756862700067080956619759379719583264511726291872474636558676568662091011899361246475894780120149150024300976637540810365707841079246105027940687550346513283372671065519374027920441521805862765500268366366221465287822144248554258895147269298461677792440930925114700600045390541500364265050542095609508245711011338331292607131441687951023707470111517240168617764296933904153478586916398952876250590558858197965853493080604913808729868113801853576361319272103976800794833437459209761307435705644992462830908340984268401437300965327674373196214071493842162265982145932776367084724433288003390185300455012310710935411395787530292948556750757629622841902113790630612793763675228241896276155554665280006367867611567807828043552525174637757849209177543927541249062936632052606776554697862896014770099092235311254605079338315322579554837728329405457816976185276367811605657543156562067403315727749517003981820726719227660780526253755962335304114899349807706340875895149684627890830542559015219418369934732674259096111327870482914806351656925205680041239766814457056556261324928519561422906369956353782551397770395974350751475130525960985620863383964743684738694652022798482806420436260236624815187401961519788656131916612986825290691388787472353192528294665588664971458266124986271206594685896185405082906078271488521729129352497945737911848694817093306238267072251012245344212211699389175099690889295556861306548160202334233558697921320830561880361058442338150097368273807939742044977346807541477987665226570626046636602404734153636811162113099788003951861053424931215605067329907496489171310818795266659292525353351574995049299779851439320918478824599353782084025841499966673478835957689576299012083449812476917604047509684607626457791164940047563030312943936695813325937583397899963549922660870561693097921733649054837736126957330483113567712811297972782897486362908331303253209714145349448792302249566621132531268906550046348695247428694266476968722258434628077387286953128439175749536476311389928193753216921357436512367157527172261082492785075449257919541451847507705547208299757065735549802081162028342210460906556119266702853778678768345022638256418053367770232490218904481582069244716332217609444441746143184495034749616156481176809603447212954468538628856804870325455785592490282604885346462455235687518799750118739946849267408381569408830597388147523669824029705439147155506326708231887367259551987813094798889727931402331847261525856329161207818864525602340225867517774914020518830034039014836617043511905704916076963935573420230909316123170030560918534328283284986377664135823303069246158137830066073611582105946414831968640957787463251940740950398863968385722545693803705947802896311993866634304170647978456813694586019787932968503378655492785797357272375817065075338406928647110919781528191337385600665224973150871589124388885224754660519938498176252349569587542761658023462529118345631629993065179469027664205649773655237734324297483562086915689836815840701940282661105075695947150915929355968881507998746257708401742098527058045726592096833660966561696397750389131869857471126640961623645111340009432427044217423635790703035287191324663980160227497335057952604197756698089375154822328686695119605215587499424421653796017285338724619714209693704715747974394309591867846924227697547853555550467429406540058255984001766269615717118747059686066888408688128787349649694836255099280779409130001235929957804429107067823054274572114623066250744701360567382057028347711542625635036185732787569533201193808358748325170884312621632508639444497340970263385293108341475371270502849121073294038090470005903291784580897257818438785697647799357933596041426741428937660638033897917531440660435481869056847155875831974472383670402209737424187515518866832555435118287566948798903874702239349390041177779584488613417709515403973205104892432565999078248342589833926493066038892653762666655113845074622389796704863970511370079046909197577585884902078388659502421841222236645806177863698349331108023775569264364632285153121824384160493724850876225844834663585425967274726770210620280537545494553997416485073279552419952560308211772499981131308306949490076901801333748263484071046140178377636047549088549077327767198696377304749062328513298478771245099659836552695724321258988197048110953024938815819509660174882659979792975961726047404503503637737399156987705474965266265715136086652857438209923097231761035638422474811137915940804742441984715514085222342037441376547218947438582118439415992350129193882595372427601701238361213839057217889186893223008481917553502054371003811495367923574915506446473369868457001305304228642096203527708660691861247300551549647034785388441063964314739630458791739881171061055882127902700587272342897922645339425150938586403929393685380892880586112765257337185222350388383513032118146586852175328886604115686355049539664001148547153821397754298062165333333862943284664899539930973269514118389063243177957627998216236978129087874511567501289344700525560112309948464838145255850919521029313469872102761739158748592932476298335015847207153690716756194051361320008378984966005745302609293356394465833161832610395915292766903700274638607983081994379129575873314280728833831980573544032692002832680905357533735876280233966680193331159580938336644481853758841909366292392257562020822851556481519355625958507259506143556824537497574041329531424886895169134326863570500215799390146364059855279732713262329201685407457100912720810031834208489542268735877140999927247124102379582963659152642001709439357803787866822080067009655412081631310368339247945228125112132576196803781482110966704400144586192288179080027929085532078121611130192896009821234668956361731382921843304883816011983229194453322427357526771486753015124006631735622718545459716826031293822666740875718881660629842599180347935891169607470088124490645403827656035164588270305366547019334381505577711130265174823383153146740914125715922869548678606389361252920354944871345997044636672008934613157831126628394350353214938296573924061289831544256173305511168497080996269273635146647726636582723116538361450202541850020655504576126146281163809156565845459756829129851988156717113690067847706490942758573206319706135722872072990990156634900727391582472672427129064556776619820571309705300222686933904192245067392548657892584581934153857420336610903361808366281599010067866160390455367672082053887568422872147683710602297589887285332700619070946396561120010022782976095855587196771582377477292215498665804526344141771290611526763463807113663533768962636761885960602688622453645041164462445450972771213957059896919924819025566142338083517394229363895429431655100048137680761838205782003014970158878102580206598279101839609712120045842409812139281451846217375180918472164240202718232553821108376957838524562626718891143881460501825554510889596716211747706319389570054595695764024049717670029865456655839707380819993390978011699067222556660497626016254391555912011683573454588525652719886379428221678895809154968896862158530425029179214458286027930167368582447913630890249427345182921834505558580842073839621538173234766040958571938061695614094242113609418419351025883187949456458272604003120539306062607735242520888123533712359321272873108730386758483869968546461107789259045165569238823825417111940024284920069514342001461449513067329981617867973650920050602613116576546868030938165332968619039899845737822789931016421257547518356224283404546908510075986782025636535131230495947944395058119930365236347303606886502366934274992344348921956787388852485592100238134025094065172909978514229642456903123155322321673921830520012534258086004607778725949130247801510242591810299610827931861610326489003837065756124370152555152294248665830960994214684961678442460341862557197488922171637110487934683118395726837379308922931719547548788420572804295011618782017646111509729888972049047937414956929611895725752472631436628486412745734801410564910932875263727906554618742934734583743366049222602721750378968286000928969737437565440031795130890182832984383514778519926507210339080610187707326432818738939333880038506102452108358104380347720668716196079210987857484347549463139838344157364139089049733055150764661280459570970366577095238179451783894975930392037302535799541665553345469930239058107133206930180390082201246305027353991600882221584338678373275055319861498134761946111431214854724735603245250806981207335188513524946132852324771216729607029949636398866815984945463823560435208112837550157952613532009698564510574885763003075281021896931140160677244361368892035270259125974729438180296605933429378578936012708379605858925838406344292197459733048333465886770096917942954208242064734410540611351477699404531631068305431295702889384268056992368430140740463798702540070086847672924985033442868955076115497575424174583329795177249634736692655283188090331271395871482753202186985287742040745788606827694377528807789885245072617609263897882145128291552460190175801831659879227514695342226206162178170296408127419527185872864040077590331993990701218491137851787343509855470346625696707922012471139615002413766226223276508119807296294120420719735760536408892958995013321947389122749160944018129569616685145646539577306864198007357038097011364292469977593506377617248003038708275529852134989220090126391086404532960676221338155717730409096573299768150242691799947104933874621542370853267518917786163673544476845182004595124967585277967532395871520943117463229109663724731904837730811704532010651417993354496110172918397230773732704569904197422544664242125176844529548683407878977428787007610440851248730073568226035564193917855284166772392911749811167894291942939955696813449010594526990457003192932918374768627587652461297324768893494114970736824287583597866207818966332278794105597474824521879606959573046479790101906047602429058434341610959698445807849896271233711623685604562700565235848554157682299956628123467160470302082588344830223820164453090082941881139307099510589503664306176771825272654995463511959756501279978914352121099891207891104769118894750370550706993464785411863781711559608761176146918153659705342538364884968357653666412273590501091939791068942069259908523544273280617325898386237244152039863302738273445078552293579612197660204733822128041598483819119747073752630368739129899158129670343608770231897786516983060625514845440054329930007334500127331159755468552943798404265076012208246748781481178721420972729516269779429283700869474450818137143395876699720978555260819211073881077690778256347929239863921765278655364395675541848052241014170323172220568476992178024224065460090551478886882901482425039789410155681305345299113845134648226253583912960132801650034735944317010600635956288177267738226691866405163835799539748783419277640836193603286189304999342032609227907123936043798252076994115645785244291546207168834568819883125325915645221783564958376573167716308356235128278522417003396541167870995519833196552716809794986712502533714472251808985893868512538464360183723195025400479497465293016327765503023528747407268462207729981333247842797859987099256597207055087825317660882694530720475163541626059569436825309345731732634554739771579515596642227142361794045632194894563025316929281675143143652521931776525021460930192801368424834387562709384910831301093147619750286897403717094555402181983184469176739160882413222547087430392812555209447901348161170403895046981959263730167884796372967412600950334724042297313351274937483822179033403036735311898421933974031667486880043292290711088281688432665255799363236026304565472681936226795782511310299783399520386018596740165612440835933845828474197884401305152146377233439003538735742823309147743286568261276640635833647399754486443360005821960620270968269427941615797927390700660829314092360109693967013295489518342818033123197856835543572963676705507279578370572761346160895025687660848832491332260448046905489141103244860438928981193979043982501060434936656407674300538104372923051018166224786965449646097063013562383442240024403785787453777035770665687183323483512379226629477965886533978527367789722984253615714988906034046075605122031329094831995899921939370884345673861224247480372763782494705563483914855400410412329230845305831528889269213774234635927628495219203506922763614368413163907198027537694927684300773145723930394451016746597949186821978257433634932724541697299479537782664554832190193263170380915782729138435167995203558221166078987548657107594277624654693828138861571625967485060843663252229963853567857481417701567751488606207102048595916866962336358256380541023673367113646180448396248421138203884069071334565549285622110052272056853865294413949888562803554625703529676660469545410595624547601704163898766006328062139575380542105086804436237364416323468351619649687311273824501017159932307320273013410872538962112842227626169508543603090759714028702952913522718952090419080844857837144444092993979832242129294247438835419231081639807856293703285846339011925523603729832382306143543083876096250948249378479003660064067815504110425461970610735662021743955300731774958928980072684318242044971198627742618415257774862748867586981523663100948233429247684889301923853385494690750161352914725825501264841065771018795404314262547314426029640523939886537906322597105599924093970395176868166279538627786766558272029922225180849118711208736621306450760444234152539925285816713518576352017634755357809849265333798241270436942940996922082792824125749562802110658752056751917017125309011654208292904166931992003900206386849228305120341023594746388306262686766760378489343953696566718326367067621285004099247790164547294948636193173532774601025935540314582365496975687731596070216260775303945677867674828351947643450426879302400265530466560580280700890764313436435673907678211135222020050559232519228265310247092451847563373625466673031014614826914468677080356124765291141127626594964111122044866931673814846892947289647973573430035793303105282610616133861618153071771054656923722337309000411830437136743843689491139707717139366662321096983520038221629863793128801920743833542847621223033601737620073178462071979523728661300145789088102275508774649968209283193748748453256720821277460737659840116920090302225834488541863272035768953979287364155486780087756489936262806953953017230882640026977296763315307198611222778814456272795535050922313818114038039745370452697041656175968990619474030731348937937763248366314672032825624238992839499801373613789723986321072787124145895006733074572294899554107851988049643598152268578784438677856670571341738917970232262249189799009359483130791197186136899069085749416168831103549287791461673345879356556445221814988918411695675526808012221587603175961742769316946655686505640147082014624793854194805944060494432003209691357988047766535490624287020872723479640752628154703740195871541786100075903130801219896076951929245851615676067155346844767895164311572860139462004184761167139667161463843327408469577167741819976633120988593546332987617970661197107920365171472749094026875477877583025319388464547178151621907793413797313754392567679180461746181500585848815112728862334067857530964871191628263366930803240164415005129845713525995782655832135385991714627188107827042960518197379140645201639776652841512082783776179218805893661285257170360500284807206606697441052470995890380701337625464665055072744980195878103265545063276666904198713097510371891377329831170121239123211344656128177133997846693635125374499822009092714537210384266264650685858077826808439970631756527168201346955312936344204540760312416568828148038968725720423757364670051709446801378264318447033407512417278297661746872736755360952594364863606832458246466507413272848650588140469905677892415663191673070057550501963953113095638099089142024193928898225657411851570958973372116857682977544058493435516903657495797108486571072085264814884855279652664471324281405724606443211266835651787672384304813101333750314561491050386462705326225566426362516457816049587416506739043237775818119077869885765186620848697570432331405058300153295153209868679275355518651330063202835877833198071509105615156268640907583213687641397096647608042259290054446826841561353330594754522398384457708129393683603496816316926555705074550590699741837035990701702594920585594912565995441274874473885327163367900189685732508479783277099279458608018802545119721706909569090026726600439783931617532556767642393299337342662978916142825666704947526599938822751395488138021464266298666560256819552107095299550748795439086654051089886553545844977740503966095147823725517841609882814959854525486954474065532562123546338409097772880650135426356918438360072099062162033616283158918877918933576700735090216970099000596956483403548716326196467668138188535175916020550880946685609979691254546533821962245375909716687090098194330470920378819823267232781817437690739363111872236168306258793402181490580256635987613934793303205171031469580642757061602077653334315955951447676802004795993250961103131783356506830485300712723116035327267496507728523858286828661084324764928677777949925481937723273672572460265954728869374011101729175894472771911521910078708726216737683848967220613089623298274396950272430579990421104022765906071710994757066844534244126868661881282216603408460276895077722466376388332395332726930956464604693714225649188444221531462381207793296251322810735870068554451977732566495597208968870291817824919447351777727617197602460667708680132957989559242249186239227121388382555860467486368769445399469637020908946499691677302087307500808321217187348380278238836163683468386405950560914323951461147469587800706529925813107498888605951194771867167342247042037328083226092411687021957675831069184555881430388172738276476235856779795260545966232659533049150774933269044179282215368225079933403326998211390205281347399789363128638621333444345125354893911973023005080171456357743486172687821123870107959845997263842237291335282451869897865653789207206715185380501997653153159679896690032570129840972797572825864695384187593516131392847164777658634027039959631376207317444423749826320187232575045217717656409574526044116572090500709266294328899497763940072824348514284729834377784627122327328977590500541197085498335417070348925156108436529383252226409711993425093468754631948228670505182276167658088847811944916184028829275447701817566730168717038938158092627389725544462105872917628596984735856669521924309936159941820648130605834711574208645219548722219261421052393362908530519701937775881164494425865555218239947826367097266375899049819911261043694976482852919968712381914919331557627785030168852905365811695925034468030359181906593045283422215646441467740690884341461200166763131709686177769166008690979014711271474389000956958145527160619581076700536879158510655720768310532644083046350371627769855892075353589394355688258061655681701113665236629631318174618469438357233007138753342938965384867442217414630893982445669386261280570003104228223540326445414604574185165694743189836002150326880018803345694759857530977770936601708599871912998798453850471021180046743899236696682683474650855493550751215797287748965990343752778478634223544338250614680500490711293925639865878772662844648426938202104083341131487038457316148107167687436095598887592160449834552311781009230651516928586183696013507344090433148021573400459395984662597050958737076093340729249294001973495849223628942293786080076925277490567956819931787828109100503529957108165327902759586803710963682431334098913685361290206243822959581468499218893237597358875273117543050283522964080165038950172518564976353895802902780050260488492881861792626560255067782566999865862518082570081421173253802170826917522602397442316653145268380137274788662295641664130336438673594053840112996089776903709646870231027515002907982402043255815917089883400264019960937322434622985881253484101038688132939630743008186743893563304531295595163219202901427443160626602249334281107492793783718957838423019832986589099580929684323013502286734919916333897755486479409526174094492450030748974645851780180118068487577474622160003539056939333182003598688176936469755115934572171614734868116509757779828492723869766991654074988638209429053680033180302619004665396712426270691916328296665944746540266433143397519643997471362161067600543991181239759577711210014361403268005924922597211263652653375494245176060004986103965148508392974074420713958633150871236576703701008194745741062869017377276705526345610770924909913140691741617986263947843726412091985168968961346006048314841251530227990657854546327907682088851503419873383167112425102828156832840181800074377746508721719583507753972816213208510276206196687724951451726112824111790645541183623828980859832946234205113389486397214291170698836295451931610605860626977405193478973150579539400360828833412534843132210764568271675238611065405436120893906201654675438432521754898616601693241867234137534613882146580545651335036545305119895744267056687817770204634540829009350079164828942150933985702045870265635653278119593317996745507047515264343658111277339905924894629910733075342898938990860568626309781297037723381090188159669333373434652415483472979799129476193589334831420588798774343297903426472001589505616063235442178213235849686183117682349133940538048966037139439284320215360138943640345743330592631441568269432076564931907880188595144376935851122576629101183083575024122553147283328821256203571414328911142729181839896822189924266815125157626009932740784688482383454812075158445688582489291302176893096060734079550373334681817024042143809654266545604453045409317795425448229434112139912229894820897026203272600768853500740976146169888185882144527547967365942752351412996859104484444758824588967299122959574609156631904957865629574763630584076226000860948507624605618628003069741976232309997883905313210395644014217626051710863740555829656982530294129956253853028044818604255111529931290203965039822223954887806768886917505409317306810468427660851143670089872137174121230626654253664858765339626628945765823123371496095910662062880316711621683439190316778931509760929326755033317678945596463929495746730679961114697762177647289804848020551518656909175259219076848854561792789490638690627950895781529296417523265303563633650212992876578824822357612502082518071698861942723002295854315888451551498465981492886874794363110200331854481896465342310684103735625400404320586957357939672077492311093109398800916383839258460379063631999461575867739853647712534526205145616377642294305599619831005918224441680505742331192411359518348602488475336361632815081761832182624504479352637478218747689661502277001218623889319650231967929305134809325273919695002109278615944841595760274281355438803294927052250165910173704392587019997519362129760816604413713238211800802121111508944350626822731681290270562798932949090346784949193375909838959671805336214928713044760199350760690974295742515058570637552338357712134477997888480047389402398926740785681229143997956971558214127565743249219367116472028147915546026151326028595422217153106588278685279969993836468663441448365906756067862377067119560765364725856717294352764542338139558047145791315286482082292473271677397309499788155594347166546920492006543679113724933970281008664041027384661656690619374895260575160679627440570991414307508644036014128950171329258114097812842081174571454996937664612743561557910682620702601148779560025315323574092065594817224106230463213008206118907236922579200036194717053626417823071495511881429414781021596531914362975247422657341821165823734386718603579948852534488419443802971764617449875035770178166824904722496891251529923363584846959648951123959943259355963099223866286212453764026222856761369417333456931789969848254406275004489610176426838872118502705414762380464198815501541385863956669137345623979626807143599587630527429272795613212012956830927649966540331742630371795757918923271036887264286289006311828921998638349917760773504609154551299043462122089830345731889628279590260113183502602918592042867409810206207688523449875167618259134857136123271317453370576047020058857452889282104929589887824944613285947905310101902514987219891854094324680791746978235835504094325224748448418923174238917032336537844708594790299059119606441544966039599294121086307444819030267794853022645782682702872275518993703976812174613119822258912286264475765864027755884066824872804558005772520664002395382742778984160555507590377614559552883898051027773182526493982905818111473280749685401696219830699541748258196559604264725865725654352809732523277066946967702315733711716269287997134749244223330784032171737701343339395240037299349429764681063927646742985029628831418128095927014359235691852767937277606500620770447626110184868284047674438132812288447332993720677601196873701755960048029179925364967294694289053292013569144305978823527736312950087235006566227158251963155531563995938979821258869761576836625520434882355789231478719187932612926218298752530844513787075147715977853618251413387997208563334691810317742740012112165495503662925336689954849111487140753935593166384495495112031312971493220451638163988121821087266563095605317183444553354316462711757298284811084285317002187044545805096220548826062472476906870792473507952924971982752321311458253208716059844976923548774742337432879436130117363924247818535517602160192835050783445288322421271835774101677566991451549624078212744869584512667774164582321391976770868703557546557811947344738897960502041780749958962851844786316696522914224320642140311167985695312302385065653882940675362642490437153066943743011756178076240488015446318657368964171222051068266695234751340486169236186348626049935607219276605403278458938123583436639631023170150226539229733262622894199691862552550415561737689738971447264969566913645070385722007303218901023971883753409199055455287261053095006250315114061137301787903347637664873810127560723647305626452675371122278269965620214127570871021327450172151795106714092407891872762098406174341402938188813333500922990336828632236623632084103061202000227681166264857723849683167748468812980147188113471145566802599330353729388287831578357309728880511613356499821524013502783959575064294330597718122597606113629969014746452607559708831608381902639147030264560822897701149243537718060604669157168569827578746354913214669274963891226108252369885052190254977378909039735211098929049458743963275384112724115747858588336292200031350660149058358401689570984817300505365650014983496366180566880837924835387784625061513938138933025991219084186949714256876655487809028220425680942544410594801283913032431726540930229078905963472500863548394575476133579193037602104065713154590670049722496370008111206138441064262780006960006488352192211978049527457055289839988555951677992967957914597008595935556936783030506226832145288809903642758895217851195604163914121743631962948761394898927062013941378319941852215872175248627390375500156371999775102246910954531540731944583041081853327930276224479934313575138578756210805786443298866250547247847655823922895427719919340948243749082806396839669553308166599484110614285416727834474911195233482435432951262780892264485081844881262036672054478059526408570208817134312119665372969292428891802323362568323590985486550667493162564650553558554999056492082909290914940755817085961708164407818032830995671109682971652874629136919013945814586827651072240860463043668765901594613625456474221709403302509985210794964679011461102251495714594707285893826433253167315854733519492157432510361054798107035883703956637441262965502417875398288382329511552244073567583552967300582607574075709359812701959549980205516665949525381026759810110348735558074212589083342487472130870228699586582474085921117812822976095741351331426854157124281800375414483019000129347142586158470376977290682206280747280926711717321927825022795511743745984615738772255171191368560116271996300373316933465204394939613287730437797910095815604726604186708831291459205226247269885518517292913993867473878599349162897577200073695523325925216702009926456902294217387943550364467520793455418639111891551284752583497609726863082494319671520827840518212367378304926155771060607408648899858784548492129309712803265929257222664429309856990286848476902524758942096729450964566105247593593544435301475189486867531990410964343165859131575149257098345165314276818479573190717731623809022102490677256298801501500016654694459873949513742132819299629144327495343388465789396754411743703796851311757350675325631682603663575927902908855786058813899819724945914919071014001865379374996909579980596601116346127724576699283601848693709888223462466581863717082760839276244695020487033581663810643769636073206907544831212120512329150636754891850833962865765552269803906932017941204945565612802438352420905178617414379537232107910002191916021474893477338547811854612671400044500395226492081712652473559974577433444877306589403532709602864327304659849234425549096946365654871443114594521213427257306569321226922688766771897194403921858854316621935540992870589949251192491155664118081890768954449830663576800563804282410651646213218961627281197107478540302073470555756580187130924012527941286621097083161668315826113732718235320787282376119218796403712525510578623933744486893059595979962094355288380694800923698623199279194334537227253347287343087844768942331090724480197180564269410398616512807931525651065826414504815879735871364045395974853718060619312525170594338390102846706454402848667751649149564391341130215843998286416196234596238696297347082373440430078102153400863815702149700986395939445735130563623123488266361936769807186485109747414843691658422326372916098877929829729517336373274897649673150340899164987959494024271250402211447202996691624649100583320564901755220866520641519172786895251878237417896104558816198257479862436637868762420595581055376717010833900638677049208108569282256084820672454438612247579185300310240442863633953983080141038659996103309830756868287014881378172100622562039606772606038691868835195070420646316937541991547064024224056704111423093411634071169206233825280883056996833842288009537801978560332236595022708217088329743445884891172314755004132376562280200084455057140273589604007137543510957042715625365848389728719549616702038541215393063681259389399309917569339018247823149777113483239716785679429289472591860518818298741458683989503893831817902677752433562185203424444696924967616403376814216205357745760694854663177537813189287976765326658532617370406212735833487788102961997246717297874937699354518836179927858011797684698995491609307565118900194753639431013600603423007997553222034782097526581412000652994599718052131510122937861501904044528379118422756632623231661292934297438826963165761736023233814325194066681381671064412056831009938287507631330947776385502645113624996959505608365216573230892736548750668597630812435764508432148365952782044261785294354691958970435701593093276654362172661393442230108849130023494964466804804587660435946621093438494528752356188576468951152096079527910685180090803998370354334884707947388997675059547331274770243669556780561926999954964093283331951591530920439190906749121654073634910141368284373161665011616325529505234010160833265683863575722325374542209095293012727872133539050112774467714215307313524494149789889473545996216390440356314053796554741727988483446007081883302542337555504475125533205955432171197517877434157070281439273244317218527331876866531074657418668286499715060187049492385034421808569623022393946789088165759920888752440583552440895498135914241102779442249864551602353116230563756076730490285180435117628842770218314516906138889299839815989164218828831936863709708537690888519633849667326528779639001114024486400120885587389906181972041397635832063580870789972701763151928900270458823103050875289674123063059349168791965931216270380360617607278229832896620211349727246871366139070777299453591147361700922388467663600369484619855296945265750774145146270122041235749289929960325774220417056616166200169627567229551386383636832953057549726439355924264977045761229263148304584593332347367747118826672540371034576860332991048242100144560839515732032334639662432937458563053812664640901489753299530368321413197290199966961003694004697581533055793593960770216940453056743160322635400315456268963616925412376205136368292528469716037325238757300019682389201950097450661988527941322409706818992552280344478828378896046503364540583422274886485016634054023723512381160908063445779592241420978512553035171749435834797802877104297411909745615026466731990575117726097778263151701420227670703043797228021948306439153055553510879874760374222517189161625633829412180686691361562788574250409911805732534254642818870085817897151324790970606680914244682514586755773823839831847067153679875998793239680522608257689407908010342768717681875844566470381538081113491387845281341379582342123098524964604946492742809779538496539022426631479951592182338261097164459168640522829144838172206295681435463059395482663825807855192401273708528548957564954092993391835217964291886344992781966165811985959194057091763529963342138162447012850217729745409365580762994244827240183605729319666853144968687858200219428020992285882536398276682522602426106912467878797966165079814583261523477830573978694414330176861602081616774350450637894866898889371339897123146181327107082123758056773823873343131121453742845449205286279894785830584967722716281219272829861128893828122759963835979850798881238973686825324895164277754942629267529401463762790872133174490793494520730939055423185280824149096298384434359414107841400501759047329243634639067434069430291621469757178253227828884134637557687901553480916997725863278380947581631975975902226796232541114106011756816960860194154272771403829974212522726105692984669678022734018332404408832602008298510371989110524136561594786341482038208077436604963696805020163666025815722433158008150713235116157647452128555457007747962637930893641387249685972591054943087414196496963380857191258618832902553790261986153111333844267738412112231113610539807720994776665432377597347579634827525091207908329123187678979145401137802479411471598498689502989546244541843222109001355786560608751791221779066199049623026663555217660602541477800495404552998315131707660578347594124993657505153895991930015551631565411454467306537762722199102876596899919348280952053150596959314829499644871694872639186584163000994984538275244604341077521103718799879050314538449889236233392423897157072191779938105124359917191820708887332310023890064615484106446529546902224700197390770850568885808130390802442986607159181494124944255052048473124712776531711986922820715428695784496452470535905196362760175507287642859964422898099308051921458230203654169917497518374387881118556069253132407629692302904933100417160629749790781968088209971636928805106203798899828734445084503524353367709824015343984912091062183916243280334673467698697197898834541035229104576149648569427305187049599925579595735582632496951700820901593198430602709462749509347472334117574175089415880110723343892991894951296353506515414886015586526971789455305583223945093783475863494617480483966041619819078278469845091756938841330070636660306280457649995002722229852043279686595116362195902192731119014206746313110576008283254291157183314079752060963139955752946806550420912303082508586443652887279161906582563602328697999049756783080486082967545960993855197108417814894324242823936913640481823497852113738041623482063787297802203986811854512680308992382961091541552791997334460002998087930149345174696971302130215452289633040610825522428923043666672721047057761988646491246217874788782012112620002631506835604169177847880721263590629788547942673695163544937167258726649150340893705844940035396536590138706762201017644084186531119030327774414021356709719351405277304231483513966905186278780231752506908365456888586811896154816418561110745737321086308059325369428063220472732207754928222522295225884056527242925458687748223754778382457055631696938653673337070715723980785547806448928442154706311534907352988695451759636920471030020653106454689581755953715029059694217186871154142140921959754613326193271634317817879667872854768871763405998913126965853707406886079900990850317212802348978421599728558264329036352343311488449704742019216551503698148653020255489714859174945707134243715713534022556926387211000294479454997699658324566381113241943645531625863567156584829276569490441885463038045264949584746380904398453590485157050292079714564509566317968005896543367740954838876456787898277534122078315229362139289501725582118720861396876969874621116750724506741760685717141491842447267529986426895825210518384006474109539463204702095019459839875591925571801032040588745331716837276851314742002613750877496042652380665350730735282279668499136977994022519103997753990340050163753069416050495666976458075198904000490972524193197596841046910271506609573093346417291430057435164862735464710447095127227892669441058006578442757244982341100138848075127212967895086851418701311132161993571696334528051088346058739872930355192303904102272725590501209128130649771872626237571038879473016989556335964306758439838732736648290984696671087041302196415892787325284358647316076368672031193487978018683275727362103556045228448497888815783682096084826996308379751202585075544831757118978225191762654148589097999704533828532988329499718147215012864550513014491166559593443943299368667258158467191987269069611510175356953656860327905863224703943226551594667097459093221612380137381855756528284891605753659013318046343241208672454315041943626880631205159543580244788050340248299649667031658270875775444338684162780370556306300277064531183425666786210735171031513851962986272816188595754313348913242795584757664633772367219955154259332042406273166068762529119943862014074305981688363168491884101348463722990956671148042592008115985572559796089950199925227277189307787795464719044391879122734136593426072504736063797790257104323589623086912375552278370855070024765879960674862342667940738967999938296264774112526467775128037328579236468985854442615308501060102260566372090039250180618811827692848997562048042983089020056142733822033501595976613277273234229340716666599798070728364864156089122154698762999684795061681463287364476317526880959303699991062690124265506665895021770818518694908805870591425682092888735245299896480241366268674217886641477072481493259400311367731332640993771365065697254269191472233057663083994724327007490229047414184707176138794791883890387748688437207232822774250582863269083087160746842163697144809251022226182074829934273474893983064670480343824286837716705753148512487624915873653746125325221191532357751891151904229859518467629039878494440878970657982454611400802363902490684164830093759190197505104418194918571679572518985498806607941177273477470202631127546087684118706296973542921848489895045989290646039184762790510897981177584445479567155084023991366897108498935634192556013561274667887245424278802698235303088073283196207686082976726636350643987539946655132104422059325506647537394009983194459638467709743791389366324601426623762052593446998548529969954927970581553139564790600373026819175258805732864541491129743956154413228808418803443337558140684344248545517764132941683506511286840124047907714354677187318945802572048075371676272790996884202472478651600387464667010741313567100696209170745291140151793496650392787910666153906042118696102179608302824943000708045340180089542186249533354868727951195430341590581819428840427391498596337013387753021274940827887886714037075097077653843969777201086652290948664799859534770669411388978623127745239278776677635031953312135339306592408968258654492050565748629634321152851653398314509404792637304010093436076852953807161493857019954222626706320884577883279321426439060895579872701493275870520433314783626548562220686315954401770790868115211807293102055061318632424196809868223788090454924736976182341728315366519649359052635239806694967296109022396284042454133935724988538308299977923611020849166350718982708416374638026325131758870208684536319428083003088971771626126535572462104137137076181185696946434918499134121490128976510909047844909821598358349378499101775762422391757451733795661432816947151241587409104247870429485800872989419902704594879481327334399154805132009536702684707683561744197037415863297060538834262584033243790671384754611212053507933413586441940230315179641838617445038962633998349706363249236643624168090171984904033094416252087954756420380361021233982015591726161386981304278154199508534418660675004673221122875280221038551120652591718929913281568117915085483086871964865513487483124054434290468069244684357426664185676646654498228736602922748858448716752998793304680699280754005123326026590549913956544308323901555107186383017118058872836807514357336222382652494270464480443736797793895070379206540307440711175406696775409089488120180653662416028744794470311943955395379384344638145188333362446847698372051554983213420339343877279851211890482085609504839091597282625966316160623561807847003418593771904126122704668864074254262223019866259306013483811582894919104262634826321110163953526009556507318262996206054168429001630562195937162674057269548870737201482335297826170269717372107071696601939461802705051295407441551350477879515611127693595561547771528330646896632662641767393194606407938357261648577240439413643716751655381745014167862048083829908509805290160989388949992406927902824011678715454996410426687763219876685227105972487013434566208002179744673914995658236199476754283942594112423831948457892564239926887065161501969857293501836126816416615388426159689290727040449655950199047283289717743771887229592141907605737512837565879268195107637420815344613218105437657750861413114644665414276327245708541106600162426809528213542102264762705444088729805346260857454318317055918950046716911851319267801692160802584814848146837711941761793083135471693963874719295012027838596952166063127715223992401179178002676766248668797258719992295474039916308875957006519320468246241561791485003665615974072561429843742615898006811064702630667698601923531983647976127159979659054756828292020000094139634369719661224757551739381864839306921043237955262071262822894897178802064773756729401736290257109425134695830111213253429911586670996001630583707533516468750303012220093861374134959791611712438209182641088024442549438729044830622450200519691413555339441614103165780019873313406908929093626886281851974329719952890552125908308408374010950322304056255656914043029509735152808076318315093314256678257433154166879956384377561332535460367573483449989126575772163594773027936915704594818914777556904579714845193869563965333244834557422501437179510505573291521917926694156538290451050261381629077936258868456321966908805378713130279353675487413273281259114764940561582149963774886753132950120096261217185547747244200854825684210482193290370512433671716807830944926143364389525708886367134137382938839494916788735328775932900370732033449661247875645583698883964071046177561579384732061782143981351228026451612883193982307355048186854716799451709832500828928053740897686593585226222667813912510764724956948748356351863257337184668719821359019813966125052860513304780874241863373798520310418941911227742090079211187766486638568111150662808812747678024946659566433015155765329274388026065140066327324504576150551378157384939975317624045995965301098171461997800675595273613081856478225022812002041691690856039504386488666643635711561373173077288940282884060220188616994065870646226138489309070886257453593702641212079909993217137728388680964779828058737747576554848183364636677364625032486169136195800926434678441136382619974803682710124451369130598210536559351733781829654297022681314890042479616695213721501692732173124086282617453148882141547309962865523218797343316659201561597810112446675178362830327193541459222088528991557589224404759521692201865356873074922491314681744019597735179573381476952199886227805659949526792578424762263620303973458034113173701626910207560637586183376881128805674680762063313212831968684111557524556296000830141324025766800899537746694085475402165777974981397866472411639834999395211447165694129502132659601324167142956915095705032064788219605163963801897394446586539703941526765893837070412035773645430986235892293483844461337607444147093121411048550587837997137432069324196172812955733708905096903273509127679405955129558970210006776047781363517855421499282649013439652525273897150072769630300155851848597589463860432311317167412637611567010536122257641914754841355917376789288184748050976855747166423305965718701715482229002234242538425568862801514458596238244880202107235648145555806976359258792380548673180562433988604093901140474200347023553049782530493179116961157169501517163409977380242674199344592431429355845958828268686434499743978197456641727559301896207565775445721573405393644878021061933667574686457248184123480857654119628288138349894840720152140685020672305376998323680647812822794932339850610098019030214963483402637954450440428954437421169291490269718090688993770441888489529764985836499626721583898771782843024447546674013809212807377349442497427824116343025822902478735495322960521971910185395697638195748363896403263275764619970239675286744404453727109824331682493907387778885442507562187696411624915264127854301199521360287361877324289556760792903931140380731156331243933771543940361402017621131986787269928395388377497331732062252882261588765245214068270468804116032934508737140693050602582968590628909158837334185708899588746850738533410266180530054766441835225393791011629456415412406081195121893176324332097562301952183899156113607604992775584199781501758463233628606310710779212534370765267583360153445859454638062318395216960286894172569502313849067654561296198488940278448839810639850411847756206738672233783713500009458387714501109288118031562464535656103503761663190263066440379599500619174702915967896474389453028673670258412776066917650380603188480460090129070102836322994017898438204046608393133684452285040962883614390242317393690698797030317430763605389726251082732438560684520291032021791118019064382114789418339446966114157340560318946438111213771995227002624525773470691891168512207245473336870589539075565232843801757133355018249689118167802374651952454948881398486633010654022964234226711919627505974948492606809657919978144542929907861815189753308931058538959610077904435066898006450952144318372946941991425677929440788621244167424548925745752423464800705225051971167053428971450132305881264831210685550413281176150618818481996615841166199593190093814944602253936445077970724621086547924798073443885006797229936375884178366867791810648150842096232669754075823739444468837319258652170539919887812462438260785324207370274442045283318643550969115998408705852956615274172682246535971672545060594355177200744994669801396739674364951925246968244040869736697214630101830628719937957858392987377261679937574231509041359506548655104634780929307610042208753438522583205363044998343639416607466520431460594204775498098455609680582328420460101994839192601803631964303803674445802229754711527074870159298230744897166066097369159302294590107562663959192277470864857665507384587245073210878770518420673464024578404022776771601825145074376232839824541622545727622832752901593554704632251400966509801775571715292709171800253980402331826330269178305246463707911836059742129207265533741122706200620214543405847512597999592596147817628560404003213068566312428873051359187493624964221665368760958259915859383817877488177271252839840255942120502345427199086736972274919261335810211564190175646979109534063381490669980363070169727757237825271876265483832101751699154848728955317683607557859626648881766868721114563800093463788442780604995535869561905062893592100552331761145073479941121294625195481643162385452081778753973337528807417777992616117899779577503361482441658399779728695386721602963248063024978992685655477047508624475809705988384448490964196301230596327162858118042381217986217198655002933205290823210469989049370463289561496220006421926348158973108384336484179416922923610822182813514933494788962020260758661691677695341899443961995232156563044176098336203400641901829696815018224157141752696864370256604230743213781453746027510582234464398509764706632105351666716931839288056241900214510299512024925122427709490718364596642920833403881404704619341282568188112661787314685642235975214870489725643760249101915137197286307938215478244605695891943525167294730553193898971076819147418332349107719223869815055485483445470254628693835955322783222122468736487233435886385926883490566534845268603326899631250906159114703929881352203184127804950237510216888405571100389384006669859933998231372887436236346761208220320453580913233162930060635963715621087393100283574597903472474739297293320860502616201135707807375563997285528797460996169297827158511012479328818875360901585191064937405507224348545619682663168336441037176678794683154053941875826794329203919309384410965831990751867842062334234900793826392024254215095561066079234305559039223470885337276594843157669742832920825935136688385350275062123889205128515258334998626084328220622571983690692566347201516740388362148515665805798103488739673044970927848296987487472423838085010094354952308543598618297668597670728030386897370412910361862715081871582541834284178847410668954001800818923594127639398362808572344016408232635104587374393672984669986464391871226555809253232202350351807755438578053399917212565572239687701519361204197040502353802415209612859835089192560507335252529425921538813242102345920200041474503633972771351349834047525213487431200194508435572815727664142196979851423000929751948724697095575324008069322447915309845031791938360325246394465297748368574757277116628271798989930628887822632369126714645687043291033492114153290392349517505921756225103297566612797067856380143492960199712791042170419608245740929344730978437987263404224348211274896181311970302589325511724359970755197158198647103705568731823447170796481638968088516082931910480020769999505233048185541920804391179622788320302371226953949657354536384977137002170004102292341739756840942887524510421548907071471817506393992657627373474448243346783770537218342815330157517957056121295525081584882505043392071733067505733749241507059229032631969537059047769602020032276689220155816327812766063368604187121613449532504064220031277780397428366937162670532550060309949885823711165589896506664123198367036573517449274670432313088610897474228960089037736521576287361874835738396352847855661994890234600640673428385032668396337148384770793650886513726309905768330139278805137114289375852751366596372448163491975242701009887840440529855192975840146687930904913106433193683724802862563942677053818658795965177829097036987459938593659517010300949823170732778373093290937758848022170690397178755878957476689015711371007361799205097878880429551778959582567121853950906205564626208701225101030126662771970897067002579262022618492687508443506596888411527954842484258410452543475658999000792934945042131139502278818539469332691036804099344348229676052912948560278332216666467667724576554204913088638593695221145270057965179466004437807759621960508226785542226099854988782392055702783016398703373262521389928952895774804544530582866255292534470774373713611700978654990424513516981020770600556968199281753324026540507174542236779525841151793828701834562715926745871357933233943217575506881533014555197801242548004884905108946250921762890736733056061835720362736857928180682875004842870062780631760279913964212543976079024342217225723201365576021428017506872210007725544717775361201241366392735361304759763520400126976662194897905887866815074569047284495125097224228100610584597289911793226632254550900177997019279154906134362914532772899776836245468825256970913006636428417434577088644111111331377142013399621436034055325834300457110759726162183106168242848899882211434226843586185263308168001058361019971033603969734001308320482571707452760590746672689052152715303980622005592808044542549563022153521193477284770363654931820765483494658824734442217384894087936846615100469649470812521323034194783225403664522907953278272518324147451668518437049169309786561767975954219836505391447519891713889695792017001420502985514442654654621426882034759876296604314793492878863011797302971835990890052128136203721946990913043868456472984786825178935359545280866096131370284244945082918590907461143253406044849768255151083829000011775001528255891196019424940872346421823703770189365670294384396662768585281305824788242193389680814318064623874319309583453100347438601184506734101406951341706124200223906202610597608145971936789929767643701946517905161227107684981434563252510688516441748970803036100681896408991124656890906840657925530472198712541927410638900106440732204536665542876250489911894949348141690233697409006780903959414156607542905689521793816591293909834225185969644738775174936169366676200010950892269568854831851901746638614791572715754612832611347141355046940133415523812460316329782995441202182419949426434484249486191867846743343774315041899095569442394966357876775472996993309719759693305446854398762380508239286994363029468177239094689108799634986932602877187869831974970452920573498889715087033127672703894056677887225685711404198335181776308570105804866260309107306564468210365720247566838109830668337082486906148741950526676480957146209857378415304737050874850834965271631125053322700636725425440313413148176165232010800908978148955881487939695064510735718367160169353926201193255924815753844519539568046664585515691400806087318295671889339682449160108756562000822865675537968871998525944129221305033322829740372145407912619940323103008436455387839491363313330474874479186678569006397867418793096736673597178980320540002368425942871392735387979449704851073680403260113157410118686517434068190525383344334459622812505814853374032004592648015096058630271000587396968574308274990622008358099124903319443864534082859533524967724553043158875497834572774526770687917954883324090845184937427689544242708681648762825828062185817737341653924772071179593968458240943623157954855395988406373210715705046949506836557829086268439343168804285264705639871553260649844703304248552867369711511081437150163855008788848251331031043616180187862458830463053249677570925896549033562682539603457051860871310785241283191799938589976116757766514228163082343655350192176264320514357539462342157472512582116751978098421921327024627562249635145813948521609921864013271075911855123932598165869214314524306329668407903759744097961109391627228272010885774183679974887635096559984948019158039751409630948754470895427204093039423530280138362157799097023537752179185090190661628825531239878219582098766876801218446941820161298612461460291563098426491652221694475108521431287385728334346559416579365725431395070342315517583572871271655151224000784331153326791684802386196557280358567013030579057617902112237429647352013651787040032308059605996465536657632732371208636570725342622360024535681256801279522255435979219522013922474011640298809201296820253058574054147655335983302959067580007319256761168017738815537834140971572523828656793424668484264435994286187754952465204566631983301076966220129016475593761910301231309829253327359334505980765980237329604884137194055117504562054235985109644973369814631786651483760257978559917947192622386762353640291883058888100216661946326687223475557361580299133836227016280668673707966776679724871791680936119244463045860944661202561701973684630173288747129437806191451648131143249487347107500265501388283638732180453654314333081007615258834414486980177000600848843197041683585050833220041397858141839565260532005836624524482948849081711474834512005501807897864615046771585813167662581441822276175095935844196434412595992496309449997548335250611198338149160775991184125551434658397212403473272977485933474791005097591011749409946930850401983823675786919934389169315340364732959218142562337166608898531731778480362563648935485022740913814623299626195140157853002301345472271054824623785184675781153951100946207493560214096366528002356580133670873486426913839809147693693774982961032612340157691065211359458030554932053283872589089245356132983817177431166790326827028552885313552384207589845507740968192180667164497624205467435612992400151511562103918316793650109091861698052300542840841756112783578771113189938614480689841156197445029095713750726903629746414627775647376036256749039710655094557298929545923667598877851223336196116368166782714389385409434078180578952968173294723237687106753837096071767950210171200314579899345524655883555576116940705853901332911603563874077113292297221331687585831949050540957796181377426391552378960287910240492634795275822622704786977992619795121028913012215965750038673900039774710418122196589542839304707053695870101321342485968552150699608497842098654065393894008560777771314745226854908798013209722129438446833874372041393833270911357860744252164727430944404799743605833650402328429477801295477030951375710393534777282630147259624220503338272486977753023644903072886202183878846487494272919931001388473405762584767495164921441359983497443627863371556760185811388106822531300359348800817154420381580936539901157178243353209112968883605555513472660151835974858875348321041973392901027369680901887002244276589798073540923073636307259883645226074360291922734885522476403307754564394233250189560934670736456842879021414076985024211947766481761319366454872789024699066382065312154331950991834513258447397160927282844140898248242328303663412994969737602126460575837647455338203752217636936252849573440134998414333580924683215244088850851295698461724742631995888442349634592068743636715004442129378747716394366292004532155879274472953292286701315959754531252085397174016647249508162367080024231713154626101986000087339582551865431921583852518919720724535086348401647816283660762875238710629756123983439469763268535019110491039952444492658564691900246149488481865945158191468384365577481819548379658690632982902146625677342878468770335582271996233171256819517723552083521391948056318897620616463959079668304796419838695381571939961822563315162053902303682195191038564670180761082453897983866851365412322167630571046266634301584312677313558608469367256851025885896417649914414711545053093545960755460999330640056520986965752851256689205983111139686150871521514557578046702614088836992035677875554049184439964743258768207263338935270102007742736784642690692251825805605475777521863091929029927974357029003050267079812455611047570536732340340253066717537966653764207970561364515805596434691930485051914762469418070581369730569140813898898630647464287205149571341535925421362814953953563287815884410289410715892524874274242468639175720506283457663359059871833193261672549572682194025553756460225850401148833772353515504125730710266915820942495768789206830672635059419436563844451847776800569547336565332476691576350298237285493196982850019628784012377653107848193620576190071095618681171503627884922106700359181018820746263925476508445902011343090876087786000534870367460785106345940221760881024294218672473340519686431171754517865159139135678010842165720463837311527113453952816634365000689150896901675269798337141605356853104993997213406133729031815686176215663917750448650177067270380972938271875310570943538698910899810879089927380157377004942358041916727296847901988061494166357639566737812489046401646865496357022646294218697621545886759222168088362121228211499460882112369740629454648990912961106414952837484233301154885030623945082033059566204947962250445506365149809255331542563383367047038519119448818848835047641251694016390442665159837930297207254568332013526368116749990365965431496913852634724643672176935795908747318203867613664779566121443437479342810275378653777611484957890732718559990540111284386517965352374993225731336961307359798174311562764752758690339001437464184697944670647947379202430751338237106048890979776172767519440797268940774394874598371767741724905798638749550527670517541378147238381680167048314784799780701698587457417528074487164410574030804331443685178435672443507459978292161491904562865414078999680713616875867053254050425848818797174557379725136058790926318250436652955650342661510716263790168258901734301902896110862962625986247537249700857237661163394181532019778626859371150071406145422816636978194436511031617873370894255784085078023137850214902657230319428832210839461394750509272688551749039820553221736044115053011332260742633091843448536645803261308464659222980795396047806555945473859412767783106642118919934063213339892443441995375003954517800954852888731385875012143275754022642946003464861785689270400075016605350547655648946352855326503502143354079539381466124370898610673739007784037070880528684083729131022820072537985582646050557372945204908889768308931812123560491449440927625725906533032858640054576242337892087455332821767218575040661722719919644264427677262456758178672477905476035864644003937956413798580683406210214271088846521640264351088731151951024056346729659214739293713801940841346136902204043277840127436267596590696196090841279858777995369962449324628929178713094598248244953812041379312863148535577002707707873342258870015333291175587040952296243402066706859866517198968624372051371169683116089241099704783024866627476714579782617158892189124117726602675925807978143113322740847286531340614470023587782443866609183597762381001465524089123620255155655833318014238722654002126399031345783146088761330770904068197271273023288152049072054002529214854499915656400802715758814284991021077196163934450322568299024645256599015768898163014262594600113990878316204446284618486668037517871481230597113340148529689362802850944873234020081842008689926941399124453849268547809746672838679881818139989063061276087734736488767672625056755105410799786584723807587848344136878224807432880585678553186935030908957540300642469738548732305082158066352931336074925118104761777911810891076493960974043252211810452539745512040968447420474898471332876273856990251743830114313735391930552815943255044788998058698775163054045892434180316155045647333758903860158068031527494736717845975119039701652854738407004400536599275667675873145567391129050543569351833756342447846587830822910408908671734109810327440597245564973952459152851478145731201040415079011496298618534576204651129105140825869540451115743054096073929355516572349283903510393258679715426710819634467431811910592938464190106815028246683087146205787714589878518464541325949488827217995847624482512605331112307469775588331557381699432284767090263194515442665289727989748637378133546653422573422092220891393259507752060887261247397137893839025581453275524022009703781126518663394769940947696461391677824528322750364678536715119121978208462138216281616090573410988637102700942221952561719797098031413832802690636667920263230203963419499025197002573798855215947451070079648126699051953209068094955623058159524140562708423663492572798926292839286908879630826672754225140666560940450464800282070921910269372744408588885988018473270911344430129503228441702527173882681219084249023818386279366809570016131611157477757258679876553682647118408627279762602737610226999241871916567178239505755948620958464713989023751570720560009866038283046940850976203817099213074478749162659969557671400710460238289161470091641610887407527717916147931506198994672831674424865710660002694790786997956682702221414190813379430575727364434233775601424427582128208594837933108554126810901914612157184695045168837490669327134759451250194362748881728564237143992755652510326928285885937686627405897792750998712981002857387961560158852514716398817554686530909664823193532878036170964144397603165284138160186036030181141680980429668880682641190793604252121709243869579935382891178413331084796306836638135783338390126057628659529158087728354083244067785761630423936417781923176164755159889372056457484871779410619030928428804242523325144081658268026923408713452283659222690059056956423580878888591592096440119538952627731043478671280847734865072097203782845030493233851234572678942350794085617585374071305397683180062430219345271106792777485156081521750844958490479428132118228640362997320803207152255911979945286707039820006780174190897110220958891241083459930908047712784258605254626705203198631286725507096334008615681370315407408082673285522087360359152962290541476360367517113088080058023299659036123569618726774336034296218472611343485417707490157420804332163671092970519084909208706628835043139691770621872134419637789526441467455491614361173597775786392524677627005898770101460220096686929811515133016318436282915389632871942158699205384420843776713624067294363984260094446400075342410616503435641075390398485570011529042475753791579026346233121526310778591811151904914671358098062078574384095895512017216917474377991745037106938964705034410713486324595980205726415553093418767983273339829659351439886338722646493485852299638845216358286106596104939201935652659471061801076657723129038501029708169490276008137905591206410045275806069166679093189082368754578659355957546059188599012367788484796755384997811859233613599920722601415086407203242895150732180801494601820766081518308543253331995432597890001342952955200131302830865539720265748864020545327743736890624481925086759336028769944173990042529317107936385095154239613771001161576055743323454259411487195887061458782016387392598791383232740433215829652693658662671065197144421079584398944287251271802778340820652851453170489642449447725230473738370494833040737322295114740978814251052508573810225105660028462395894577507468493221904027273218493754279374538006000319651610679099035466649061889088559952602109543288837204627515210239885591670037257190903185168371803133414288560353252060441425924172950378581482631839588958965033548081603510432575935284409763011202366275493961571565335829110352680432455516390539341497607956083915659233618789126231637094819054522428754805242031449383214872855795950972207429114013007596129826837118020196965160532268347140412974476274457271751170414075236436366430215694704093442410382300067338885130367066112714320501869044762325063430564518337268334101772884011044648608615388722026361399060307754641741649807778040320171331996804010662492126028204833238967369217979099412189630732077818849309769894442943597250586440602112159671674072507111129091204201191873299610521835031034077560525612444526612824601438762045280633188205930483686514174008762512759676341288981294059372271906593996880834703588108717353278568842032872973723191336321776633042606253270558303096138230915694175341428881889134522006938835073301333816834687969321995268903021405636534197008947172432146142137597846851407769259909822889397430206871017844604936892755629983202010494757083045124891482704714376940864794726730913310635530485269411887227969174746334102509470413942215163906369739539681349572705547333602774706735244505391075207453731998198262391268085212304657055579403401037207405953184268536248712690001097255738182109847422786833758057575735905284511897829162133756586173083468939657497026514246061525433840502779029599293389212951350913109786511258296187417789446933947136771038278878161870255396864148556420075275042616451531629700842316583937344158126684343352753108430625295617564688965760491680519225417744402264598351902805810659478674103470576169622289740966271042416631047717495755083942959869446576361807053939055402506151551174253503529758166331907967341373367139574083158457112393546826107040269744659692783894320084893081173888617340429788149113700385720256911716603066998679030624239971594414535229549395229540176538628958497057994317937080601302363611666115366976870456340920060542480668494206417391236145710067267072448294323022484278527216979011800248587976730587874816748481912921427460197835379578789487330285625396320012979763256077926512858610048944128446155982067648308356075877844298291365634037305530958041522109632881230830959269528965549401439290013041087475463140057268396759664941533059040508951608624481721783936002615578335383284137751317553770506460085051559553132623239512754648724491392393530700609272243521340777112453496865845152066112804338573316574114863533699228547082437105588897747004108004609795947038593589509333287763525376105360588888058302804934870547796503071205860767446057243046824390102575484098913974558127562530299139384151480482262208010212756859562929170996779472532360632737245170474064114552610412677725461954632903304058096157420678566997323225548093088638551608636850432641868549513438687926005942959874656986314853030073468221898271251724569533830626448680176382748807083629664932720610346508197150819498817948220054460299932460505963022673698725305615872350189495010208513508703534802323361140646591173157455360458511483593235761075279262560355795056824258984532005526186383071299309303154289107475281848073114199534208386156302858722889701680518838704895974663146264143993733077146327495679527727787705140525573334379172265313680809037908858084159251415351201447912416728944781533695822441741768769980837026363172064078872424465391180305909513307541937596193505970860211659373686917447931622027799270317307573176700061141504982682549453560759054085434585266856518806947074071488903296241356995605453430087226744913041491526904875653573993345673419471982153445708866366924162149751839298092789959044561674876205721891504859742346282781529257002186539205188838849787641271553784050406769962946154469324156456479725698751157432678834837623560867408130472995486415030530038531312326106003648814095398246873747737108371618163918802431673434967748521712587115672954592534256015881082039862106852851849103122224243374385452594524062756729111633392201092724088223360789359551668504611295896557501749765564457122314240881850587041400292340832148154573244301440986125561192089778602254238997698200442074398259667416372218958554196164614572259867834928622551046482037930665466645315018394651139416606085162539672790845708235496388759841346776313431344056176929240338943670587570856388543220375784721651634184382577963857686355391994445254804632932924282960247903181177225108113205835268918744307868208179803113755951633301380978573272744018665358661430384034407943510861297718997380492276743916337555745714534935895153135840125878063064894754147539473362029052591394713758558820954842575261916353984405887064409703853755932472503954456844308016927063736568773994676116869565165720598300134922332087154482892716845506033844358607834029971577246367487266781306263473490744741214832147399386271159866562506487527601090051362953050622469297220886275236268306873486202514974235479211457790490314469647446398899779043561176758650289089540361173665389386270098343605193889098162123282148244681726210374671684813641073323207751586769330750473612470523774867514345967434682298049341178251526686137208717958825793365824988354169630149304651661250953002186211058643354666731634820763752804377002689978639594136396970383958798384622095723844644916113996758997024207010461925934608224136789640696172506410429788767003989362787822253053932055556328477474179103903659138666263909954748038402100930185580389093752906532803060297846962242104999533319577499851289739584559296219772122843366284071043233179587134138899345332032091049407211052430057929143308062650550524253033340244469168269526819909896125208099249482227090917304532224914922774858210496667280153647107793978668998972675588076396691267417133406056721249980456588555806017781414554056451932052554830588072934820577346749896009631869568312035775507806461477972486050065019583597007962032812452501455017849481278144160321861797319480135054702558829036315603422615527689584087471768790251626034272228565783829760643083273042553408895247081470783654604747276184580592104568284893732983332356207855694524564295787491137238532477975142954464258987627826284536032144658146201350457612642783541884025583587319270964734983123725397860659190347661139129432975937990158164078717636669549061035640663181206748859754967537121243803314236872622017618336489800368553293686699376610751539518038143793720944682125300565332858050513993620162189488640123160594453140871662814541017698821142361197726089497295258650830391761387636776060049234908308211066977183883177357475618810690773941130908703121120984552873057881358173204726211555570086189707062666825566418231613485605770196271130314998881245671838189958219610878245218238034685344197949483418998056051608962331293341180342839998527484413230214912041499517946167003610634771282607059257359661183978316654057098431468654686310842745179128183548210887550640030813912461495446727547697970853669186623139955760955634854470453764156037607498564329819301097374839790854239123496010208379124101251502911877240597644064183014963006164863472591005402701066984303012115688170044650494136159654282385682697497679584247854214527128266712169819933760945400267716618067715725345446660891017667993487679566669907575704805334613594768642832007723249513764252781885632590847461050555912965261046011550581046460255204849237631024058304075732441093772429616755171249152000618829498014329527569646622730605894697248126685640378184157789674669856488324148293130905806350761055724544136516905636289794137443677512288800610674875387506772300196768307800210438059895384072832856984593678043556361346461522396934445750172063379076193762707099385499746708236898685554257581186080564805927577685566887820096216371414123875801769881345312488714389566845873827397906223276336059269968692714181361853892905006376343718555930578114141386397829696211874796829148113205739637751649316911334985157670881632906142594177476538026683081319439298742166636387540584487937583296792514306362639316793725631764058369566258587448227493627839223692321744536000625522478047450497105344962942068178248297513614058122055303800132069946377071483535616965438812650375943277981802595248337708266778952144276069902123930741456201729432124035531236068273588068865038824891795126156131649534046300513898583344306296712319136070723434205497523260179027157006347053178552392221974914502755856570780552707123717614615258978817415339768957878472339030993541360842130050708612616612966907233740616851896827845692134835457562964602106302701128154203398874974392902794623097757226428487188718844404709672514170635118140232340884993184324382228477314382479336656701818781196923681684640181480530969465945222655623009503295134914944189170334689043984563621345410433206339965846450855090331591033622968915305511381977610654137783523542925482493347605562206173114856462178084312154465103996180412791576740301442738996427882659262922428012685532792248570001245291651383726595186077459529314509242208014299418895374547114514087501968648917745204418939177020931196515091748522755412692043040885268262361125390673337031587687420415008751598832747409095411477892987738447537477601650550666073990601693421188598090576042479809859983268810403148809031852560442452144636583350003835248656100986877220333608957642454282799506730658504046601587085665366336712599139581508685060781733515958775298016857726994743909012014431648253163350817492882473372290996967740189494307675395130682823956567777077028683096945107801523031156624369808323348807805860042856086470395767629316348047638712848210699271495945245397140612737452527476310139777952882057154716310031917570564926463828909342519498794320043578107685264398306018321661219443773663177275209277109637657468983485313630324175137511783829086309457096979639482613708221597625441978740299504524207333448226274275992152140647947097555952553686965234726008794244877462310100267518381200031065094348965352939194449750056858494987372463163651407452201181191240148621561075222679184460633347445218194691321854761222175410066971488882789639845568116070679013389847506565905433238637187935512869350943164609954143516655370861638682192051218679292997153911180252683733462711394648612360034468958896742365674540259180413774418149843132042312233555556747118704103952704882409074193624546893250344873182933440748864709845618095253978490523396434555319885471483839003779404802439664809885870422648333720562405133203319387120080851144678980372656410590738497715084073006880868474129792019855484942456742817260519933391174561982582893404154795967248107111884079907720880467906132840994312809879013246732383442633915651563536545349228074357425918143879636205490838146946282429851308738297186478635242970532424097547243723347175485012813160809031147135347374956037313842218001092682228425339164966099386375642612675287537479976351582484780163525919660351289146812004931478069853872386662793702857265610891140397573374395912123941620852563955293877932348435011905980893585941988758354727498654974194298061393290363299525849707272122620701837229268052804066483193336824864085666188909105061613892804449968016294276790549796000621579028419219968904824722238541571712459618023007370288237845895185638655934242908507209583820961490216120458138990483852388270309543762446758438082911069567506610876760969507222158460735471117660120491752971106509731039606571806655461170224863756759331343620358820358977216574364368781451026283196343576606117431981050159848096564292731842212798591263644402087404020027263803101193876277755577561823295059973394831305532047034170233360811676095245125304294553278704267542555520286150596787231738623744517954626555297250539864411173686891748034475900869733704220550485137238324866589724983437975934973497107829191413308157497983651755090069543499937260670425215129133475310227835821582022109308960422170133061216240060772506259080221886597896081612903783452060200048044808926451994477260026785844433130601191580263690832378712014480596191854318675583489540446107435591093631348933506992597249980591872233602466887591332241975361544390113185861249774278609912665135140482749045852805286725092740928592860871629744488391462983616459536148980804891844220761279612218350032334749886093514502105064288643790921473076926310390531599067370205075536118682502645597082863969873358719963819494850973928426050324196284476922835766488637121401676779906716499664159029144838658166970710146792069184907357463219326412984435208822771919390112463317529071344224263565472632273369716005330711622020557826282082734324094504507073624718958605054856371432557785512796118350942282806377700733684908202721655370564237452334261278414862393062931516275839931188120333269325356783225008049093475146255146054854008786532663612737419605325386750968977625988982777523549991809905226386278821268435383997671037982510372277395602758629377605293084113326618894639592806470882261160003644715035154613332611229159019498608023608957721705254151073317960686806205642312102791993057901754933992178189318815394578561540709472881209109681076269301009982682499705618923382367966218830773174174455250799973759312765452449820233008082835075333347769605850843624211862618461135287895514043345562387200106814062189032609846913728972264532968851478382490436331966858524516435998827797909437797988377970237643643187251066893795602655738450967357364521944612495989402539287499658077987115662326184687963427774615756910758937766752534477007041787190341183986961334223929038074271160833158761387981091285331373162248729064000689268046764270799459096597706600857243445170333936079960737443415999912060177485968844938114727768905799140890719006448169227442277399180817082013758805403837399744238990560244066659149393745779186894237843154714386023399161617081517793745927018616394917048255280756787154293285924173622224926074586213873324444988728117150512723320114067997519826840227520257964511123219946856980956527400033488312520235803495375270532025083382594756958616887948161264035725885754720610141142270310448403422421568687465892713156687372237698983052839282863865074840567211611050593572675594620951148931443524777715006945545786068656360966202734875833852643423573048953675895193913917673458713003117678893963744150185731886790860325053784064673575800477714890405646718383057486237649853990286355052847521112410361910359714738334777815293380345441190725807275235863194449092186714131018533917214593831926038105654157421772215087830751874488762437986260291031248157595383313420850539690852346172214784921931424462318221651607489978676277580374815989250857950058946853134832182367801081760991669995428282354635671852079381893113831216609445402561566729023134105317071026739812372805899758127347836386895183223985335031051196588740722724841823540313665530259883336807908470795649382963477115863415582066578676755725599619263775972608144623642596074253137094281142386920591651981810374484014494698692447972962517587877195932165957900428242913059797243441036621432289524216655302219328164502181173950896658187390339022139648475142292174634197177157818837420088316276811545392846659134070680389341304628413302484704854930748690504119448817413806192802283030214201431980567259232727368672170926644936063915138126476891139015421994303127377095598204947256092524104280216259557282307614044280785364561540737964847385711873298281235855040524667600644359345615802222689636540346470757302108774468267858414785286419269884552687094167701987199166310069022454454496010966641785818634812633215255545566003572079019185850599232080127421933557233342035468856742914319431782954271732044914981216444825785917144871525452446461358104467715640656952263931422561172422516503106924176355413373919941490528280465817695185623381387347352319608599253288174500520292815012698099325114029375328103139806345377159903766951486290104900171760972774303848940450240019532862894380078802849785529705953593975350433295828678342317152027906175078677519495963954534768563424001724211081000347255626554776763036463456176147704540023527381234955894202105066851437902197664690466605716598751170292673723032284372097803096512795299123583303317664454199048829411709105284786922223655769554943173977842240838752266864415107970824265487769864295077981913988271615952908213464560038954425721376241870329194040045038691720235872586295651514348180967536890053502852016039914351189374512206138981475024466353551444511731902940252938507974872280774239321443148437865240399030204270368779739334580983778913621180578190183295504371576244193477298041717147689545243880949880172508095611577027333892198199320329975281565280390279057484519492379498389587052760083211262593575010314191111558910426909190437168378915416075250039966933468922290394066669006457828223926539368877005580465924209921706789492153329837613233711422200625433923170104515615436712277908866872938086625421791170405773447379661252647983414077852121475035549001309125902745110980727308533266686312374520224144555740757694986623566701414579721766694422187744603936337769597657666675626732768214114430224533720420530583205341804483675820222812992200670420058496340560470308144667250111651465655801021087848483394451738400432990855444255907549712190227244443213990166817221101241038268659930373356507612814243725153276518874529270698068544886377462242913004350546299087268900509723083076199425388227343475509582570515793815621650380119472599894515496999958151568874743876538177698732625564520440811000795254727161685091205026479101167741548849973383920904731309982756134051475648908856263630193962317499604930719341609423979699302434980039286085187360662101351676626642035912669687588894997811025075859538586602348766695370850747426885502375809478994704098721330707013304220399505870383755275927812136230710830022176069108358036599307225992606511057595046559761929294184942322897662407139226540255218832045295304389356903033517678926120150103939718279443893371218567590021652786094671873883645301000770388772276920995156803753996307974428479663496168870000749551703127520585196865762737069970587551423130632269613614428566246299617428086443303407727790847349833004135924407362559091041908043269930464784437478232791133610936010731881065969997337690449232360671444449440482708408861944457330428770691802505914841096181845718666460769911826970119680006178332212998322563878108771586415719540475204322408066188528691883583926901166166694282966048600028326051026654296213602119719044512639830375309708837629180006522611982800677793465222678632666392883492166217947296564110381209072603494346943283610654272431087107780230727783869026034823736353434120891078250565407775801197948639350595356286302967131473653259664521359079388662087795205758807651359577689579990443007587068476374383979172082221657018686767979818755490140672419221507166996167640376154228596935290929823478906992533401430383600534543208764771127591361405567692175199711710267740868539742615088440468092510972275616090048416012016452614383805526800207162756684340277239253741536885918349395809221346138882431838206144534839643710324119868226346414626414551279508638128823613457034831956072560973216802102695966679019735174850147576240224469687467091575021156790905516448585796091537541655852705494062055549405154843216191398364018800040524573131211271646616059441040077285781406155812686210603839788200798446100343001549054799007658609981333161913911910121978532390635951753054992006717859440117514861988256397420948919736578224789851154063108277988907261375599260837436314802358984599566523852891107217010159027065272883954498071186013128799397223817524211567943228059542987402180813757865585255704304932409437029169463705167094455995085256846943451601949191586730236100285686571790408635432192604143609533881797103135101950600027623946194998509611312392282708392364249794401400173638134889202608550987637771384903143968120756620103178617731239921868757170302671077567635044049667919004617228185398246661896869410996790247731281684815302502097873128301584912966230947996095326445756319587726303892476651297240936634898130266022073096745864689224803953040173386913319050133041951129432899054203924822061286663597325010087764771732818163350447142415092426261284263880323537523449980965936425315717538125167720459272247551639782354515454642566285765227398636714797631119169320369485400834025865609445132545459067141503907701026284585668571859800417311617388066552557727916138527563864924954206301413825083627045442418381995329337754546182345893027940106164115403438483511663596417238241975507691414631446277207148481006665597708250037271199405153177338148355016644212764122458857280177437849684697342759823629133696268827611845413372288765979167959166846700799013897289248017046254620338781827602566179118622330270460367466940017995673027355811686685331212642628570606013688372814434049963913175937257194424880744755066001359796334817718964498401237966787798433254111459330941199649995375136030679929991376812490901889142388434442744892886899610410813846102750391591791412926904406184758337274343917811489887150379792115938938623329872723750277725257680473055599078811239928864998620175546869777957056141223014341387036023598318287892782530096415370342131855089087059041110101294618446919146740132555830249127571752141204157667448549145560424206544615607915587746373778067155755996346805529766047778201523566899257246581144152929514857330142548812973343235510260049801737408169414918193102646341146143792952116081091430853614045855369398148517153547189003529857697774642023375966575520812216846300621914180232631586824516625293835411018543688028854444806215747530421768800231616552445601779977420193662664251300624160372010971817510127443191482928111828708981087318147436777511277256746296205813608694065320868274800214258786304510953029031952647874258043615244577023823711253401101005565144425125100501282691879667536828200524194768156644666317592697549514658101519836360050011622821927351000055600234327441903817887218935668547356724364977975738016254032385957714274229815594053100636133642050343660291064055670717208915983111586126408342212402435427179069160865473099367283976471348992108303054738952270191684345522373916365924588957885084939525568660671960328901434785143617852102236674220925619153804345963019323320817996515762185207641599440787575002136626160815110866051420771903824965120519410554004170660616236361915504572585650509283966499863960789844335311566915403775005355143783542758842223969079099942670694108904888956752263135259793921379751875356098012304615381923348745887395959603001537873998210231365193348736637949632574872697712730360766174919118575999870384325035276104525127149360287463793471421463146371889845517666736282140577432041406503064339097510287700803717735227516408455634756336378821258822760382057931258929994425345615245624023613654158483476458044163008718286336468118245062555447091643421481289877391431426199669617439511438098361384609965049912166628343077370014957526006077076557155462258724477855022806340367723064431563031742124323936767958816591599305096249898538622411699268003543084307672793049986033333671769849404265681082287723611167388219158421908300791369161805878557595747854174465630840515858984665650312463789875071541853760889063405452837236577905446445032213896882594201183875315987284267905220981834548717300145395890449507740230075026333197180341021140987873070563406542959108302175428364211966618265935048991021624662732129586565503051724176898475543462698616645611925915416884761383152770432301916051746699317651856563957455690044854048448674011790907240166191335075462912930032211075754965480669962935087957305334136702605239605851121498322911030989782883594447289826345049058897438965487533983572903378542703314020693782279926644749378381128507458312331963456406244973782779585379751277778454651820635490865598134550545362240269634556387080591484649533566437396454830833096067640921309033155327317558023479592437626384972895464910250025500946983617119386662399690959555560618730418214064823080647391254309077023526508359671315921164525975903550953233532420764321448377414996202220679142664538739838567182566363092414316394499759607642393913984119843178770051638152735859227170932766589871208128913990672466242195265401502744848941595982524690570311846250024709277888233344129600167147977374191979532054599601001786700228655948009757981246666187859673744880038465275041754023774673929812062479505172350730203463310804962984810784261785497686597693526385034187374035130208485365989465910957834663234907051012864385773350273196167344934898615488361703247447174127722388202178966536431752759837940462033281706619733463397629438022228372861200511515399484348568789740988940347944825379995462399174370469036914230250866069038002439374294753100837629606879263215791853660120445061602666007867839866382987762094366884746273576852458429612300239904010894086171101002918836710297733311983034388494199257368593881364671710338708419855557671673966916499008225753211988832941217281232791780808467343359320775890682213389437018432781078406706610775402120807961446017460460608939519115678915458954051204299748901793271288542774466856051406243309276716616399895241389044157426925037868016162292618444742450214002188213109990415798676192324116318558188485745015381081231899237756702627923308450387994342669525919557650121704714655977660950217873532095045131350351712649928099423922890030992643411945064298018916573009025348722770356211444383096898762224646748028228117091694206382048911733033451317379882898675670284681279589673623865531592283528440222778336331548214112169755166821012953524848603857311247240451216077129216179936542297350016824096614432081183052074450868821655018604298688639976256789049925018712248535221135609000824425346231729290367079446602763253231091548083523744275269348034723795046162405800044269095302141270777452264165373782063624573063606564424553962991211771376289488393828080959923929378903831438377489540366645218728794561049576710319217630148057596543274862830917416878488627240225407961961413438316482441823354484085043561859758605962152102303755515807212581746547629877852143017732789038101582858914612485955410606241843617806004397706854279723108047606216119943204887754882516836236309056182750323697558194334877141368914429163898233391268897798073033309821912571325653072532225086356440143861289027252541149851484316749470641145294940652004498827237343181026167220163436155007487609958997384207002358388740695643196925405201636752240736195034154666183987768516110970105277446820017489404719291173775356220496172195792230797381792462523632464739559413800356095784838206856638836286161522541623076203108778090398257594677993656393745807597746748414053038357318803867402658016061321363079798010448756263429525412290396845674982036658926988841569359960806340620086942895309590406605290560437293429501556658595731382211777300481865763084772708858041882406395669218372714550063831439734495508233987282730247746647911419830555780362284384689489714282635465001322953416236698737344674669645252651252725147392011713289190268449546882921855301115476897014795353363970300405374618482886759074318646796970254020717713460495542959331459953931744029195397968916878989144951666009398124703234923070712764438860568297235167868080755187932216347448233371843590075930451568368754229483437201404329116448796877712297965509537240552260051880711301573194998885760955107588465197137315256716899167905556965817842266738761550990117209730494875980920747504200482699952465136330454909740830423436091227018925812383959339219823385394400582797717358461107771341053110798324309601521299134263187723114664011882159739322790210052843935983840932360826625774436688695441112383026364973189705402645486900738980711390558134630870100824215078377002213451287958002511700845494567867350675549951044310130104515553977926895117375765725431510180921806752442788055746332756489014338993455872721356231186994610630070241333612184403252470243888574579287578387759650839383868429986505874388360938544352355132309269792650278068863060191778361280904769672536287994323804330505956146204067868647717045522148903962903810334053623240322140317780947112931308473145456718403178459695656874093877888161623347006142541274402848212784240567674165614156104213218892232535445159716863523181754970232435925987215645449467599524172507538591094645284300109296204831891177135217883459911822090179842372863616902379362645292522555157642754694812333378303258854937049355435630968172227923161407881961084454391253769876152854972044659313986912468526004572112600545659913278169227082344161111366369697470518192539283426958986185482520645603395812132728995261336494450204295811468724968629960329161750185633591717264771187738216214409277729663508505148908288994148154232327788813995100509081037021419714652423793445869531214890389080181162622843322796974340651470804522252558093088970545175965635162505101959944735920760969207217284413761507097400018904800070435439353470898003086207304311033974309700175068133896688330959238866285268897482745756888025576502850981838203535665509083865382404239652191084838567231984894152318670261802624974240144698707957536646244759219802770131732803055296375386226901464872669125641875987817085187103193173291846328258309686809421039931800150966314491531779890789870673042672703261427287658813232145957225383222994861656642028744344119532633657033109149452869746748151173684280056185689332762414789052494329819438344456556040168623275141433616068964429227510752381483620945784638462674914724276528706573949969854961930616055061996130946362989343455145209968443981316546470348714636803857678567065166559187784984391590240038753719380536353015281086875788394423010878990819064640236450594610892273094768224944261819391238057188146279326653095194717956916585424314004390436603432359927628252352652439322891524172601515518898510686166467962533484412191040545605158787693228444677583368705713027047392378623860065782938612170935364365198414915042086673925085819496840648279947556448423172106915179450732040612964211063787611781668706992372263788093287194013222291940879768433525946689070659174717922228427958125849659001665099289645965113236262910527688308492758761132424769536321520224335395457792784537136262329679639940270396906193868069370721213168494785489862358219275728022722073585701686586368994052834340667409043469828412821231882850889461528404962371037068917396829816512411371724640592450488362193389631770153396995834681827868784193334652234128293066444813156831051974476205742095574643462448419664317521825618064553007046318279843974801537035618245810992956417857700937208917816608746414170175293806663641933483568167337179184051609419992331375526258866566688905035497395921288056687972645292439354098058484370636665513512915524322660179362173276482821555257365089886614214773748677050704490232702690473681404074960175150432384115065807255841543062600442615763429219516142892939829700748572647707846413074944218855741858062421016703450421221377415196293538053482998637056549608897631914308576558949145206174980944791988930477696436453019673651063079073875870244771879821518257708540402913703050791649472158905439553816716828009370216217223530904217280888382755411974944408325292104799223732472765535891475830451089377812916836598060375501863915982448858085257668842730158770166235273566918901377924034783690872002499763841924189008090694216087155040310941075099065645501559463680347274239969265127291418390731721191908876015242314811236827441463222078644129223527199744210407163311685882497728942673406372004640414072839336989354078779054891198712944663973358351294106756587516479002216682048398501944506129882797662667798505228708255211844120410150589156818905814604669537292357549202041347443118368195187332062317579374119148118567466057516196163552026796501780223601473491926130062083153603728488462252277322833949606605012037940541161522780363224020090339709801101341409586207512307831411118227869750067641922808700957092251071325744333351956622466596993227245027299989829305900917856968095735009762976418585844144155163036372718341305026015732225084792705034542721730404629314079821410153662521296584208992502280015281908034812036556917218021329359314832603182696379577833476857617314133619133471779685983779925998550609690594468867693380198832194908688367793658712429755917450221245707260470294813294193562141380348547699316787276861206627567736703516462655730088160130153520409595361764983650211525126345808170462372397177423447870990904114417054854258716491097350239372641129045435927585256463791384035111971886732693663017706206487433286664493035241774453231864182612568379613895043636875711127491584515693271587790316359871652480837156502829571452538811682707723392916415382524355340041219794035975213842784738104313178669301226192568518384815090977136459003943321682666896643241098084683598889214659591499912537521504293049633122781091264972937327355989823591649490101794223829749816462854135580199653581707484908025399951194955899282224105680180080923232662020844117998659878917426897934088767594826951970646155595650941817719973377544750174707235920722485845328019461181674270658772208259939617704087345422442565591745321314414917294906865524618779646971151608209818350936120896133022136661282845343251776025605939058417386731980447421126766866538105637139064119609180122802600577035731623219997931656643307803649747972589028202260539519614260114899995634526961272439473891321959115454533029945172090914758531884212150473038423651869274996561100093209534810521227098597801689374320981000603931057980374320075966308689512573356804393484046377440046961501804872864876681107817924893496713074108135993144118811319165059498712205332143752273470163792368950343294445457439775170311428202635932920172307410752940603856572751792353974599000763965056240046148431497092248863021183407380394782534499649523248072360028931905546706642311662266960428443104291281006966958356830241023780858234102153240662836772457156612589966145506731547809275794525946912498311104810700499982291518757556747179705897391626324499286391544810820233029595276975791346625171056933630950848413660131458769460281611501768500720605565254091669622679887207129317298439250574791604486707171969105891431685560836431622364636081584711069938903745971676153299150313802323062159027332846570868924044456290551524483818493054721529160144354962491734099335587088493723889475913953091768921866824487859328698261165889201870277698522857002263717186090582805518446423292526559197894313290062401159434590433579883256059356184587765177910074029160744157414851452194819961521788023730345404149367992324181071754770532807542990015240935721380554898135276053290620387274177861971683014613710656356497647161907872520092578978792714551331646616334406994760704878297088495446766347038004282882707967522152577978585341545390032512959631115194855298480726121531411103262065627152473731098543081258345123164701416239835746217448691167046156695856226600577255809151386133964485089265736503178255699669357791609614487110877679541434799582481369608133533981210155315685526419839145118013627296437118184391941648222945299210201374945787049681749154943678065031890327749077731815219041255473382368122862619324285204812953290980623488003058857027247201646476458267458611165356540732631847460729578101439717766600080729465518132373542267611828911233155583552610088621389141453311759286151373153061190419286752864411919165216836188884437182515209662268584928588231653235239880590867859928572008751803421181958074503705922860870584250026548570419415715210526072440390724693742281168665706188405767082098584067303436832836648672410332666367469511057692027851150416186600118131151233705065654244713750118969748257112992995793698045654563697809095623725986448977283827477845827933666856819945243393743148147491149450467854295290931898443022720063683565801844721960416537951552853846269762661291026536868437493048296730495490122919225859336751598451407923489762130894497753632532432629885025567957491071044717330546268488675762550502977600044550664677964396570873269054242164563820588615431789961345537844008006930676891209223019907363699412214071531836796700294571345000846406171787175504292438697304873902148944355709586191612589377630007585223732939749917488858113855328934676622797427674363742580913723490547702868815453107890740805399320343359854873418994976185047702172755906749188724799077394426510126867781687722420917092848904611893982201135926957381891133665177719562059103785778224968394362136651698980604953548012555875183091923150696214806128331360098019640135606531318231233022664241774123011681977129574376477521184984069741313910687084709320965373801810315309691715934913523760898469887754448360456494772333314640897278364592248398731900834333531622907456702948612410104243316267139237375104161814453398446644107223871372155243585229683254411450499303143518640316211318538505648706935511817112761831860190828454781689897765819095413444012324945620943951314585136671764776561958675555100225223916615985720144744518955577681981905162961245797728458702343930740062124372889768793806594725233392980298578474549274454461991997766654967510970727497231533292875843808720881918482426826264921578434870136594961869268632214270576011627040963320794508484660725388473938593286402725717444040121489157845492556665382353092208916285439801482416677516543848518430847446188134437738803539669968187807521051617981565764140594962491587989003511471709859884307877855820459566713705090133085796374951246881176518393937522802700778079620820891031467205501899691268809073836362347824633893811438931936994987520950764608591713379892426676067933877878344031157825477339594293276505396890119196723559628361485817948099553385422984250755171587911226292044571218731010458400273921567715549231670011567027455699758867863184026196739951951370779539726787399755100937766617839906873149358653378839740073588103888113224107450006841007045590605495796345124524667764588574927004502425062296865978173737968901513962274574705028531171599596551203976554062477590380521007388205928363985814617805316203404971855836038158400254547897241434946122041308854654522069955056839230689629147872555270083897965554348547314385265428461014784792753883150289367780208721324069186680873601057634196010152060419774754852542033975102939425213492258037618248531868381273737075476988999110384573202190342222196935161424047440784137907579434167839800252699050111449158208413554647325515102757769091458099422374547212269785085578385211538330338460500380455508094313617422138841600695458940163153543238403819965185312525450931648563187180918460380085993521911001153834662121785085813786684200490368126791689214822074199992075630474993927387777446593550155458643992719033235460529183929525123171636236877319488322142000092998092287647840101435969083806362462375328696088468688335055657287296959212527623945010308124890276123367271867800773159323527621045397941271368356845785025329436912242677968924538871390505060127345842553914601522791067223839231960210026295671256439592140803188401803067088856994443525009086213684982648050756784761733139802330638259591978462718577448462397401086815129102895908515101239977767341033569006841976794709094236709054178225163443722563113057511286595495931330497787698831596249945037330918099133743488439846513121145429774226598093671583408210229539251937854100570994224514507490470099074753811998465060584292454371696490329799574071460774456918782384093436264023570478290954306834043418369334737217880789450300008804177343617730229950304545109950144449737350465172742981435841018232195347113549505592638452328499181088556358307068285318209571446591411140093572534632491841747823198658046542889930505669444180058983258644847528060339971532133046955197213289291081531943863342889614830400623983005906320817855351156015052304164921852598213465975637241683039188224357332332236299351266021512244828677246538113891459163519753723576231103537740510115873040954700379389269328291607930035582317205602777444212791511854486761909729089720946897305799671812419921356186473687041077598070445592283976522999580322931267008004291591617943138747490753393766229401798876381251492184893036924937877670829875527264362705857341967880642995766883829868773385668612478008265564085132271568323567506922103361994597227933954228734599713891913641327968471263386984513460646224138537046500311889660591165011543082603348977713614127991612058655305185683514122111211055446294260135558792772290740097827080836558684932099444512018851685694720831491467544806881876594652157692991678518058529321652191647229671786100278913094524721759852387825212828118664063799516745685894721171553956665483827588901080225060137787708392927460359998523771879501761456372806671907375921620115627021323679004821190220222592186473300785295864655409872161445711592129233737085234919953573502452413207474010842535082387110715429211183267866271242988197078278572452661862366548845412086691523815622331552796462521728073222559637953355817585262168497586076914946477215069745118084506305208061093632666850581293105819429595977110720266431539042510441415202674744749673432716753089321157575287391607638145230207192539811860746724741533656554702363014885202665701515944334010726067039749892541752319060660014989685200058632000379785026413415715203430051587478659426326357034796445269100621505113099666227461022404145042490412523022580434655106897957355076877960295604843815579712767208448408366120360914613360575152317184751157661115367817085922714833828351729939783799256377785608689109132796683146239485965629894404547641176036044625444641574993201862464086065963234315326855750488866888115768762114792601119585674411232747638042078359811958930827618194602451959134334711632508567109584957218341393237646395121704121525226115559834469599420167311641920180540889273080242548320208234982652115901122255845698011157015941670366807970438762955109490356287399562670876082979921594184259074433859962026042617369537551984108312416038424502621327699972808894813263112739894312566518166178936897307635547308538939391982016506012651449039773149549983834972750819036963089134453214092739613719351845729171974391815564358236654819890011696486237793021033562565900234633144709424231941176688410107988960226276180823942851581344482551638052948808583586228239039673185406709468872194571389588383112063107768604732711062624495969056147274890568656461793275692815133869670532884119049017031426524719855315970764124039714933964351139280421766769013788980692707825010290184957202843737940606365481113394248287047289011987126991199654142098291287498072818072836104594993637490600510850586225138567806783375413176662272951497627979961073930082000662823928878953407629108355914195492599201110824843809686863545162122992349021554525500200538397170029988426866693087904774715991918252321301230510948294309091389749492697052380954117196146873533103771410610198523261814521811088312688408148844425716224880323722108444086749070165058735782738576386848532774052834130011541731357396812105164374283390412077209039780408122686287132135028866194277682447975607028547379428378545124016852530321907726155584256652074855733317678294361855087649575420608175762144388188118329042353909183693980354856192967502291617509700033685573950386603380954106749574300288484718242451660443102883759899652082674533382656511985521226692572201970147209450345412689628785885643039649974056700353481730066579081637314458258016316316502813013902774092121310507648733468327512181942455522632518457835608766510198457220822081878905823102122618916689281796632325480829227622923634609560119804614046860692128520512187630265906969854992921337053757184926117364612495587382206664254243100014611411749571546176437071229909940504677317078912578140212790605923406308556731226605773571090273351857979841658287385092085458956430203461558721058888693367716190678333911359128057608993404400857441346284362477808290836367578600934868824423091865481050186618437812667692339107637778084274837788914785227955343280808861305026958700136985652673842482911049393973423212356721114513346033515181946809621502078716104515553936073716367289785683438677565630531933130069523401442848812390671526730404818408274248194673687369011485652897525734284085342244212043640152885283682476527986327477730845268160925076431875844963474816292278906294369957953139533461147463382402446277540033174909562834355511557555795838856185242802619199878051317166796761696051155761632377778292585170437598117924368678368227070113212562140112746713906194499442508829226775032079832506919886231575182262123639401816157068359737434945830429015182170057613598672889488588522035023906190169395667658863462453674167528676237231422909568582462887399510449787000347514019993779841037303740104392966343971679035263128526098316610947364084890443191762745510351093497824092388998184485478493532338429856890513836915023888918358345381862013266179677284339788770241865911576836031253549842206940083479509766585517959068326128409614808832396989395056996127426066768578046321718005051666547826431616645078648986521565063438794014745697433281610506191823861525805939052251458529616337480699589038957645993863506244032948914004666281431678545601964861994486721559189041111753209233065634436595210932971212826435530434880298996069882863626782565478286721439875491678653259553223556789852549087840621348898311802924552043199505841673825217530998621397592268632481806787621360380818496938086596098948055062455364008957530162911915730451826414519026831766081575997168701271293578566568941627776015680638953870626027904523228152128906612447391761805045344621029268135972352489721202178542063975938654685369570855370619162299712929254088955279918830610741681278254618216016840322983542373928103288793020422511865555348788337857914444779631421646635952106593470828216475825732412242563057741972997946634489701223470062703322901805342435737774652881907481523353417825151602069316411195762809410641582573692921107985421480958243640713161526300637150995155777736462439330849700449256678528977519115396017603487491401455253787916361709254321272652099502236552707588083672432103362267933997827953795982636757537222730954937992857470030468840394139057481172423844645653512902004725325345836109938199424363776042991601590809447846207186764700718763053058030338519800222455474822837591519120794840856407902736622612095551298418977159704616105114525959027893681079865784301846391089377416464450704716433630375587872535134338486593267851379012827528879247282977113040321998820318135380072273211713231200013914622113529942450044176393737579810579888255687531911108699719117913277781454592360938517964024550656197600351267313939630566201261468026014109917994342122692379609304450166846018749325743577656174646318080068863952630156308705784375286360527852703781658286850881266642398273548256325583739375600438759476350982551020770858649122257190349268523538957831461808357930681400901464800427557313997202672551531666395751502044736928773417196795826565153097752545789911546384224206514819382432024227138746661019880011533023641337472499766455068378718809746851994051366390469855400665193462176552215346776343606657231665064146952948865521765388512914607726685706237918155066024448111544373187812808848859150163108568233413706245323425465503163206455629512816970345005256194981267608994161112231499135581601780828994310784089028424578484051668789982567302206488088620435366796796916802617893154912737528641973771117803627395732889730495186141581806859787281042038809000177802969203414605096959941618635913082065933813927940049985741180820209376394505580564041439672258583162102144541869347653536154257553799826026341765948699065779354249822251190693550310415975072197363589111124817399294025292285720483624192641215475231266860680355130403173778724134991581342918267583622188382857291133810522658129548172383121786389683131749917110364264425165635577037399784248981239310079271951930039093738003989596224331237027687145635362578776198130147116133409855011001334308766305167827474032071116508182175926820935178289352686107090771745274642592710817902473070980851821317947632797074963324289105036708359343232418368710572266130987544488792525117350051107038648523117030832968565857219229662769515242862679706060083290463881709291824094377689150735883044867692191177201245460687579589810485806508716428168865442537061987922933955653830875927709299089963494681903772281153212241084108061420892474447557467846931257105734772075839668333367520889738064107631316224209799451545390640227312534558693607695632731461856675957929276223652383011047769195240188638669081285830224817253957533332561124761968219118529391160486590201523493006628367442817129060860443654006486134572653319615277721996375915389954432199312301545374146421221882209569362545212995956728226115740424789340079542074762757575070599513114261455682636387738232839511218539163780666081388949446273053144712648296320692984284523055593062913447447692127370705826673124592275419406505470681910235404130278199115422262596115863034059961909673817219502239662766244709988482399194509387313543071551484789474135918989274288559103755308370040714448613948968560238415295122231675097880252238856147586540373133267078222236736241276608807522640600434881113086355886887943739455027050931584584034467280255636553456155149399984245155970398629396053412520926878701387953876499203834582748748461023271678448047845233926131717912514135628271182181319960242606903113104859700570770734993191902672279313657802558008686628658391809152996029664436502288357810661150549749415855193156213989196662916086370252889036252686055244488352551795342352489696628205000547382878226685583055803003096957771504678595868445521960159275257272169776636286956539818723994478570445148455317941735105636040952935000972344369927393280490042508999661214403855922367792279088749667103389656043283642416639453693242823730430713181538500477014698838954062324432672123404863407901548412336721662749107651286069768352162971346541469729914230395418048268648142813787469774748208107180107776567655445723153833434278721005902330407290571349140715821321013915682776118462270471877154236575454656274359787689664609456329239421800761942563415426288481958148143518399912638316328471628565368725202971684281277361360669249264191781535021966646450348629006124920736746162945894004563478761749490560185893006353254442729663078016989460537417398228021144873104803113531221865853400367595502620305652620607885630807519418094002590096994162921255878202301294838376707940766145539081580030843137659696584318546836268516229291320564188816797123879108053807871945911709164487815195500993060239207225853672997096271697451503949339128138002359142592425946519883706109933119866102471764413389835055653927455299805969526336799632381200993428344409651845719279543606471554856590360379012392568580702936357757167258875940753826659436649301771339618409141203152911208920992833705588540865327465090464421328790359197170110564819690076477134012521973341154430055433893585902392560825564945590343719625171794393324866100720846634401865748763949311035243539312359887843579620321696880514849213912574825033375591886262766716105247247312148621948476825246374340962938298819359262705748689123368758402991415142321885092616612205087980654559960360054676415692214598116498001936605037570476354193776772910693493653627688324510378591576138833695618852723265747026332538494620752700754671278563007669805416238551749130126747014102567128839557432414750470849145818106011437656281227965607784946567490039002676555600295769860374185419467918350914822554391123081957500940928509181489377677090168337113054299501591790660398405270190483819403096146282072375713393451146589098478515990668845124601752247207457651117321741735679643393212916803853403563231746543723832643270786254467786458554272220798777793938674267313862778447209528703412682907156547938358114102108502453894320413768221897644537320801175421737244202262665177346940885161470859116977473228514263054314098498063056598589401911679402958567307613965575552993042328622352630297212647155551151754149060155417949067106357739150499587330941450803686726591287524550340856098868084380306060777151965256588150016241888611750968604495022796700793614012689367776381829969794791455167776245255975916563244432776685534528241257139584978973083204693250257047391462423997884951152134390282241655287732146179744185119635048990315804866847915379099548619585523828397825252791477251118619100440761616635226848497711279952875585189156649909785618113791424550592070197188231339938729993310433137944736057262039119463844867478696130847220299387692172654246006823897755218389722971654940764213295466815416654741007157137727310623050750233535500697489640651665492461758165792719774172298083195153761568223135613623755955916090164946134824613025271091178226684883944388842458675721395721358481279299344183294915361010115793650523520409066151415394192149554017494520397733104107414401955760090599373978421643957990250421823978571246469019518207037357105417074291465246023026849199033676643465691276691971000759951844643197470987206184210469960882146674665041341430535392106188999166367905917170055393899671761448754448643562033315578256841044077404389737333764619060871166347634798108556900924941506324033392832412656608039697335446511747093065188853183638950036882078576016284670264744720213094832534336547844917419347875251484283643803602881114877158301389340767724070821254301190816450012471989749234743348768934207489584786904394034269674956010458373747496317366618413057183425810738941574086360716809277355798511342334239074685750086948515425754982151632237035900750702407820754189902985895745254720051912615217382242443699470424203117977561947151777993199281199155358609207713414940768375622210511629759760248145735474865661218127104558388441954579578993825692765143828381271898821828027114946516895587999259025871973593304182148580399176296086104074422750075745662410390541703975935349698100889633972144340219841013402948857461957859363666214641620761579511510371012569824505953281920465327099999104920690855134392898732454708918497135959880626686658519031536485088566019147844422730866965624253188818923316338243347698964624056061205400750956635329061785576366406575358565437624859385817650342945400734476717544052449791614192808462442103589094168024441445176937067327962245463323685288688092325391616090841580368393074960295351322562946955928168576630493578967409103098812341882592748862697809698641378483942383445386050874541484823890663238279650667992405968885054087089632260649690273865189712121792848658899302589364284848599043792930734518316574201671496969587992492749111250147922255044268464611277696358541494142235030174100573382294456059643605012321301781602804114083202631750456418022813608207797105345604264992724417430790069201739932656249169095714596504034693564605054385469105789934334048051738546140523943644293062404886956188727017614023578259174570697850847815387533590865910831184673337524438384617398838628875022196570339627737793043173537167806673195738211646987769337964493384185035758673888521269817069181282632896729814481814286370821751237889844315340102563775319372540459698796262678276855549974980129282534371597540137809888530279410747224257562262564430626378120718178895849506979940407455119701560508816129373966498168646677381583194514899571053668729200694899193140131234930369039053534633594909054002521836688043725265946924577965124833973864169723569505086617457207128414789229921134717861748908857525935130419014125581471087234862624191074395524501345868989786510146362674599620026028736887416064407947093197627811753770545051621869516976704790470734099435527429104788281621850608146421367927106021285214848209917261178752914660249516298002073513851470478145885219917260971971783026798876993975152095493545187859494658771032760054598607205465782524251665220260434807607296761678749589773293627742521485626662237387013130842208145397106326734082843455288916789472773005497156058650153718155836735076626707351974278948023243540576200076719437404258303209755958666402401011732302034958187220837199754983995024150517761703053673015643867156947315057089845733484543627175135951872763827027397791024580471341790316404998136243524394426480138665098378179672086302736228952679711840685778531116536504714900606907020278530434423334216824946860312815051609137080404590836654549351991493163192219562072065400502250220880850810131588497741479697329462691930328929500569439093406804498294000368955391271067458124648182000552193963361201070654695094052353926752969473524178253233008316123880035109234812435746750644922798883159681931697933430220329024571176899294563619643377399732663131951246385101986788645775428189288835736746091232207596974917422856628308998362533029370659750638525507361698988939301189385468741213629505390732947574335435447851092510865202252803710161918461034646776878899172167754927520735223904960638099910402032331401027824673038964558450864178265895243362202254007929447277756938662761600986047614185752653563711666540350703419528904345159619080207210657391135423247062307182491849755087221806830674589953173533903705417556307846359321111975965929308242729894956489308804481582669478115114550913703218077562528564768456621721569577182533556865634500325157908508170477239478739891721677956512646235564121289270107094295415850912566086507034232356306370743710762543817719515175440194220379518822988591213848730505006064281504862324236420539947665563204869940253160478614814273014926718551690893196154427937306027744076472196764956247750805788115757219806737970787553070051285440440699468197713486026087090667980165277796016442826887040527159548507667286585301614094945606004983828845695162636828588802842794879704461077356977366910445615968104001578401117071904069489770507507928729678257833539927899682417387999522434078227828504255978586326388250105661452263957386247152143077518177644277162599513908003452933415935251665315096204708624339078613705092810010787008969314718847927670200589034496654822363763587901208543544968063142359541697500674349455149782334550740520931088127859462585352641128305651166294341132093746790561337135074873757887694483847522365473629493830614217312965675394735592552458330968845729652338221930204712410961859589837837219890317565414364940962573706835706257725454408514219215439000043191380168376503789844154214781349384604640858783173390794026800471974389014789943061429843142007094214781581034208565981773358008174948007053698205803392518307309529238217063468554758106262745692940783026676959122964280268146224092173069563524254333608926133801905502997712479111355588832928272643306668606175658649467023354934208407003554115669690954740367169003551518823141214848724583500531390227799455370761236335266565319402220573054967726052007944963103309655707733084129951530210367952378103558724070032000445810541795016169341279914832467889945628338298033708290202799800878857164000623485820904753705336047398100356520697220698260056620583596361517052028567960397087592007990264665855249769426282136488877527305880630139291296098964598312205858997239867735280479596642779387837966892513841645260553861593560574500860155519400107063220729108228721705451160562675501819549491312998985017471575952734494407889883416278973531403844589769605242834196026463437384436000368462918205062101651765258344149345518171871374813032754022571419349090511083798990124342447902972511297797459963944758890848102473862903798256977780573484818325663539340855025620618720687157022748342592410403454592948947127375817838304296366952550363764858118965148576932668946147630174663824664993871295170449209306034242700195582784358920454351552352779161818250783257761559811530173706164348937403830080552667675032767466562481225158413962063952327149046837931980423674152509352703113184575543189433947850209246350899868830207362713729339673531235654185909498244805380549295886365201549249895252892156136553982868515477938875490879108610611238873369963709380124236593052176663973978736206833426219971815190700004861936364664221613479090505362528434510107698703270972802078582733186862468849846546389756309478076329745827589550388166989170002973463701194116881205910327413373471272993416263495347727183267729605728937874077737559625250240016139689364644355459503933180923299940814791452702214715022748360695001141064373860512096024649622306601609954421614046936596928223254490155289336388579589629206339936328424703786177592219788172423271373440819597985579308631497063444486437364755080052117744186538359518462519874297482730294707694488354218198951002526048024867554902998233648429149504760831290330452273073539461225039159153346851963458620991251073975444580944727753277873412108556468029853889568645149813227816189532153986468808500584564969646406626717568591278004225309861939374614786688402392349565955873930068647218437176428171317106117191699723030001408943196560201266011616584311534487113032693669541319533109057874390916780036297430288920402602077964162462954323115550751210879246955410909571736950954886086905284155884893376636356304818774567985265045413917762256643307809740547350163949477566353684399626407335412576562271683523605816533216848221157360823403550647725404442636502972247839737785513397698606429594325494467351471465100799268832329757924337569174955829039289157273395140177439266721392975125939256132078431148517305604019471745116807699189853816748975964635579583876707557896226334123337275601352564089452304875805092453589436447759360097116572562089754660576117770309310894442093958214684017770256591524654440543571348967080695545087421403159721180915778978270387395434172867618392414770577591416454636540928877701813609335313521159562345996070218594070782502261375570999059082798284709821843035592402384859626351050221022993854740435953850739680625027178678847744957164394582453750147576008210961924970713080232744858968232356707021669271891878674276905659923607188122079447486056927307457960372337396403067822894728902903195817728269213144543029470588869902596630363234990215034428857483278665121698730267311478363726923648221047630522492650776834974415378517944329858419811689536702670318499095654781803469022022069800709346665800071472812146344800730088841544791044768383417044521887501354449211552930327244014617099127383397121739843017578658772117919888683762579140010542747851833052866481064498316089687425772831818562531553966821091891307449513643386070250541694150926546467997432505390502948288773336027902359664539242479774080462676747831685920539669457231477974511339498609360076169841671535092745792460944110159357981655753995402639194006589472652504702244997403133499612521292898908519425927111685083287769620599365673206244456087756086791689178246152294058836413764375460555792799768473745627851252420827628650762476468445946473709047596526834599040103294725490457990730026758681076458724297705360289515272724700012526301333415554515149888305571376139286254960978153621699170866335514457498264938761622947866010724092645718091216563583139582103829451101152645892572482183326975570142746096598998513279406777943770037243163579987349109765291734750546601303012250119634654628375006477747615953725325787203741970739129195645215595361478618460364624238839259448133478898001226352604593940570824148916560215172434970899576654556543706781228877357034695861178422592574824315717015203258267940916863670844915364936336486566936299584862910879733736549743961814933176248727711695237466364792050871699840091582392057196605995013338833133002058013454529664253756386170700275720892278702138132705967465989795867091505573437214773790362515814206097909451443209449311543855408156632857024285900870739285917897014425555501836574973061135779636599331447031055815802186063394593540550572410977487224147094050891122288290865346939544061189618206787184896139673867221185776601754999571046287055477185224644524960931537051502540936867118803385992133028491307953663791123386515279767446991775374678898646731101027149450995903657717843133595406534850544444928641306717252532842824937825410635280739201426304931129492476121188414012066590223239827110679489195645755912004365887339043557571031357903681587804097995911540723586731149873923916848688648547251724735615296239513872627593436614626661104610158352105919500332289362522722282605232463366233403164411509456103660984353642828371322064681747043267158761258158946590191047260398352261762960130420728656957682376418524461442867531317166050442497228167744356659799150104263307490550485238748634599246877476837872549317821117045556582525871623937708515695932403007334701939032601722647493290957672136244225623894862354735483426140571913868713701960212355588288179554499428688495906302316438266981617762273495724153427851756224159866779104520973922249737388606540345352479650577048817118911674192304155469107791859582009113710585597413449503035035171938168019173300493624348836951096812249398247394065712365032180541412904027210420903429729705766631664244529153603239679372257044727609931677939645092326462831060340280165918841165771320360321433433165102148717336667631288450399748456394476106973865001559450355564473713310544480483152391775737617721944308707730309151625680929700093993855911743725478437587582965506990492463747294368429380529319200519394135242077300158542134649122581805223214132433913236125800802257699722755545241095919915234549086590065638943238435298799968469566324001587731775180445244913259003323984337041039955929137084073816870061609918657246220554976336359053825035625786204427870630470336370320004911590340471465503355939343137656356008582221476513214078294484209939964445268019676086026366994770244802984655670980738542798915150132588787930717052510692115977100889415315207692865599906368351923890172050278393780058386293906741418375846457975944047188707479956013908406359959728071164258739642752511876055584460865707355287684526638117887336658527638820622590470923192465175508693096917363230109656286251923649023797898311656370368059944950628851849598662943189224717851857293798190341197262150764186728281464525712742482231710442935812413093484592206995173534403223826932738021349610971791436316273728444615591945266902275231208706907188797726304946898804491706113519089081831806524411774709850918184426279950507530524750505935921293488732922987042771533352587638813144955785782596142636808206919455444794968368465440695032065603273134914830328607165028370224328118028312690134589808617294421422346264150036300486120865038346788570751860385618615872659049242923261942098981651351883979223866724349094581925504965989008525242343090674030175013799822618377181219759363711026451777663715373513371859117091986006456847286505411065220996224706294566609920241346195031032120628775507701570406132408261542766438897933866062061678194773763222573395170830960835775813016700390950155990301033418618214873883187038470850371470850310692770939179701510721746456790917164810717805586497938203642408136473129967461240128280827208107591226549366346585123252573851162188397162383227132929760880271396325568607877046830589268922806790134729292847841152013602697751838769782754528725435807462851873793529810227299693482064101305877502766648067676779945702967917910171971449995455397372235310985601493723788839954841737506479291259374660001121349804638323228047072362090639461898123275375651563558196690644117833244622846156556594690156517934868503455359876952670054658752394649128339914259309276791612465399862288428075991309688494814867859742352225421796212248121712295224606652925942540623080178337931582081361853661819523500893119509870253037219496187266990181006677284228564889344608761381853466159808669140879340459306925166255620727724167334206995987096303947871770232325448166998443770728523145594786286076837623326454871662224622076743458173469991268382293008410569437640654882567204154848794028394767949531018185436556874057637280373195179059135315073500850903616324972397574223162231911817314292330585518691356316005698157714724690933519816195360161716779284558401287757140571182154173744845871867264293933611706014683545151608029171689764582929120420846557151710852027228656456115287706571115682915496861735531655583332465457672642689458083966420566382161938238527744205138359401859056519915676707422977896888990001784923990025253877905761070988044108290380876749850380092990952782196381212897163535650604366376619349490258759910196095311359546496071486010353156361787180076799486051355300365271327651957493720491063288945315326460163389740230286154608199576252068419734615188582709631761515870828000110513145685795508293897136357618301833989459084429813346350063989373853464182489264416612353633186775082754055223190633361068613490267162069669454583664060530614784402561802252483556372351176036689931444470637428939828426382374975638723831452650276850339269236199710865601552213384644382147445484717556801118430125828624313467692066530184660371933735979670170368186514533786148165973032835959316719215812323737901221547108568639526556224729534058241299898757208073827693418701958640823588485683687832169106793507123650927947300851758576673888942489818749575277509312952529754028083032937875310870014993454554135120814053613900967745722902383922938304350574549275541694184553731566691029588797980072218449732679722263032370570529746589412049730738494974211201824947696662024018168171700215246333831649595534682384521665179197092607374564878469251460802458789065312986715389292878334261185031264727916266959607962322227298444836919764240385284251847856145968371626436647396758215999937246024772765835212307619557529675479589950460553201220398210040761501790102842735420732779639385801962699792709275794364041734306339289315828322687729303961513732718633015795009311631879888093642138416753371889915244429643657165017436076932718884987740594493600455258504782549162807063570032466300372126356672231992578118795649254829090914809774369559781635900509167251511946601209622918568249742663331552085122313654039631238269431832129156448926837234204967315006848943491625070371600775806744790227712622762917037011568949847946442854645277597498914096744636656748520631176793399801000052198010472695910103528777407656727127558003495248412819255056475863505764464752495611819685646070764274291049574425754772182672739009471958755473810374420664831139189822756778700498157742523626864402252190119911503825690570742501391619977385155822789685347172422849912172500708665777593642947152388440414546895975434729515626117916456114084547747672018985931000884993779443984417744534115310020678985848913863164712989247519785090870418261729971191475099007585925260601552599885996184381643374666368934603260405312946651158624363201603187530567836787966231256903480127141485436185624504083015744450468417809065605243406425511027548901907112891806156072441695042096161914893589582528603783155410149417828685455773490077287246605105751259775850016694135995799362124410433464231207455980301871105216117538607730411184136339856903942548616871774946049616470005687240161109556146106584581732111641157224331538868000965424164000605475300513643971021838007293822602270177724150231538070225839570733890306414902010091846012947451012748953709713023724072451110405080886034011454619683920749803931939868964075077704440642987724573518184908208352371353855810382332579261538203614693065053862282769660919355371401405386712001868067695564557578666315162724881130085951871079522649294623750505364719226454958671582995246305058314570807745167966531381989800589948449357244741500854485845882252853267153244931361499302359039288098565031572968623361601241096124160426547922827354275234854175509215200359283272553676793702479174822833831305084396040518137343744511538605326413943772178081091728635288545596736594348127474941979959928035901914227451617006611089979515900831249569423692672615549201799683726663965257319648059601745780444539085193331491697674594014767287367798841004435264541809440324439015216668789656015533006272563880928050186262674243380670509867872591377162846684575453621896873031314430757399140361494681760330797801253592573208066951629079696377477188774682259267139599264151973686835965152350741110470077205070303603113494263666867591482134111545656817281583029847187004687307053290774468151326207456819340301015918052734667514874944216190389844840201389027206133383284943793771936232898716414826954311483543686424815504900465659754712149012372591282572418791316493549132455597483778587418368245163117637027365042904880703481664474108763064204493946778094404594223765878461572893293039712739235652838942840783793370081291012035956878116312043396753122249274444787000917434465237017181399472181122140932075042138465298354487086157410084579932402661850957394060632336631526763834093432531216268059515561478904620402204878009319668557516012058573426511808213987516874504677160462742427983216539951972049785748661804223581588517959142812236447520135209118749833198965591793067630153107330759062400549351613797233877265965332189846759995901441782867891465750644820789011429577674474492371118907892480151031168609428916401058539394624754191412943807953418552509804438195666198234194583317309845046969923450122018493434359670517081998756771550074628980413678687694578053972327821800908965271878451993836547282706891626796712166961561437777914943379717518950772717705262409720724483258476212832008025719182003137096041230152560063243164126877802366763826744784244316875928219747044375794134747355244359417778602044581181870729976088172797451113697276318841652920847058973982284542239629705634956901763815608860969337059274077551625771356372126922794446937188869612330382732992348233940771289134369167889558918825410144216793106698036298332510969281966045354584666655241757838835445766479047308997527283608851756318927630333709496210149748893094527715087462280650681800530505718781930626432668622767146740367315551060960727809866988162722904233623505354983637253223624236776795629775649270542655281295991882898298929239196595825529079378772798551813974231040830627905840096887813356424490683531764191820196462120520274127074497769187086089427465435281920461222403927444596165548626618206555917108696914563345845075486275547940398649922548238377018966157170945952520724663693678236748601602048621481867081804291851847431757019015236349736111648523220582348736801079457443912377611353943809240362306595898050245586337509485710325582801885459648361251666328794578051132428483910682784003912698240427872318223073911312838821842660581337923715513594553534407748924486783261615314523426985232715472990402123676678401439304698964040610317179714598117262526424690517327402388970794581199527528433451316944414267875018761797822560866019924644578632484563287708563614013351472460943212660060021937774223744708848347165475309903907256488169743987724365724511611091850118911041749836105063427722191688951641722393277404410278343313671290420101067092433222623871267126865621173371335913643192327955381818592617910149484348490756593680032586885660015722512656996636814360524558397002401024095499687023740452192348939294455770569169517759843814069611254490669838215782158633969335004129569387874814788234090283327675740678822737121864708424917571653767955676714592543090107990605058455247040144983164872986816757463745405103643816671368367499108351482431931432302537240293429112904868298385351266869106700190711302529045799692657386836238284422945249232533948382793818656695626171774916534406114136089065314492480506067527773779637785598227648013737516718358423602604861870382334414808471172847092066908738014284288650122805283387085184569798960038167630728815724622049482007275248739913259068701000466778834722442390629848947135998580587881983300640147132176835277146276628445940153835899279381962655267756057848597148262961144852676206510035259556377701117508014337896453622743540518499554023308418235527558575034783288355546764797534425923532263655430364837865983214976782836802334467195918338038136624235562437069466504169052457791811480781818561962778076365097874602382778996238204785225723548887341799965438135864387318307194122795988430996364150714199477821908174044439547919812614925705227803466498143397263446545578686221262260375192775657425965556989862913005694941566045137470492633092180870762814023369951457251650092954969095601330309722404200154096659748820506824314444762178453494497303114744212476013190881172738834744352748176400561509914824073499938943848133762129659564170942164994860693018347010458378993629796404721739803737440044927341578181559913021404144679334924793085508341654340250587846431768587171164481109185640660919889941667712726184732637854981716436148638239505870570389393515263247373557653629924582713900393065356712023286650282483214080459182469591442761836028897463319678462444187701681813134437133673755075794574659338328404183878884819953088603844022602661310467385863123845883037035385951139586682965026260219488412955644487884734710828887390549297740990036060416017110051700897486198634389440689410435166911642289384866563811005540616100414763697789572073307790299965379787587677212767964774816706126831702489757968443486615367629040712979087936625105326446979708347412658115720241773697533566405444226187827926587802328206935595383954828623344110184713960342955390012841313125173558504110493723359496779168426363306745759631166115871172176235936114538077919520022701869272388946631363922191137556948370815972244670147490625904252185551488490102348513841162189849620701093615142307725977189436268656712757855834506632481279959342622726589790640177214038278116707615231114110765418796933911705595441563836747378168906256351749059849617745434042375742973226005139755068711446834043521688722297425085453653455914983175458184048477075165531727919069892640163426698712859107744355251380007577635650971885843582693098885929753795718065393574481157602501858931569904500896661792020098320042307240979406384471907668953900526356454424140252102349847707757618833120169207334498243465253902359025388162217998879692300613757824520811312452898803056371340986823881995061725094891002191195706574684135857290451209518682991318168438898299904495613891691810989931620251305484798394720302894953185021251237971370217112722949985262819180944991144956967025878645762341224038029570115500495452388944066734963029651369604846463183711717691756424764433491687993077026185829599772064306157651949669129916228318647142673108460502235479101256927216517245692243732029063704397135311869732216535767299351350146696433229258067685299923000498765901320610292444181062387446279975499269343149967309662154349884983546977442783649095914526307309125492191037835575313764869551277639634746373905498594310657864860849208788973414740252254586069255030614164564408890306974781142858306135234998552131522831762495287005745353639860876774792754755519004979000610725964026186033389793495096939547534139832494598318279168751274189810974965404426086572084972504995089289758493850126087685156971132686944714713346401060944156508160957950951858123741277159487302172070572130433531803001671980795653311519538812302348458702497260702917039000292592952358527956804797669274159154782299274889136772958034510360988000417086566705351820114306293915965809730127794006189405282099581040961942704605801082167852456408123232667091034352882997917200070528400435022605480865419049915787509122269546263839958793939034260769353757553121912220169481477777207382426024746144742139117793090906112357685894821540590541486281314217964534667433865034897880863898425127464202037168281341535450169911761150425930434378100539432398797349994318741532206621476866752155862323737996634537030557067015153184888417502926399700385475373903602341281059417384479291006238296209094233196400119397792991844524505950659858980331778306427037362331859543007811639253180019388482409899261979878045803118225149489894222436614291913251226767512045968933030308425122701044546315289202380851520093864173768383611662579449399036718557780569590830531505578976791568853953591682865012665786377682069332193527529596686406036229973301142339969135061146384502509357524548377760201233632262682456190573111512267550239160841733063312776014008285830573084597314343602418185456604287967350197292008942101795434507195018016252939341611785357181791199238913260190589232165261282007399943975271091619682702544239781229824461293070970498064891699040385165489224416449033071883814556319032163686263712866288407975054463824167117742708354049031029488755803023996648912409066861476091716003829943250497235160606770534682773748656139999400165552944902442016024813650532186486044616880228458034046690976617034497685087566672861197414034070321213701785717476598219114332160450745461597290084349604119596754413046171538341219804846337716062507703114616752556051910283109402756601060916327724822066703398194695583812989554481402278494464255512684998406606963444061452772660042115452739390287407972063442107844174812984186019641968539929889951564585870250690232062545816403382190046182946088677505827063455635319230557210833435418198338613264774414193794202307245999620290863520265028812730394507200983238504376132002900492989841447263915787362308501847618182949089971211532044711696994442462829694695697838801481100909067440277919705029156808066732894308760846546059046544361264448648025299369277851245200902012450494552306311960261180488804601714415608497840221570846155804092625496951779708493261290877221633235245845227058508973797407197133849475428690539084511844235126466994128976032297514843543800225321619858440123634796760563648218652011818482341023453561505761106442242542840800107421606610130820360865816979116446217133015968782785684551003595911237767752628326068289829269279840788004637625654988495980786640842155775926041028260835056760580802752348950163546809681928050013457658231541390181478734385864519346703022067161580782273077574463967363650786229696040306692122723287610851437572615992335889680166534290322860771000848109004886901017419914743166356549967075861045640281564167263230952770918010389174356542201680881610077515684452696623424538974888396110580827093599738674525519940859294534880816216511440885599412015454645533462837997286217881051499064165608671870239299479816536123349007863860288270342224024954929923251586625793659780702918198769005441974284622429221122567954367912390654470568454124493688819065978159981592258439897591598364668470492976510553101712832974430145361236868071212669370833327068524834246942025590318035482686876020600817066490133152446896661978075723484151061964220308002869565149931888601355193299351680581073731007442804599484624054449591115450957842523673528880458813974324626988543792143510592334403055847046009479180592070885391635331407420608141874471481535450902192099102413001819246208745755798978643016380028060376518318659618239630931704718092400706210496390932564330320535304336786334299447072486969860627105815247604605523457830652224816573015824751998212227259035039146758360118542527561068459307261284101618521155736236598087988058172901667497714863462534527678906169150927834291588833163211430131186663501466877648836910956853180014541266800349818495625885712730368388472187574166755670979223464965859315694261107023814764045877786736133569538404445156733887871239586739020098273144318933931610847181250635006750689925093750486934521809149249689494739677175470523532727763909023448912138180766074940251941490988088935090115643879355194029711867665206696235879287958673480328828304608007608456191114506964700297216295259187220147453376024716271559432587241098715421859713161183009935819553635517736693167412187779791434298650785163744049265210484386885622520082441408418966231684175570114183357400713145480784365348443075695770729951230185843750307226100862408165579011852880965761919407585851833058928742240020678602999123492414246562903012951758306627081404151029787756957162458551038779532225988549291002103893858552246082367618991507994682527671228299226230255277856357542386496683903383424454463357355366533873429950466728749512980795927926791754792543428973937797021096613594971673330322210198660579680846548279012158605716504286123008476607121845026117871953535182884669540262398272729159504225702314691384370777963110369843909444899102060042254863590212891404074706349553667904219113055434805176150596643583434377958969299580137182269596557993858364209965458299288201946510973211691071592625190876546680441760203573296656429781072290443871305582184726039464350766821294844950083767025321635282277989972753954378810047166491962571371386013908476255886084151496233449944726571355550320239765048137822867898819173167653414668117825025193511470780177975964587512345295208421605391701301386072120292786161010682897563346642760815871656485798315010205794091263643949988576721870720463858980554270174586504974371649998712410104845793201423047340026321477047412105051193469033767913592477108243983433414194691160162779312701836294935640999850943379249760624195930826763352402848483179112181399950778356141616567881237609765647314534838441089697197820737607521503876849901263811443817638837741744076537154478540868123229780023691580646927000803720844345702266091221914779656549083687243131886836084840270879897707717538931422182878715134520537375900157769238105924761235215991491234206247342409250591602280954839232512362382971036895734295742649282995914562237367697091382761921003521443118511955619582740290184235561565360515711815481052157970717742760054569687779072997745126076135154520756491583334831698435797571234338644973586527819308724553980674342094360275923225485582237303505349414452666497386755665781182040768491468213589658894812577711344384792015106787253101666042733158298809576950204092827202520393171854058152203077584543078459333339785785280329236938038618377049962663382375653031124162138784827833827674542318959211187040371012570800458861638140601273241685236731784297698436156321330486047530501919040004645899431351559606582234703432664401132563139811122951405107916453680693325395927175548005724124731888002897857769795521033835247919290114592044045644639614435625561233314467887685242550013421784480085454061673118649304957048085812217686120090088109010549397399733603402643557990173637512785443051659591424674915591785345175363818336955268842486643570660529328532962341125784709019641952683112123851461330820309824187696956558619333737172765141930223547674373950585458397911541718363760991105768886434476556525034666945334148291658227633518997393427193590305047776459666693583880861772770123250894484079169871723248488860501695283867255538642225908395931074297329634147502876351346782106308702460925670601719283232486266636563277639749283135296213797744999371437339794999139030200377775446455519742587548391334151700825537189022005222406041546542880823155489105525790230927226559706833215794142320699317649765170956169684756171085665744072635119961984982429430470405708618616796753528319349071732415740657697611552108833697774773378076252593314622866412876604332767898552034556357010256014107596211524172832993528818327828306254206585252348693535127035652131025086851546902203563831221278914374908951108550383263649583776677005591165379725951696165261438648133779842033816825674969504797507521663724584612527776261430284031925436374486625967702726180427612829152552176800207234005658441186417359807254143171330946654383739758492587024247703128740171416296922281180673035939139967025969934265182295264391303188987636169819122584234217130808383999305354938091694245850981812089590081746008781607585970017125882142815429694736055310547457467556791091092595265687203372027078454806294990601440887244549434141143010168040648292900353514101430246717581251979667005098708382582892428978058118372533862663532070985752590835053355214875417531782052937677635251943097242267441617411508222629340048496126290041298861301207775278862385703554424915230603976507898710869523122143414671714730502018946903757443131166952489736433124102186160170568253216288291321192903461810343516227133253736711951215986505277810758552447646384289640391304939212480617464741967533096054649794022732187010061877521092714821040077376887046243769488841591970662020826911338761293607852176022054078183892250962973286037822081731980382884392361428179663261454187184116998965382991831588511626234349624090573228900693890060890430888653867969049703980420199038831209383247216388683931317589238764452607301806293743715042515487180055596401118136047906596373494922013764954908091339069409577809654386706927734985513550744717109801512735659757709434853310681314866846164095597329034841661163483485224443364904448987526554468257454858050986072532871617960484759468282450724610438359807681866084930690478935390498771932793129583529754257573714673884013133970805172654508306517033990530471569401266055471416583957074758554091887639664335149559541101336047373481867479262123510938671621458262584949155777382485476467902909344575729333674039520325707091181766660227548818328463074471321472250360630066236110914180864539974409275133080415544721866685454768215027239179203689964650008424834879670453583583688222622544006299814758667024008176936202930571736567208222998409530621345630516702568677034708838530102711001780233086522887074228419774365911571957887094841158145403879319510435563773596414012314362624351817258689354308028003066074880675280591566717668889586300454905886465709285747062961334148972424365943585416311163334863256893699159138665351745644817596896422873914756197712103644017422218045286103284354418577591215391459622739241463410049587786023198769341743984567934655219759291475044576175857605418627210550777955658669164352578184677225561030950837229011035768641600378001676298934614957119447848628373086081377231076824063341694439061542732270916364234538234522498019631234509617911864041804295023092139555033700931086715240158714707024670145877254212668015975781449358258467086199417130433310333280758595725820113576546161983259415718623491656235006865246937630595581086320612333605999208296139195639295329843541504243277941446462348725619086995194579887446409059457465390084695417513729795288734419550321445048756785389055189451242271635707139639181110694891498720993456164991862851384769008929494423774071916268417233851900036999047646404931716515147361092422975956206587875676897780878335714772918648742572943922185187727413531283324872967611255665600374050925875595615353389440987562231479299652502764085717871726036001982001428190352392552685665289500588320572924409277969243857950995203564107175118409656027920212302774890062676425980246124206915016075615750599145021837706975935994416277491528419880349186130037216316018538835343082282308634113089517436820755266363499771356666158626804230762658018728621785787022058162218782351890321179521729911842467267112349116987390377432758772750582247798061534892571927813448970705170418390852502929400428075733144514381631728027277806213873504780096061860122263205960527663061698288138763665021800609773508552881270145224433376430255332377767052605851009680881498023075517296375463137226181800304021983536198987327046885926729063337372757385689152446806432295407279288329680229202893470505364485649762979207997574258797056703676507846371884998096944228550375506203439338789908854043387363892112182848732263198498983274584163280948947295133108122481089631334262319990864781005604178005919442209993601228738435705526783377214962213268063104557880326439029585170633677293884028849921753455936105165149048061127066844574868513465790615702585670858496321731314506740529230988011015729924878621317058584593360282975824653888042064712058745001942556712915215709689671716589297341547561340102391917226034644905834946576742806121411368600135008353980426311816574051086251216989527935174156297616835403488835312220903791207493397467743678506818755072404469572658909076508088587066785921325767226042870493790825362371118746988471652265533742210463847324989911896177133509330582726908617556049314884898904595044790525927104235060474303160241681955080426323478084972485689831797598235720453325962955137702621665572365372398742100884328385188589560591055684437787981124378867402782245888387337547445043013090766245530310839979373063326594948420974052245030175713880443644013968025381240495253358347669460310516593681367081765247299223653664273465783526324784756996635811119455098385677275428735754117661285405483641662644941519682759778489501529101659799061711130140754253951503413245065378855683821381800620870962937391679797163641974193932303404927851943577669810087068960659460821017110516718817831808446125278280556827112751662549541413198783273321836421135555034731934048525963551373706778899400148719045250960892713939662697591771626947423222429604777979799140507855037116721175875328198511734346920349633483060566266999755320982605342338862018627821485577323235563359797394222139736967239399958376796163442920079760820389485973134089634425261546373510058285167860142963995005690364065162166205107678920398354991390114766476950669529485913429316933002111320787524194027821068597592947852920273575351700275947435196744539051580902292578781375378219373266490875558073763410022066944611278754042258157629142264527713490485253520381387054122154980671678512341515452603713604485657856300799554392265229058732258790387320888667722479823622615742684578145732072609697826380496657992269552798984414343152872085241196143956881732616741850619295573311386393815564617272932315339069584236308397106564595476624945226225395215679778718808702007078393101204573189584599932549641847943629923198902466675880165834386689796578786883111278404443888160024079088409778736940951433118072470322436465019373160940739651474849674038895308815038424661866126799859083826821578477082907452629179682625185769649895360700918075652081960659013497849230438564686109725332502605446811639839014365979232979413798542458816901013260714060892591524013251557045092906062172421497856147139189617390342033131954632952349274242295303551217038005603236807724953981389389049357146269592350877433831260181795799648844826769441084966277525220260725425524831493151047473175267317519986068973888336225979413908859579954981604162282379197058827705472597347334755559754911335953517046590747493597695132463026121086804413117652168397205260283807784686270600080873142319633714552948675293497027800380885370168282849647047054355504735368749572341673123792259151075787190990581938417001089361613258862291087397371612549242476669301676408037573759317192205291440793395702256972181385581673697824996015148804752113020783906000084697092473029930127022394994058373024606938844923470950019368918407576570506765182089666853335344050957130634545490428353730487447478154206978094249581005486847990507239365192406902559960623735171651821762203710251833551580958015100961342257688537491780695567965656746046548262439229692645303811426302455555383764513168939908180860720032332921667130855525948335429756348343956042699776645713248526489860942298367554158133060287650663898136485456210742399139027849795483049131591632284520575102300702128957954491832341851395630513525038432889152310001747144045359305721607731384703249713244571777377216878573433223407586525518453787806217905451279916031797352970617280053284537675740092046717482613305128275068499328838517944166529312414960843228984595452653646595290101881717431865753010396969854519137867383459058134998759399187915113612767203869988476058251576858332700940303183754016564377978056195082144972062834169247978141225181258084351038536587696328637773394325192670658476173109313759580623680035900742883110498656412250496890644312901236898507125962901919200951567535042132741845391546131188362586892689513580776597162734358737494165813352921888377660835586118192425350307251445697756367004418669115435414135755830151910177926401111330253231615124401949153798115350660640906092243696630151349776093832478861183597959074706006005170792725678735489378272937835329268204680182823768450267218870115759829036108692233733740472288271936029270258933700504699608040298131480940648134057432555321661907136946304934560642217375990153456068829243265174213809980334475455349937325428103891652621917252562462383067624966273081250993844858607207690152994012360372182425969582295723562366027679804688054770035438795957814466468732185023507766793612247793234554825080841051712490948460774720437419841462358856323591076840512553280802029049091045026210078004976365540673383871759162145548556504279327170614030686683992762402924147387970638673609812381551128840791872351492971381108473154489739565173571266011600140392057102122249633777851102612364080729880684334753180852322894726614098298352081960649958249769298084820031835405807705599087253952877772894022744124984674240171752821419874437626096133964077177291311537444450610939427156519837199033739349627101315439340651438474344599151440607470470565408171063691684126061115165453335976684909474197747389277483271813954717607396516609914750436718939195366769698590382695082758045711504794387299476699872522664452410426813453265112945280368835535229796265182750473983286568052128411130332480160368829385560567634352182483540859321969004686191010125086904545602423326773918732022311341696599791098624122771821013114329183302081062569259470581157837341880905638113960946655394550407519119447816905510010960828699480278046297665978038509870593102330683470834108564937985245038198694481427926426893147360270056535665731334490036435588407199833608505983140333833558236064264975291685324317849034795769093054235102040120443814991337376916706838028528824697261092365523672364776170313366344773369270830952543853783745698003737040543944842637249913306646524580427759251484083403064390142199894919321554134384076692019155842481140470230328991492969221020345020392421080478259971982640096188316650042341928594348846886452326162357120306402757203481949954160428551535845039151971958304801967983247867056378528702942309847590927074382426266323799767661754413934881043031203601259640489648029761217037122844726526655298084867584467461643866312343375576534100808835253308436911091160812548934551274825279282819366688750587357526055638953560626037020657124425648730749147604626618197072967483866748939460038284011974284597797928959439082241830508744393457243587173474590984757943042108592441669916795162839314023352186847434012730314339470953510634337161666160270416325685336889786572306712309409796341687578075715216652968147652989755091287323803813322350732482291804344049632018783824781478231313496936811569202404106208188791989220634341714234638340781503426599100557226779961378335663448706262114549727058710613711380084451156366769448777718913951186658430634594009428827772040978917755396373266373978658388794337265068164316316927513419494391862341311638449853278765052890826429949467966355900205637182201785556819962994251129332675044884576778155008380495980880847225386562245606715788012405252734668798005072458791451276749965795000418130467086680537440108185689175265424080719298196692482593532111948991682336263318110120605841971553029586545573446043798878252740625158998584281651963763667318559019053301263726602952095530147062488930468290803670287766321606698963100863868076056495778588891467524414587266570519617901214579059397485423357395784323575926312484192938138084960272975971219022548478050074534586392281447863095182760067091371809162105205310243859351613187780564945398655939749714039182022134923582060618246462351892076216161333711705647372532369580383567794372596327661806864044152917569886839043034228196301261688337989535876847582332688365977157851743444062348626326005260000731880142660910111622486651465670277365194511920524112471404746038461751936887387397979332614043509920967792623326469033418275000430260441290548244884534662799810599570215205173557749845792703059897026081899394638953987379272287591093737865784617960177317571045498879163805767603828727524251605846034942809519423832058983893760908827487660617730603998809089575089307419124210443118627038803275466065769484941012776577982819141850887775596803457097109825028384945445120917183694340781173564197754515506667467224856372863268338558853547128622501973934720486926838075787218151802168463828911597448945794667199341131659357123168341353471624395346471849761449939132097411480755234072368086798126141811056285184688148266197346954733741696968701600739866469943938949444639435450935749074904366306986836556696484852053901907379703847843474700908513453568709536816405872823641947490936144786003664680145269655824261971415242012985737768851796384777734036335459358731011101984610022048731169113753751179896612458479739703697276341261299320072976446049187064570955382973177884942522605192637778399569689200141731107179179392450053034891685163818322522519958559035787274834920265896937535562026417515980600712769851671098226281112861293166388843032568827132639254976874194332602788214964770525177038457888350803153095872993759174629478809051433327511311642364024577064868791631747936929317940563535090916948103830896445755372784903529736603072195118699203200485394292577334202199719512875287864009438780207629358299649449708332057323437113834542950329089688472469371790276364177920403281549919351635906470843495618678523415900057384479554488521074901198704418160150308067370140241422327849922567956606226323964936887111945819266112758059135506297954024276733469801609838552229417511017599754951169997174564993011194400756384986748822776309739343703922692403042403450903400294717461743629706928725781253986506262471267133831295429528242668225080521869739397087766594718764927550644965191064715087354549912257849762374937910932001319900045900480557077598056690592252742068881842419637524724317905861938620748356074847612220034220526051332479681221792763367818893685725336615104092221338576001031302941215740446617809776238431409454830188926548392622500618217213440476433601380229455640138725680385232740106530703889395566013334155692820938898613565297051774356066998460448652036767142684434986275129971058035612322754837121225218381732214498968079489668365681986011030770673317709775171048694692429583053780130348218887626056977808637003605007714702994020053371696637595355885156179825480855703643518817326369585926487573075047968793817799041717690989618442255665868504273049850489648391798067727125259455429294920217743161083151741886667285381347255936857345774704537730106243387581493702127480118851337627227975631820882226917900543431608992552317534620713505775282603583448146793663925149836977942268547867598261205740240266169813725200563556899661902121855840012608965105120931073339519087339733530617350336280308558862331005201384190146398617133276052788714284466159769844364696557526304015858200603300176302404347336355207100209685336094941012004057390499491790478728604265636678958079030724943586819540072138715508746661659845317792449873027235953395029401199929226116771405405776935122458182508214779205956300307076676315138264956146912686390988486826801459998276362962422182764599101450458313662958877382089574936758735482630280519202174128402043776707808355693012137444661239191653943051254660579935839580880696711997974537432460204638850295776180859830173976013891992339858456520791613815767630854527734034717815400107323240867245894035397594105805974073678061436919255183125939385613843447906137027742456134700783649740726933660414736154025849868623528186147038936986425545454363269707048931959051908150070160042959721922049844454591328119189741095932246092519011557305968158829684164853641256033210663158675014978041434248547053224865904180227046580286568030836092641970825867759690223452760519116624179669680703198133813054331887440646059296593201726048357286656239035222224563375837179155584813356372139804953511294877111475633325066710690238386622631907319672982478087574894805919714165676506499837896871148122297102890214113075812902458973035705059703309300894346339623808875378029955085841737576486896060470565464813374436629488202830065605222759197166271715429360833033512858912015693887650665446200243085298299637317397765985395686309848671571616421621788238925207062957578404207052455450171204696535265931131445563159309204795539923055639710486139055235636107538822300598581108487955605005609593153695026877301439946733547317711480359210738714823768483045220880734577890239781708448519005277285684005306738499560974201941822895951188768487605195610513872860699677058063563455934669639784042442591456256966351239703121248715143448534199782750697773948465490363762230404843902578191657460233750304206510186951734690756117169165389237917155392311072166337860659655508361084607143084973476266680392167371469358449887138523737214102309561186645641432122789936719653404772850872011035422503280135128228182619160602296498229912033840159277408833512961607440529487213852964953980382287869930718016227313534608338523634350091294086811039615304915223623669398622879639010927727793317180602740295698226951355630889184120276590599583286481247538372604671630151536298209978578761869365582891776421399500683704286950920921649023906871609502106844982814778741036541661595517930600719907984499002664864066583767830937264296483175601222240006446882468257029915817768918880772413456789188422837286385347664691241491220078547639643280796306397302038438280426047332122107683278644354220070083714542286708283289306849446825976691264359743514767323416570961654052320917978454861864079907501067385906171501533918261159108284048723062508225307259656620127780372548930309367310018407608971211797328602211737578005052901250876038084995962136883192267439030626165537801284851841044313718442140751217049376295576772191387274724874827435140956436013215982428957348465509643095229543224858940459876049253649315522999878292803468724103932936880269130262425924650506730416291889352078605786337954492822254498689977880657145630122387309695119721316462306113606593930194872232643779534537501411102937242552058921291135724341488190249681955421639199395713926033069444384100094981539747023446908376718247902915864710500854471952361458726866733080921885233622387962426746608491032492107478950774124439739777439793920883416718642739806726155744631581594558612297875874262592658153816500317130541545591958176132924247229641659791801567682900924682879229784309610129878512953732338229283864897619599381867919355183230276096581723445859926746779042859425117060311788774083190913472920875429650321927761490293687222700506997202471963977907196390154096967194349383377934922649215698720416142907915632117254806237265861310938944377693308842269583910112086186345090850217975705748849881482857478203976158277167949650756518596727479902893932571167172323679847971897896934712581436743265312551413600116584328822249938771691947878596588842021302863791859658293042738437097299525416756032340770663911917748605465072357111892599224303671028599967441103296451352590436735614736375142781366290859777618372162355004064469223879747203237360666760804003160840669686558572549520417951346456010874064405945470574921750040357228245680453223051634837108562658700711572758162307201056268084816272960421555316069301585098300968457924659725682572584492066939541372677826478556365109668646828757858861125949453100821506730929669912861584036118093521090342306215534089616095440333346791967840361106486854459166216084720382198410567868491967832787780518373878135037513360890903918921284179713579685927464320583171821810617794053258895899766321014059854944380990672331073900223036082438116774350562215177651739658310436232130660064437373695752034002855000047795849760374462027355926715929898271993748380002865377681659546646502003166653322317885373513023235960398539816187353762510264938080305179943613216716152949850033664789329805190302573792011843998324863158681950128297925319676549070439282752271619209505059859763099598633363773289209541406209382723560655736810871397180848359140594666904409241794072068261549512104183218269317149656803808197991086095394417625923559149926318115314693115883698149836482431053918801290869566401787189692060498149080323136939955677337319322871018161306966962898473237210161662851383090559107736208923379371557611249554611838459617894336126735159531444979470462983767658277603875716739916869829780574709629826418311297759833388832711455160556306180666240532571424627828105933002043675611084168414394584505456923077786069222144301952020116601687652780852503493213125086110273240825167018097392073202755088354267734460930744176938912105209989704280284216830548665397016901523177315327193515760903384616175822672202309258451436983921224522012834636476761070924507341113180532530836448595735461201089067521549600788426259092672414479401084845890117647708632992124362477724825341292008014758226209932750123971208675232675062901559860985704673995943115364845084598672058507646126567754417032104137962845719677952364776733712682378042353507580980424683311866793303406442350851300250292823915665744480217764734491430047638232233868591091765102685120128558993416546135024259591344788066641305570579324865816607989527857779424746633212907566417684035802426418402583914205903791631491658410703041895187290039383428545641117385769190396448630623440102367025946806332051827347450034909452461380692242785378084099706581353801690659244993786374965714853077177617308967326142794467206981907710100043903395682060777232470052193683572607329117326909269727764731517862204010690413734704735092416247042026497651267075952979377984887506979061722690426338225504633922420117997558432180835348879698082423412663489965727391817655671906357643236680703386166519748474332843808084257659410480516235282617711960701950210806086729741794488415179313988809420844061825652726662970632077590342939853544290247192139726474636770804103661489099049623386726452589902548313131575258404380830274677267777118785766916072867973772726397233798135892206240487493696814058624517977046310525570218505397828066397349993730540754619061720457415312394432221488338927506590522403305157290158921688252485296901052735822023461194020933211663177082677016894029798895910280647203375620354919265262478137962387814767123347369952141882575580208657073719614059261666468576992382506228251701768496239834456998932011042357785661119853411331773212483391476534860130573772841666200013469379871270607916392002852371717123355703122313036258016007226349520521267596570611226949795085633240218940826584480356257719619833045079961183315959332763076309362236526087789504826365856856081553861895842526395219560821768878669787934991302421110892818712231039711377578970364589542057561444587589436649576042365223607570219703425483166856488867130738358903166298688165861653590612233746739398663459039608431162566743022341090213032582658978875109991744828834545016732070693533602015572277692549242407209922269537030075743796283312322004604701805903255589679426895083898750174558599780107521764489497742426947232161082763625572448526534025334650290098402018235207217374592190804628254950180096411614466058569007483821990456073243645575651634804089865003595190169781675405082274134060269363077979320736403736025754959552176256917488384439748907673370540041213190113922822790566698055122789825116599806266913513863435245789145177036786167049979290753504882229611395861778666351747689367199964898977436306004496063460587902891731759185414119068040479337520157339164307748782463473973356691575677893676298745314061984711846570296095502919865009298864749591630663631146849771919163671908134316604853398965792598380645890933518480513073685081841669861807745799800426995906669240600101460545641333216022912808442850834677817479281054545421984208945617145764201260225307729790266140282421189900361107673395843008600017994888317874385639746762132777621888729709148532470755368889502559721716242795995730971806668818595728423037946107189625979128599761517008916335106864513599465654159744066896341564442332430149808148122238676042510115552802481766777723905450736962273322601366550852728628820013220508205316206072165812388737033990356394662047269014588543528162624607863594571904948557330702174792387165245798987425437058743776342030736237924249655774015857898074391717395947742308784232653802321772418533573411261290032200143415168422216327004765173579630481016686078618662338031477158387835397796039219043610848157085863775027014120796813856152760579493763794010873744613840439414869751866335743978401699283580182256449677662874665144767922777827482730160729942487442419940886645714003720343190796754820463623975337601827767253271167667570594769644237013335503205332304073680739308563606507161468257128858640515413376824869988585852244047350121093622999849853677178013874284581877231395682455844123161177270119945314167861400387747632960254649875832073292347359127808287564730460031123860283315824516434227554961724666864583188571792378113850433077354905225410653505385300456650855033266359543338037053626230596598068964325515091795034938565715902891125571101771007498865929602531589194409185364307675512124543836941523610571187084159333237318111181996324708171168134210121279576305980816851704388684620523295442910669045740408968250004961896941182268722557698535457164736319174033267206938456439033907083972563751256878575396409181862373940224136714597009914187105485097605274174999623823410742677670681820093813510109675152541246063123434038640207138687179598826496984028940346947599452152569642383387648806030509884077554300412372338690563631937642457591026927525488077488479262597837279358488532703573816793154627894431889029201194442239324207837768092938049915427136987135203102147608611458133571889937573031798304688618512352524446436341005973007239112335074727132672175110880569918948510210320731073092417006788992245421325360503465938774439858278172210267737974905526825164281614614006879589462259546728143397203679050707443511188051687981409884095861428453783355113042278648466756163648363996768883183709514670218771278899444037125288644950032408573625386853475023402222071021365878554179248816129093814680774009533131443389078501158276433956873195537311536238489685044312128804500979002348840825661555424326630705962989686115073153434952011621476780896603961044628792707435042704506480703427201641725077372557382533623385837674913838807933891225368575593495763075429458697996135970057396708884788257754488335316095982605969621453611533552768342436806102688793798980400964700685877492569456621670723335110421157449632693508663404082585766991501600559367283951244898650212549427805120814780267503861317431966406385310500165806577705485885769685018290471106991093770101180177629316919405168271476854934088925188253409103379287341800110606784404419240218516391281483188381696145406390042338252791671643697121591749111283506899553250811228680458907806066129325203076934477249832799698063631377829909001615435585140023644731222463160471891145883499857121402090639411424143061966948327104186266351566884558798006387821991274967347864861453286690976719404784681454947907675044343521256657391809948487016408847037201361699417445329542852497658991967103612862264470652874250735338806008032654960593561160682094461154984840369673544774687630421818347255088774610578369780313209834874444739342068108112946621232022298051580529724719935787733120790745281542350414903919189786224760960873991407986393559461382354056793507187086830374991300086079858854344311654961295703060379809158228596436979658768210620849905915863703450544220929460628573894320315273110936677398149814761770882947863096609851245763861467393149606398292343784611836764856513434642353882155112911704138257436818284721598364473401745708088682676737395522406289666514217579789135063759380040905867559860423184029487539701765418651464252996918666386909256964172944147877042569606267388039647706400622500413673867494072849105393529400721050032035693010252476937473242785563616144859293427521679869886954952217622413603495117039605700644016713712057537961282513204482224218237167289379655764486119908125531213638514771163288048297168141689187403154550507903877967829274081577193407040095740781664190413150618736218404652226635986472082680166682626333731736959081067275216912282769508681632120226269324123005391112660448242975560771578660342704220187538426038763330378161215305651981813853627274075057484379144295373383638391282460425546370539412501077472790890940346061715406060940918778938733154755660764231310554596085341720464667099105050661217630593690257477554815688398456793791303615971239534269093234829029956990347835160041180189816544178219169055455850215388002377098591021241735970622439944500265521645774865903201354830323200236882758590400591216332920308426299399762352534178861098123703270568216256419058157024005099821415673012092653155716317896439509669941482031906172838247490745542640860448270767658543926705762860319102366241767037416031361183636870233615925883368778110784585044688007283772431352889375801268126398157958689486234069994180127578963450418495625368252204531089798921097922761673599470083479543652978855628937051117487267665799369530347955708468772860431902512550878137800188183288304589850372367319015249278985563205180319323070484328009525159760262640720274890897664930157416456383952731779282150466475091673520325250634495162334161753926591184415499455952660580877400096703957348521320047068806806960632675285964651270483586520190566861425001985524055085793221753046077783260984438216788540894233352519973307037769252245987151797223455550206940511687911454615519754203119202604707519550329355478167412965051457911597733277530704650244984090453745881718878176712267593767844758890476248493761678248898743639504867798037808190567318988839418032724064356713135454846646812038913403330407243148533006164886416981173909777947880419774286217334545171028062647627197110432950198095439117960129647925328799408940267676770729283505254422430914501094022606919772808856221376197647856099154395265450830697118248429165725365879020437790016816400647365591873672022147073573285206891712735533592182761849522216349190134235658450729635254061336026031179134884637036253774318929597744386400232364741498095453406236365548759764626547158591182907330360370195969143779827390100562618397315145638634609025799648462267247477998978541275919873941497286148284992207745768109803910222009312889207789238961955050973419396960433626171737085598885377549547726747232503513160167184098159519305587009244093270559698085452737136138221886187672492786048564980607014593336753953276992710020313902679718991406184170402311584512619453576820537358173349527957817407728257980766197246411414377742008850886110350749539746464413480173435285607070357571760698424702964341824343754225854688077365713579873466927214752887162359159380322034938958880100371705611736000679831961546206903854943417647019633763806059891495648980537782001285996178972541125758703492949297692481216974487912364412787439804694510724349661817655779709075842975995126739829215143648328063037374687602307063451946910186119470576938889065157369758670434099745092364238458529857189046501061364018478651716122751779154348685924869928630727632594551603441911211887500674867229308889688521776191098929760009758142480911020422015250901059820466062172190263633864332252246942038414416665089697665449748986051997679087656710892779787044115859588709213784153526126707463266343600642077849186832462177878133034478831220041439030879782327049947311649002831536358973757538880833245404011078548808831438294745931744220022863072491446056628733814765094283471976366147211988927607015901528074952094119449104358116614807706548664069002256046300708134091242256345468026131860955329468514361449743793218766831479301093652915922864536504851658092291871049925432738069645548182613638800493375321348234678667924000498874028581758302484858357086335467534709823370374100258686715034956913775084531038525156028443800993044627507828651006836405308023428167951412243459485873304095354522621881419590831131870138262687901756959727048974518366911466147969856370835949827294751029513088310373588096147022736400174595250289611714856744654423688766694601211915760492662342234389206950669431980401922743685373073811680219676704210380999423417427038856104073443890770669878259446775187809133230518299769489226110224630494935010312067789624086098040462831896796939975087388548659030393347439604475660898027812623855184707641784169059710971059052537406133756353517589991307086248184126367932601267732619483003123166158905470503654664705432991031972664913021246043891865967857112584625263409085301035723110033531018206922215165362183290849155055426995443993293387229697831644101893744079801038052121366335258916058585582977917112148753220564459495349533139638868374267458305135545507070842484997527221471340511491621750279764757134121516172768648399749069412119698564890039092104513457064089371853087519558669454618375546035089807141122855923923536624406330548584052898021138605861763231728697180962728067293291140904114657213440671021263772074398405999231774383466295971653596012479954727841959849652052946158229244805356549322642087789978588893145434150419599196100432330594209805359801465122855848561140971070610288495774044317253425018972773401472020791712936435082233294287924219537108941410934653134119005024897518706956355040209842322313789767229445604996519951263993974924251226793906600888193489679134638807932459953501367698687694402684678004208334762058695662434774177768558279599217098313392771486123257872604526511086373587476933824801439813081806471979726063415768605482486791625261287421856361982973285578281092456199737205003613685278253426882824040049187231884248684129070572338533919431114516753772872736390683634042006768953110136658728579359656354353052186941869365053185118109298484906000023386282717430408260675875706732808845378385869061474740157943726344122821095613292018105223443420333766951208303758985503888481972900102251121088315988035657116730168543376275252420267082486496514675637908821428338762052965783628353197727451971116648327292199352224220315321555478018566210216851728220615231819493636461778984919236027121812338379813587344188117046339355633120963837221072777150738040146521140743670745133085629955831004926221455061914116913765801776461514019070109783001603946107488157759952248881332346881378442443271711740165360163855616929968451991400595357335760666108260346975120733959260780324036477556286016068687274911570162535067918375342921906092013904431317782418035644250792973214895020610998729191376710293859915153748158614400596636893292316565758823511083233932322722066928921927155025475905575260941350119572103752251901983428383972817833952494425388550131930174511174264807258974201039491255575717404029421098163256547677091577504054233099711599603279162708331213170165989988417924093409738456989413215340640527004085213100884856272590651208724077044464420424279608712419134419274976321114178552079031743789641253149407677527864232837709963708292358080243340874317638106836522599277519719285122086781967075940324228822860843652571928698656056742279906834818059861814601738257902154031824588220493524103471758693506071896707835584208984099416675619896879024118225207879786192301574590901372624152726526357416358061276258284374976368026839521795333765214061604584429657620729735658308024612349298984581853907636744506152762124812257096871525832368001982251456309631359584950879516036531693212266770198155911774300906368162251565480266756676210061361958069895769553063523852256406258009743662113575513462822789286904700306106619232231511700195926653275381618901170643725892329597411506753284577480811356204158638330189996721030448926544100725453381796278847370963818929497007277851263221817495560957560265084116525248720738334382355826548566451815239440285631993121209302506098897416633163696476856507835576823713081360482599836797326942323378590504052069235939978102023016255910936160089016895247290917077546963585763045016268866459794950681501470589440103129538141626761088608756195787725187856936158956679341603266870025988672247396691981765063895306720153901832218030761209201473514639908005854178072042752647751265506760988172383450971019625205773168035120079369986487475936380257975576421173830121950889887238926544140057482227724440348671751266862410274833434858327934336151144186103218958352698225634540795141514386643849046029442852624030694776856716392112582807730995091899012290863108836149634931949101425112050849217786056540662821271291484285942269151564886128791158152714166093763387327646447979225216124194180622945108697180112727667341981931191305850884964137786146281371230216950691958476801110656916608573155381326836959569294006236920597107179544760231127933698011629126248304411726818136114498543232111687187929225461271766791478273550589897760921659807936858350548715734800519715360814277733330885801527525704213659629393232249951869482847719477325577923708373515832068922925663755032871063645753404641293543360607031838451487060439329014979889274220867001654548666156536322294520511057718746207550978435556808366532210567790891925799689903760461780246610310455719264983849368864348114499422697521490011289490252804708097610822601978120914859211937748275306592712445526831790192125391091111592334634748527734518889948400206344697935392760360153545044646016380465272227691352701953358394240911516003216527886281864237300098733044851947943130256567287461825653889772759381432704834197498451055032877774470975324971553003271359657077640366729044118074662059882463871808455024744264877832578371101673869784624149459561702514828151526470107263801569868238618285120283284789439705126648988917630685133116553977129363871947186563143666483270924814767399694459064236055619651332177396884869691087177250293117433996871184370064803119580781054142463181532094095394001273743833911288055198797445750080366816148978401221149282484257394934631200782288731276882358557711638759979985260116794118110739691878667630415245053300735571901869058154504223579924847853479971932335037114753061549291924464161831026651700012458164115674912202756124721463130374764336656842819591302979906181866544217130586123557673501974613567140423215696024640290518126293243195753949349443008659226637556996166831701007357728261509944509947999101628288687497740681960437920204608041069082399261737055752853172852157572357938637361139350512450152647164460532919850084951533960169463559899328282007333771182066406466985717103144905084735997625489816409870425328920279830748931190503420657113303357532255566172248627213596120063483623965388664568309308197510871953858136399261142152962049712477109260051884494421816201822356240209918337919173059940917331185122677440919139915504812722403113922257586878552337136630539126389009806085939511096550370522634387792435627525775874850500719478423637301545986717048126146016073670689611366480848645694475496545228419201361340392108877507634159238265692110221526676605005799074389347047292774301415222508260776792672159256102794846150458394960163068687625627660876822252986643226517027286449632069545184779867778938876315305239873913779794880931292876948767896621824312981893694765660832888517060196717694849621234658107065807672200779102249519565300056896765842115364273414804130272181716936019710633967513071141148555860727829293595914019191802427918462102588750788225745099327960431845411847102330884992598023200272444373575839943706959557932411791779467362110461868942350040833178679566657047287355959561167735598605206198379082594960202421722734739104994343501879795046464740860412118362382873245733592068779598751209155839484320248750975764479089114486030745220358760373320756534299858451543018188619952413222712454464157056477869941752680456317227407979274972700683841819214142832448220036486257722413531985240161010579137980093240208520879797360576892061007460922955546423140010119480192083888067248145774530351866087215600082201372445514740509993196535928577095757445432589724371714799303763470174795545300306719013234145169660001287517742609838107671048671660157518619658592037609921392685245564758070068274461940925779612455092630242706906406219917511128879348358487022718363129291470885276402710419565964660182503550375809892296152145390927773164709329776611067758953275289467148541249745928473239579503669331852019845821765284470910116893443753482522610867820666675867746489010276932063842697821256568452383559848079258044635293775262198144997693656525589149958744454628713140118245608616232160160386268055020362414271611798291196264701341142956059148296123454290866532992799778542611491599084408660535167696590224599514353065503634248075493368041973749313925333780648748318768138102639241110568913038339753723520608013690738067624213876691407984876518566956935246281345402477188083149471235942416404262898459697878222980477310409149046129806759580759784527425091727827570267144871684926913016851545809390930142031777654627642594486031926358548451908592317371327435358526127564528662289210321783736141062836032214159841810583024325735334456665438524127105568822094740766587437750577159459437496650471897765196742082100563522110230939799263564650374013207110177845176973172315717119134261229440546098906695851783385715772862953064395307483645193529897711437431223698772367956169775549313074690745661816820672878302819970402606955894962015017712273950908213658029187235649201238048239340404325014088460323805853626146383500765161372681508457301655921855613725078290116612473518231988905073120286832313779341295819979084215299104145597958338903325820886780891661304262193618289757161938538680655091141304805208529673213420545984138611439892239143784337153549496112135318074799603776573171816672065048465157655054862473820528757270231000460677501233658192736636926890475123407001455861112969782193643888260389316420130600710267362233575116395803469034079404958664123782506379785661435894065456285699810475065112204677037068957258055930863174257998772483676366872888383936613557510865943362929711804266105051778757007149605258293992269896822872248069647148993296142651039079384180455991910974248649735681739836660951532246846082046073606060851520756923627846999362545480637110344844759235223144566584675686228696187825062009497508736561397573218307951376238986676084975044879865532119259904319688613144778406251149154208597347758472840803614860794848293070399572465130290792203643082508024308187650020577218110189473913959425028416382185333180807384274115370309403449349417126072613833779535712926215833307154731729800797681970958379724992087540534227278587855535256800772228023910531478492851534233753495737004350268843182008235004648037108050349344564993851049015510970289974945548754879700705075375860213638132504027819531409682740079499981435249267319294653487545769359920728119312782543185965615195304810173034071002629494623552916505594582473242755964951643184054980387980865212839868496361795549557727695280438079391122869183593732725369106985824965092677869663866819163928317462484841390423695454020853273660057176872124370259581192881177844407317266435680794959758286157667947760646324947875705685357119026726291475564818741992148614256164159616146780661729417710682644280195245846279077663977320825668137498658906063612319311843376595139304653062308738945958834773848518394557849356130062126357438026263241094971295270773672462473507306916011110489712002453327395098288325806064207603789857201965733378173570403861134981851152778401253151758313824080792301242992883078777823171096993439073620685026586276191002795190049975775105774366040989959894073352560477846456322850582477511725208358993475596900776067130444917772793825846533480259182859106632612875132088550583178392004911738144708342800860469403617271840962293876336312834374251415323410693910806880716246212631682573119856933439642537664353418231412863168216251542763541307923422879630039819899086731041632079742919989561642511795059020740649390463993142772405298305455217301308398278122843209479525085672707013294270551476001745343390811835034025716898703278526896116428965268185898904654826309319405943495248771011464976828369899123931756320512788983854081369443472127242976253684819124031584048711891782024120457168861268001166544609662198784480359182904064963294513745730171684882223356421434324072883982707826985368568504258079809707607075581754860408767104693430458548748809061762018494668801002715779055542428926553931066896335339193459138252420892310646801846516707521892417354004998318746564221973641503153566985772198847106045927813036797436137138408694537891490816108365728131752775413562170741838908285298399009249450198941811481212151583034829040530070831939942864791236718435053468967189445672405905374131449666208156697584265677579648578727127059931678790904433675134571505905304186626721991739274456930102443975489600052887386675830096152626031766783429612637010022862624510153431224771403699385673272154145851266585308843491090912383886303247450545300644202648883547586466678411366942646489736331860643096297031072631657597673905886454105574457732706981451559348387659128444491819742576815041282891349583087514998874709262007835460652300997182094877658481160745415358480552384935787446139244241469262667878455112794185629425979043430427620680819553773031539595923111646029550100522587205040269841011728108709839313058287535907187458754185056278585816055492363869409342373601821673742191118874436169372483366597068550108390626145161591701496376862924752603975659588307990189997007529680516750977757188554184877949160056037237308121136493071930198384914480670607248333800978015065686323794205088886893874907564615433516396433017875268156157845847897398553129662309062362544174996316705065746403484007998774961147797416156893472245614232402998327103672656029834310058733924435769085213142699149952014491064969459752099413305302763489574371102403026084836299373316342263397705982190666788615162441302911675044118229696889780979059718423471107285550488946742308952386853489663407652033418718841021158755930268527917259886863393926292469713995320279840799872328511365608602430631093205245946251147354849351549586027597539433574587961105939881651993039108835902749938077958243338000408314269446867805917607777076663143541238507479830330190709562809211631142193706630542636221840858661449427693426780501425407803962911202415571470432028754562667458798039439061574075800692597965864939287436077488244328847494703765048794547308409833660821129379894091922907942286849837011447620091111434194746547661786557128326224504235084634849885773431373472880072535670462941519285431572616466313214571990646395399372045658262527747470623210278158317322610811231967352207061302944002932246936088536503453356694763784603156372692579057752441632950504718757199919523350416619817063499676863196362529011983656124585118524242542940284051704512628081084739584790882455314556738681683463753933812030044230968047379098855911387795149724496824973983512382151724409724118870218378014350743208851262560502418458687781403514593595180486656649985175235954234162415618040695811504216632761534283628385712660260322430157724035591921042157911553566585281889102388788261150892269145609526329868338397057302025797538423556942703116546531394894457273354251626816393614757507851625352293751445899192064662528611967263773659961686820529988091833709223993341233080931405244372034497470275561208024825772603724417390505285017560595073436232974035512729626193372421339623449651751166241333571365248714228350926058710390431109999439160208434299920459555494905256882208921605266690112577843648590162832806158910656429420247204957982182054162110110772046457382063617326748078114882336321496956367200737968805749359624536454944098577589098722085697747461682671042042026587546479498245748850882321664656409994011516363001235073440434365252298496322557080757552529154003041480070284181419393172281389862039621175255218641736193717823814052095016995427862009552569307607545743053555389285338507891789322444126727655945769886166374547163555829637501516309333688830718668509019848856907405122280203937471915076549836774846069863126021362033001640120810100735244477342445970185227374547968074340726361830024060586432047959093630773660031107127794314040322027864141440344954317477025906925341703368493938417386012865510397996520940412038676597722972670405037069864207374299757524906038698342001168681369952594876790936124999508435640558022728375096912672748802582223498236434091640850993807480510708774268742092132185235959859539484985257818444608508186999077656101283809166096368897814752387299310538021455250751198858505953297315585900463435223777356663266031725015036729440741500532182233635296993068545472009183390134702683284891608802933818593012996548728883587335088438259654713428869298894574270131708518048728445041463890385443295526695846299930060482663649281858267398991391873253495904841502843362546088132926174285724377433059757414637625939503825717297811742617396685340240250579343169397424584380902629559970659822941278298989566623792465594210369573774642271418883988185026508613774820227928506289546551741900105389452087955275684426904938111831112487980818277784564020795424390706264394267051470337540610494731714320319949552881698404423459245373933880411783338785174028707590030286332212555323600753337428116269541586553312337015447457190283075401359775512126164443983280142883295707406981740818675959511262769010998079598983285330236981599795175103143622714534720618748011335972754984019390007835852381864634457479578722963510932013186630491237258305922616304472839620855335546824449353705194384090651552994112660603443804047465859885800296559324773442515235681826266193791651103417715175702697020801932234430101689131755231998847817762808966619446969042445962944432317225369027642910080117612171258076660434622971374384494671169082420106813767786629746797308382963525563297064275168157998050568189223800207440414165006922949535452557029270526862888339780389853471833191162212257784598662275433282444584027368075460580730481774169558092945023495534075280091099101775910603829044434474737571852116414177843930890649390338487549083607753818187390023945470449770059241508729116917685979017220638031136717752560483798912761955169537175345776713258807031201390260135867504653434886422785364891776344286939792318349815841724294383313856535156239750630191491044305094197477098136109084953475738876698824477082679782305652172536765947816108533479578076340847942071271346650458655659061869111464044376687361209046923447665489059411433378813227678631054347234212639132501057222386513016645087771397403151855913509225068075829376271818512450344212598651037816686272147223281206924333762478215314454707452607863129501074504142325809422711582244289069901656439534346441248806949456920755626260245088820912234158297303397887861748119984182032935038858065555236951060774167037147098186459842109823582207139107910188017210295055881329860410246345110054971177250253898366324345762863564502007604644688673043280627591678277081012132356806813761797189514603247120193976994875297257082640444322819644210307609488678103483053717051827383317424015793434778069977298699510761476886957986856420049526917133488876795315751511092938593928803333034789857976257581660949521826518027771357735800035848084443762635091903499284734384303084794352839416204789857141790078167674835031740723972177085988039302399704528624591455755195527916756712530920816032558567194576439114479434048285699561073015365935344969391378066986899609311163811994412720437464117525244523703270660486447460418163011752785373270085781312240015101177890108244953274987251699308897580397549820054601591830808917056661894871788814310306424889654712198466143287388721875117914379256200433604806489567780148580903553392184920495942913071014765376890500468308936335940852422228640694669738810659726944579434655520816558404121285046071433373452250185735518703201864009266879950632954264938948164761393828536208599410863707962512746320489143827585938482840575863780302041080837757348250344741864800915295624139910068965411663373735672383764182547436666014203595483702765156552048004165818226269531575860138546109704957077560171840208098225630775737712452673914613602868368549614964568338105339677174428375838406452367078752776455213770141226813735984176250289379700550081297951675231531752370130925684727812777312067244941703699544182797178678555059593639962039942715400260519730607862440647960452787824663970841648011201276893564442316827997818199531674633651420646773829234384490829270022057094933521046581229065150604822368487020523941218942064028753464450292654811171385955249943352119216711832869600674044310928340895566365554435014319657724516055262808951742003013699941692809275219013362542584233634851343890790545893909921705014626217129772241576466308812185428191476090027801959792968660714901012671640207771888040962740706790792251688341564717940573961451324691317226129171985880981994993959774724519647953285789974908973031190937213860180992071207302139657932438978657452434052558679529939009575237584156068901741874613176000144865201879789485618865006571583388154929704564990919082565886495576175664895612056468587055850980403216142856506180510382673745734982317761028003782810173982208377328486235842387240940087005368209312544323989173786885183222141909679764077273715176739730625926059708760675103767468826779899456194916046884192759694612157368643526683527103584199263408104239555356600527966670876954072684520940121362832513369375755752572682037690453436502067931728122430687063831400485087637934669580472517942786721034082563735839315647084897529647772978841622629811833097354641445680813278829649941374609956639303668209335065552820263432762345842336080351462214294806056840141283295770290752757583511428838893426256822413940662235814794971484201320881606533732654719227081881969141544646632533000838820556595098740050282934774952463628667059577551505735371917602854746628914728025587718189051724601298588869927998975797215625464750714851308920080353785834702030996554714876787631768680450063708476803309158926992130631963681048198037451635080090941060627015241782030500168688762726582375268279974846609606371730351072727458496231196245852231249352440129468644887441097476329739882979513700687620906821491392287791037007999769184513758931572891525755758391697167500004269806351451531241502315597781950494448642332951883639397910919603819136097727999718197727220480506520084202530200910980913353292646242423445702832573390799155770897995063187077976270665482937680904841685945583258411385218864588551412100680366451674959962643888718133617917457997035330125595083217612440753001462166978929753398753127000070219942172168785761793430785254219967123331367323783444418122057989387178702939331805455336682477766297400192518973232174773357963357383433333718524810724500565634279474619067684650366617025920142585584910996098636084699077700052349123326342645518802578229716671028507157713964924180631102182611145151392999199722430038990011175652097773695803524200951889297400409825163816644038352338384806070843690517832134957867807004061608863172145584980426065795005788613944044316920289108380726782583423357091988621768187497695947691493589644004827779155186126696537404837500050570976419997862771706769795081233728493604738150439747420359676943558622707908684575137170471734473212298466580113089431886409638279365377106692951973323198069254129061635891513044208813645216462171064594934671758014337481650468255968711921349029731983651129341248715674533970935778371461178269545337212161360089252662296098363380343457937115823452771188331350258005132197049172921494246778128363977544413688040222493783259531421233900132156545915869557928897936689941174234442647080338528408870471131742111418456411271117828888869402368990975318766833787965648905823185211523966483590305235576280467882176486441328128850494075643181124919890568559958913428318733854388106047626411106108068991383126825876200909010003739940914904565246903028036991966291488891935424023689898912282433236480940718987093181456563435226084837682617733506481340258964550659485779283346881759864581881791301577430832876532691490397881917590603269979019030113713063507218582789584668123388289966432493449431183681702294133301747076762360994041821022068160162448766954410912674286386683814453236471378394647267148803520414725469659583235102579502368704710251009025661816110507102323337894145043636800418635870986565453193044370917328478245899846032730284301049344737673792310537396894607669090913676750275918387749460491749620336156872860819174860775331593268692753501520129478827046626162454301667839585764508347220043067042771509478204464302182284574783492964493021789196677991726302258254037634937175862539967292610381411456634359838814505124275090636343055836558504653941340169615088930717641227428170429746295160646810161665114055548256101783604658870572694286255971413414996980462940905372821252363824731002530925786636852205910257221277897834946111552225373032804458300889423666953183974315192671875490443140453185582328558164759370248290924488473349510954254697584791022816553382532726132515736905149496021145053839294021390932218595808382578581346629630100010376275563084658357748892090982683668798783959429054715276319258997731254950340253433592151424440210285126989745133901320974403600778526710009052392200605603994863762529547317259286317678870499264582672950792651619976803378901324577726626236282563348367107654895303858723838220126577757918253214197138817823154896798001579809192303703717839044006821899645261690819559402074509265754718373370629100386524574845719963675784705064468546374198546361321889123457532755535708504732623505723983382681861674459243772546870476161929240298373538652293742339476328338126798680015015415798868799862972811742270167618051988953262047911199412556591281422197689614335039430081233984911211573514522907656190252787314917257331781264254746439019836238133991827073610269989692150440450995700480768320949593611670662757420448603733210382102816836202668364983455901585769481246833045031676771411895389653395553709491155330289351304961289820461563670812614893075075180861733431643527354628227566125615718625458208223033969080237617344744952275518460475667193733294836095684023143346153562156276899892651913808046273639446053708976729911314655466451641183088348216053838066918352749977766698260519427602894590541063865511777182707739870244858868641005709948225884346504739677288522665618590911343718839810923109995804580643404361161481042255222467400882491077599049601836679418164188849066331822407453355507415859946395139585929645564112894179547829615892150686913867104090204485463631957338603245504018786027970270780840514837924108594284656069410332347650617832372296146038614231714337698092926912842221518999323101399469509203951500415841862679405076290643467964040248782379981331215522817130540338309479937903861559796955802603402851380533648700495645454392911572118132935007404438094273740566685138278402743117407272035982642680970663992217178454275061516818557448479492032184359816735926608011077048942267856343915626881995151860071307785651852023203546638913605278421017320725252802869882802888472797101572373184678476920239195304467247272882602421373245608052956804480996382616669949147001871182013833456343360008089960241059967515561653548084809853512531454790764194445760731342672819244516004657377408635345999621332033896340261201279013226910846419184894362842493317274478280054356629039945565472318206402706097127632728055681839322045592148391627358555601892443022413268764834792445447236634598786226361200335182105233102719025862035964190037916825687728697316687497829784194724714505311111684265969787165898196522538705183010612457958760709366533779975193236103402497995231088168623881728727099244070953880744602210492435972440671114413379442530949324950362763096265070338270047458180251968060138970742489416154766002082229852926575102267987944861279144984858461144198053133144776798353432371825322794832637518124004752780603699673700789042694746494394483266457705295685919540886015180325403957444833956865958799171735449515079646626108393393971480458798076346922201219583431088573225000765017097497115009456611364352082752210480413580447650138721362049572572222557862820410008402557032138067477486316721959704395015626652685895857734792982075635105372360654111491498166431593796212369502067278058981767949329248087377332124500770729859949896285203898973006780974720443471458815419903900763100171007317132483015021289316502678533137677554509565634167007128501720846844487348020014795704644820267632747624783634398004583248289809336472593494264247275876776993335193390163349824043083773683208146344971274309028920062006394719394818824166233952311131267219657924478219101214584828279282970460345165755609947974055119320742706474539596843017113595096934589742126077955068379093111562507590052905323828677826294649915026427464284645095901401144629285568207193600979599711237660521162561536854934161975867840168229215751817139042341841608344872141219291480662880240060924455755673994747539618263120663632195969695864836575689206259584748805233647777039032352402551484530616082313635520190723125012641328138432308458022039704543702661508199848194543792080991492317448583923420467022862452910224546058010482517288394829153134109120252877400944298068272493874474475025205834689960593584283860943796565837709108960955118873930571976498673675136639633602954222896041727545124464776646706700159741866460239558231538264565316713433651930671828872698447697369191969526089932236752950185473029143960045106595893533901486564447386373414965271353616192567311672980337645993615103124137789013001930376896896165910196493769515704783155416917587790055325927043389518837993183916668298167033073481088020442400654010819065703077521119494937142881793322968634516846159307908510278013515663263094851539551515803930377310284468660902719715587398053483888416022582560538811862521816173254788838869675110782211226907372464211615991762510984804571301482792958516372237860169284762505081071503787978167950168917464902545692417911316626105867316741907175418907719527269863147993971565230781080789355695019808870760043032837288018162796155623609929719923723456451204265446218968845303286337103358940541375311699007918459800184128434572123440799076270800375162984563580613926889882715849426619141368865165347358700639224751323372891688612650196553204091589079280525388788540583520103897686864163983117129997640362792146438508500771991622753063676471265597665100595394418172893414451096314815496829481556635266735584745534246047516388849868335954614985585869110784047252014108047618441024023277528384373051638395057872450420012258182883666100782499049047882906048540990511039016074788356200879057166463969418142570391253594401343150636130316183067466985058842826558503258386827749451292473413264313407974689447496511799375179645122646627147224143272305833304231575854204539155374227198573713230966792309866897685576912316446524295641527619465860789415071433585243727661632676342179333960486230226223299204205211085998554511260898994960258516280703010307174673006794621964831643284828217663278418384209017553438752267001873761248041047252775400489005726673585040057649732504416146897306922003210394675678784547015819050723064926665907877526877071045254073629561481174188836164339522405899770832639335722251756675463046696320117202933403365439003937868170151152140991257939171830991417488125520639287731424777585175429493824531241973451517213670187933858520135476399379902003609637809034897107635933948831002354329914759917497526506603619372797330294625794595341566294957676061717611695791033578441313522490835777660386169575095258116743338405981652675160013861393426451998926860130133697591193868621190070559298498700366721898767569418248907000957129924361675697079123473422287402625078458235837464428188262929830278781421647942896993013186843814668049840464735920889254527154994573752887746152129118833572025077033781518814517501687815445220256137984703225561835140366160963315392830945691102643842912519508955240306885768298624136627306423668254460396792029164407380133366851361722586257147055453248147735827508837177568542658246395319023312458973304466531914254756807238563312375038436851899481752807530452084230976489748901808889142166277239835790596318726674447026704899878571282957061206507056633560614778300393233690664176849512497117880824926189026877615308425026888252243332438532606154089429236662130391272995344716822858421695840505427997057109297994028511399558620025788176056110856322101315151409668837604041730999525664945471613194236363643491850465466604757895512064620231259899889271389279004678959192745129937190026584654907633106480280133513215448863680052847262703073111351691614135559568278846048877103651204284369852585478911665302072883854787630337165622892983124998791377318250436005724720944539487610768828744426538244038744864814484919249256174489604860419324697791992984838513179565061326825474302260668141588857018959800646834212494075198365586419875117151617426842239664278652333009521167568588749998388611227554631756351738406138370829883679053341546864617348811274323631613749222626071163252505315871298330058078887257716482157724713034356074387034796959389317695941091577262860932167451352437738595523554158416895752778848113140675563988090874391731602890024991622423405259808493221845325151706601033125953288845896202942252035444212629904359017128037408131857108295293635296427640652859769509046972304398524709004476025292652516011918942845019639951559424544144122590409887773688314706475581710465757206015520033639404570813679024809577619111775641418669366807569976145927680652997376702797843521366706260840902891048598734166870887005959266012446224356310024201614652880407409518941853002333890871975671484443142700319439148305917525080416370949339847857222610756554578598206245288240783321234957637668376188043010696859159359833655597453094446173042673327802078655811585233517635452254273592223062448951685381941159662894428345431191705419412359388100258029193966544976499445354268938094320105932060593339855544470286767620416789635508278496283216367155569463714313326865308458858122458022504983293858839716881828246628155676220044578719892343676117842844172548120521591081950343585380698063739266295474589408956633501123467001488584533598848077788311828844783194574143938746565297049249329373181326494199351799929647834810646943669417670370694947720399822990919643645466840749375329514639953548176086782955756858444252644584042884866661175094343884228182467227214334038275524883674502100837843568892966872163056409990904899983540322879739339419998368667495066764615187849670511609038868203900171114698509221012453629192456023757735795801003416100969571689773348396846394183991198463656246535537684992728042408528246884184708252535080362041259946527974563996428281641017133626224752037007198138084054757168744807724665784365083623543282347591795224404518042713574854841835603818127065380695191351836278011065665665289134130252640345450395944964639316883560599872940578587012000974007071379294681615126236317739908391994672239581225849588828390496730011075042936756793165139960249682110907749958405686183235218036565644410921574067992927047354768217741221233502456554438808461568723835830502305452082544742138547885093323239824644591551168354667952358882633296720703548187147055033481776768924403614331102474081610366919822073618771271089834939889701421749361377758510709648209692209348658423512881193391660873687822501678930903600880928292888686849201669057611835605871306442883556093558094438707700398198789712383257588500318606149451025736439859537658864310345376478493074945876340539733353270263822133354816775114931061428279677763078218951549195036176149443499040076596891125030406231831026565985325465600445730863554266979900682947157953969059139762174668782897939824176177621461630408841064872851618262149669311664188220059366848196851493349152542221363103564103859306208873358216029324265159472195608550904141840208339884974654426574490594185859517786219227719360407010699965320843827710704547770468250297864876433028619613333254059271818671166058622876716602746452285941740402741943785020018670659985696272091236467501901509801135264036190091453155024936310646032012194579428863211035064163639059129838028168487257325908123620834292765669373967627219928414777355898321958089736760012177736697711477241046972507030062809237211072468390052928259794854278619300049341761516178079864919992393653172298000944888444323905962162850945061781039090324647780233322821035138078676625766412829536880322706211473403936421721921484192477850071588218692472425506393159266779398527442011192333993205797353275695370684165270440553499624162953270983838860655306073886802522728739733350978137450951649865945652957751998908671395751338353115702089932984531434227457496130464527044740078199667540543997922662430058535955833543950696480678114905112642718366312532556771942523844081651565194382864332321020272789605446416758369012692826263381925236049728531125353143197030867512556251577442569823671814240164331344502007764533792304275547411220666917517090423918495818052878649371173577178206667385326019383951687196298005844975003968873738668393054162730187805253111915211027146530987486008307483174707811335190528422023301716940058245322377401665841399326238004937221252650286111458418833923092225022384314150260935772641481558667037722470472282711926652692424114971239412824523719697838148328034598610634076422305321625441298595958101802584455074603427308883441651666610887323965132784387702652264081145949157855783151102469706664969034780591392884407802255323739376670843305399259409566358744435235244559143987308143704142852471810448579652081311320871710425898166894256280091706980222963659090412701555890052460711809368731531925374417657555776167221143870814685860957794537351536890923402139002937394634262771947904638041403974792484164773865993679198730153065118787015775501995039310669204494822217442598866981233253069457222429114405077603542962402630244209747188155186410961955594178007989089433662717854170051831075552419483343863954447897644119526116050985834650636757609974346689339766189136116762369133359741987766189736486252894019201375210484332978493873177847337946761412475449428651980602141938132164659122524648844965337950612092801443853736234765661106737995581586205487740426433172908555602367409778385438289756671864772809941571292478051951273325725871107637395044664527437130208178764803714444833924188215960064581693212467421413993581072525336620861674445822431626097739827035404863886326645271507244098559577914544907724930219950137579330568406367303712260927626188833745921418910993252206073877949118757005315228048298972727875199815328269616203859098670777127753022951149572319530714277903755971717457063018920883048156118102356052216807998283166094859285192677602839081438176686389462114988409482377360284821830642866096557075294197052808191944714926091003234469195177993873975066120331293050186730969825505715772890639721442310248523572736674082368174172162588707062853933905440299566377289509347730729098555580111056466114931009228508488185501131429625246642022506096361836212240234833222536986405333923976009592971000385226952657063428756601369108115282740472194062230156999173277914490299257466387139848032925745730065568126939315266079161869924673564634026903897427597838303610634704679197477001150546522573896686940837185091488874113008473362680576837034947840139200541829450616907831881642273831042506037419067231761359145356348447840299606406817706710741924086041230400663610562528721942207226441211765257666944708544837165605239094134759265046276120998719352527136614922130824502196819053142874507007464809333103784697198762555636806355794272760905023957391419856143808732724649511228323523271028083139908039817483520831609825076979416890402079789151558867575815587124599733867592742317762424849574614396062262845868612474167105655856867711739348046837579530324185663488245377725312590796136453569412867115696665643663454943248691648148185694412151873099351563560343656409495143633987674832273841770559655608130201394237252684601565991739562941423965234377043500038668641598993312269841208075975915337945709573832033501424764976257045842316079490609703642471945203259722906742242258472968779147646049803011499163726218303342449631655224758802961060942671673287569197053732449764182858297431957774816520957748575074054632823409579999534995321696420715076966517295072345724412624244339891890196498175969658706439730662989712450048914346296462743529469445941049382190214008439262973968951820058561010475307980511156203951989548538814026876326468065157507705373526670644530672308760991774651222657057931146873949946909129722257163188113851205984811981910635978669062766774828613105064957408014244380595305230847636094529365385518564313378802954360009960226754926036374879486849712532790027353021796046678340310881360264159912334333345534602924944146586729834923823329664702411202360028973712838523225778236822966006102711808663175380084645606822673785827945544787359227891983298579789707315305245803676210894163939032726492368711115735964675108304547535989652343319170810245309349344670431537757945725732621270495473217606807265557597101011029926266095864458416814079376994910791808497073413216937081437773668954352723867951452734115045425363140945987315366250688930380960219852039473198351902890330854477263270977497490367546934356665522262837193280920181830392813506523480954899161273154941786595392295818461178245890178471221466974321056321150113093656076502220299219427341353465698586332327634252366152876385491315171678432601772885876319251776821770582710226786604361181851520928635764054210416256723841013396206783988613503255183472558221693160030788820484740679654778395936201749665895206715012807212263409625908655868630360897607043620941942846305239038153796685161240953278287725334688425585003947979419543071065756116218314886510159481514784730430894707114076563712258560007294415873048806894632625408813999776970657069811034685212088341913381340607888073920082574016928471747119395916530308289318725684850582468427366464154586851004193375564050217124867736337952939427392918842655857715777916772954761820226747066535737262293221937969369149856841696926619810854212412996104112652993779237024498462115863804451574895461335458959658434735891402626603807103943957283493032993824724691390858213402552549046452307758515601405091083975855807211939420579134107581419231046771891293989570468098493129100472279373798462766813871486221881577948037767063199656330396489560778642964845002399154623097686963305918636476609443074819438837690382877467061495464735413258232227934240813604008426380559339155617139114201968647285436594858478389978729979272561552449225868375727773737990471300326323039101529402534388422273889683979098267558500421598811732206629967053526119031258901394883751904230153744982513110681560984837637529165219742811677299898072441990756130837938079678700104795693714427534465700344846784064387743386457588690763596475842502118665973958172159796105473364310972914043159104737858497670172922181943075460878298297828183204629075273812359738678134814209528608909104369494646495991993892945467826855941070044855795241393971915675195726830709738890482914427024034357802107334963472320616877802770436391292835542520306438590277420782056513300848004377271879575645918897180198003782773032355967361770350032350931415225041443119727932661941046871415460680312643635743402659588172059779044693563529964558348055497952848357729943023243670221323193404835436049755513870290872536458149361075172044893137601232540910119097468069971864941858810729099256312055919219705517355938266652729736113810016115829781382900793583756953249707232917333244131223021250671540538237612043152755355874437016706770041094619204084525025005567341415978678110794304324652916837358279545240057863690799221795120380734921711781910875105393725956443809005444815715871442187230376671314483666402394832760222548576752620003365582741517458651367797184583684747725405376679421694442869379081989104568860157295933218020004087434809388466477999234510538344644997402848365868105895195933807702304519470863836638068969893695012777358134604549649612748208948912268841490643288775119148504647911675124241764742721534204005970607197389884499287379431380239396690551081129278931721849771736149479247589050571919177384689998067293789094989173391499763342991164291803813911276434489601269790065428396361940574133193035746753566459310027660244426280120066858218656702586813606883460742873633696331877640966932189751453537196695231781294898156509940980239557522467851388875655105957342300620983818218709301519911769814599328610715372827593134089785562498145041614995579925583181931212875372040328930626991501775324154111553736190753367536170911569791532994894449429188945085933282743485374901815118488908328992441700914014165621305236127276293808074818351214551001031444806837873267688887858067117268182771354710634563103257752382056381870398661007587524512417599514425771738105276327807661887273068650595049602991386285480768290106299781167852469619994673817592252062208193253715404142339335830176936645368589453119458912072606291090534420607573942616984145727011656310154958196105974520346401335545922240827515621235241290042491041056483566753730326565979682930298344451989740122859607567321277256863592021761301671625318582489032355865178676650095401321990306274395895528726433133470424026654889586440222553485262254373766952313390933931453969492446094859247794647551742469449603625162958089693680050821392911925374344802921251886049884843413119104831530804705097080943590820074444795197029956052392573253874453210288842097406002798225107489302759183702926436653956013915247447166452423898848082193184317524418300710311747608078415613135809776288061395850086352696249791990970839548923052847338776169499059214593870423327352115203406525803259222254457988905891144095448797340742476215012481543763631257055513320551486890103385917425525068892016912329106611259148140744096203474744495934914283057294243684290108299009957797044388199311820807769348454385163011308787170401601437092842599355149091407303962128242158251268147286925465479419077643427445806425120733724050666189078260770956606048979057599546869412777481493704259334275106585549999220631665782995743180657139098510308090099745692156633378661055771836087089034603500855804816438853817569496361028243758633974749134508692998279962712548753417217349593824379746103133594949992647164917738678059301773637431070308178974798639819454602493069570870730717821336813373450897197388731854766468264461495431653976394324972478321767860266543677149499743891624798960922036690293573256907914623352965190251555417394915169265241929719037646477626970811859731029322906073461667353200544784360965522761426798493291940303809820264694722675600094901353567712431057278474526774938701507584734228926318789324033178137594512511679888723724617810253130244436070259604592887903877918130195898167116061544090362518350720464879168522211029664105086471774443197872393517859101751490297931324845967653266105738044780501224406556149316335822155113363696899684203649926502172892003248311718428600677520132292806273386945760297281552099976413030453605746636125491171339142397425133879560471167915001011464179972363130951927749269057736448843461521348623700391710754144048458803528274541379375338699615526227101689515120388453651827429936136724182906176795780070202261546025983546056113822619131281396418062207705923075623679601105483139073817797454249918190381600836958180263562383333328096297551173864040626333406637720138339368358427029663017560577494763318475225310435025525750520396674172438647999713476720946742917312625132996455133151566382895797399267136067489565151913598891942121039805872924561048092383157871008621173459572822585892684124959987145728065282283601345968147170511133752561910151865705506741139302734618616876792174127507909820776291110204161615484041058653683315930200126235629233175399366117121369010319622518479194697747424998097742789450773641457710876566246613812975057533916259953110894267923367033622290135034924995880808782041810030668948948371965881203155362507848408534395563553960931368156736432960196802412949783752456460997803852555444325423771882817282667291282892108628470604512306391810462643609093039775207628524720117115632974776675160217659216591805915694961856198408103455760934840684273252203719112658100965101416405059693316897922815834542841694847785585121471513562109248460735114212486125024429207586398984375532944792984470801861974895567645439710935624118108596116775675308477238558006823406298621068623113158804838975111430249599506408148269148587842705592365940634068565776092884268554104988958491091393982374136798920693254460911859604743935627188206680549895949080887567789139928101236733904147645642133070637887148995357532778817410399828715717614658960094506267888524858728135547990808066663467296654518698046222495498155913678970007566633549974676741741833555428450805081016310700403630814660251304231539471991619371712860498718777618416545196276543838725184242722449174955295586470494480912761976779035132728626576877317907281718308084448146071692453370044901887172949729253043957827172663149984431947793298093889544362965758809836667017178994792206847476959978740266688370307965914770717212891213549734981509982561275972441329967136422383025520467695969744711486561138630757892534501478016686646523365719054469851156974292855500812078324260215798273192757085158930045970281154016088216666498925513437297255719502231710200619713845974775080158083841755797213558025104456887561580963002316305514622861865652229023615855596993667414250152642900805516248221545538649629259614885593006183269866980072653656535403925974297589428935656907912478928297875421498643480652152067996780582946913588499968829524629216509037260887574305456050932414790540116143787901128010660982989005246843019079893942177836530260642149765012980670290310415057298167970113892293847384397758351921407725723921799051398445297141391933492159665125320205036078938172781989685194064071714177235888289877436948103212927992921744091239936500354163879731253731006663048771343440453863725087837546526263387254391739272597103598602925182451348693392832193750850223816738811618137235516286103158138495355827051012598403938026948972346743215219049481968097284821958849724230657708086907889676759245456341192762514606163866748006372069084804198260819733563845245584922219574038968193523916191128402057606330123697707305180622844760735061102742508208198006074849576834877089100498074661484208059436324327343762741573154378611426125709303636527740077184160380695476759405857969104322272843077660148197606681357414413099214483877774144634001967161932732316342865996695141047692531911810565043370619933483048994117857105858135142511398239473291704914038818212082782588793037640814619153611645162303661026841354047097863782460130957613512314328469707741954357318040148226331534591323153294591648861565029522353195547693298478125425828167080485281588054944785781436739000926280926117440001275589572032755733183877006200801946486214837466478210634314878075314236920367817859115516880637778431179908336668936800497345021492882432741737682007877227535209763487774846499752927288067321218532827611779969128660139228906027932755123357205997296955229263193517708216243220708991657083440238920671000392521720377935754648969785924431587789354063128311972457407648356919151449370784406434216327677960561407815041361208578984635918348295875488680237651508027437668241491123792437659310045654567637912639662431511820797659777900246645920972706930612542222813732147902154734227903803644407885941748894466818580848995173206135174488229802338596292026319544202635866835823844423179189321368266555151819518525139586718099018487760930911591625802143396111030970633164386444481411602587827759214303033579456066541824166311868358206415062188521211138675875509586587196715713445322672698692000477875068980827424647782628558000972537729511930859899542081231379158343461221567419041877261227016070948575074675639739381180601003277492542674147520545763672602401069044782648016292743386978065298084292720073780813054552924983020068705656091122862477994258810394177058879092963601929743495820381352022873092705585887783423713961964587756033441397302217478174950949004335991820544467947945818439296410742568384539289588272938354148073701252848652911591800501571502842728057771597461966377644217697166685855788997381100687669133332921722038459680245387548318490890575357604784792358926264595604702645658738678146383873055062324444029889395252046581022226511234986219350913444759670460860675390213363957018770720930964062021981200630379861674055259017350826952994807820793711251648617361255873622983731447133825755849856402925956694821841714187102795270420336494914840745324880497159555886956864109786592045372872540302923857012199016541383773604623933053028083120014447855762822256198237015353198775793363990867270268389924606168109738229003793012482046746726866840373990322707375986505516005775323364551573225216596202123105343864667023705606793223419772335138402896196168183071154182361830295130508091989115298824356734459266702544684348149987827552525945225459541595633988875565886670820498675404550864330003540507163552052826153894098642996001578246358813827459889120343831601894591242130694885533138304226134488320410089023899656117975377692989917089030189115791301751225559774414382825674808645667373885138051275327907953154006652963836104466778091713842065088545777755162116056808032467600404000021021819025858608583690756242069300410201196498004246404749989157733160015215432954738816986746569295584726384573523386762227967461930928404318543671423036172011824933870903589190548031935543321782717507059033601781060722397002388404165868188135293848694576419820461016308361715536503062285534845933712189679488327067021654657385636168671785719566377585642019089021533596352194087766043305161780537957656075433389428671453327312445527129928985207012995182192341866747287239788340225419424645178319076695688209230325949094106676826371780045159245177510213886158451953134552546589158461110470950762827017249446504782386926378694522487271867055205141390165013941133001504411473771951399942969499833651441181272742576141215125045981336230346919938738319122841692276156650128092542642387161599288415860609972455071267788180260703090844923890772966211386501233908701938856205934886717811530885808985989804728367231454040867187601662781994105371459874561613051242072118291907261222913763625439184747838557031802882032735915364762236024297160287975598837288448663287959654776385773410447870499396503168079168889437272868334828124633737709210904956680654156898382785659750410074937849295323120598714682459290456363944624544820410567515684295822267503160199791338238746185773263110204993694232445703603610830301467856912097483073683722172305487557579840576564221303981637137196060524916775919343829147866399221387749649879844045173144739873593804139567800134815737069478178086160932960306021955888949440296840151537444632864297915021549537600931915917023164001187838722835885827924983964882747282037589730768991520314159564468592928090945542846481998960695737403541387228973898137706308264053707064029244727329314038321747569097012248200986059400693592514562208497827416922209516235050868184464310232741570867613268268442007497381071119879069664373059347062764327240329877753391004355874897964990646408218140612637080190515421028970960950141781577971602485809784150146895897121337088193088228120782003891353413515992255008298358028646904305464605106357913459979567330601315607814724511227239902760114419578951122466033547533016885855938687696412465919328404425376249582555557389034218006437694331771956515192073570405319418211208387186298288172509475867351779082486767263335285983807625143935115338505382367160630064522734844207923150089617221861820136880376925105342789568935932469848450889977848661392843608057380102850006357917396560184658228365631588895027544706092727248043594995300846688150856372456874868544813641743739053476714746034814286210273066634672504367229121399306161303111957803895128965951168936465672758037141890340389561984062954986698118648726557465552332708662883536641891107680170172246362479749689113586774203055900833765973627384896024575175882219526367029302783790878341391335827207982929465921844729441487729823580406447575985477844871679386891559698187217552227095125575494516322388054322490832771696436277626615258980656367957011259188943431052410456794916391067361636707420829511625286207101977432545092998800099524540853166229593534551998172945445379812119667543257733051143753024342896401078523093519030432381080580227999363466394655117105708336110722461787923276897056614176491915712753874185770564884881101800182436620463793035810661573557517243929598035697429825805964146439022762664114059951353002441811540601929686971103507227249763854636068902314436108737811067086658422238107141172361112411611084948111323326570119198491931070865490158319123771974344270175821902564457663613491122014626516251852121521604431121758139070481381591678380096657364059169325327719889391771231730839895076474104010944734192301877464040716493176522697345216435831677374536663471173438580378501590516899303312969864062407656335759262309716565433148643448378685757999808174409083103468101965216216811575754540945901773719801581145642327820880230262231808556707615522817000311390796479352173920797079846651926698755382952501993782945288583314225464746226445492970017141180677924394915701712565229071916571061528644572064208723867527548126124423499455945547983670211064109824043034150961897531969883254474334965143941491534430341580316756241733257644445167567709640505538256383393260069857497869367692286486634550037573652929024011248185136439838600380933763637196710604917947492659790183348596563303029109155648732189381065971257449128564902910490129209502308993617500146447569161340140837774975360802332461696598222882530613669233798787692768438633065333755431313809757507521673210467482019979487659646253122784713086313673412605286273294168330882099372163997193676543614496885953838179167253043598342576475470424872696159447650472291605065729561685673145060913723480388821722460081822028028678132234945744776726585680017404563507537325412309016522481303732034265834975026108694594358403692347643461778218225339172993949514341520256024213189122430080448522537414850780997501460118682707760803919224501122679031836643793568994471008554482342902284948794330577105216074553392450095908438058158459709378392755935121429777772392095559856276159516422320905841091528514556244595453390698071831016250194660478287812846350172402929552880930611827895261018884843587572876971621037894191061721500331783998348421410549550648322799709798948394019409283527457639849671608460409635118268644931931270461803722447910119749758879359090490851447504769460150008910137105997694683446053854023281765724837803459987082610533908080663848845111633969037660808758814838571799487112433326849739207549547577926629187535668616388015015389060102108828106896105736324381713970930569962803217606046282059191049769931019101359922203771384013414708066547020736398922634194558271931832898768321801689115246105357904664494495264180669902983452161127086255566467093092598491157398590910968202583450127207576786605096386476860296526812271611281624504238462981894956460090851919521586790127514200462510511214501513222972285753611013621412983850800681703908421235460946353632936828262289234079295015155048870850977415498678150276241713360421510545261615338431864943476776147516103188454342679177202150754882465803673548652087208461740013011245125669341413779068897004213935009278851553540289011535465471268962156304724299209191529023957872029510088331033859008445098666564688839036485796009550207440189071299177624314337283934848368784645524369395795972132164837825286544464168451865444400088025049085761871005714307099123138406320699276683791361639694859007278043115141383723986119372299333169566619100630499034666007870599766997746191705910528855400888096531672164293129782749112548634163438334908203748528522489462340266952193010406258745639243984459203496885628783199648717713437037024788540068539244196482271676211691583495286150105408217519079148643411713998351744249794615984899564841524384740674672274285809052054659283218559107125700040932035905309602694726022252229541307348847590194016461040212753469258425751044347558499312102772684894917901204176743036867951573010454931116915991328529581898439190056974652663581295940090263383447740305368020767531450450511851125918491787685402250437610003767705386076863694786376986943365387254903960884982004425041587630708338582713786008356200291008655910143082088704716554898784331685156012086484484429227589613611520730373285371833728449089748793350822884629662140894433288400528658046890076381713518991986930150161829001800478748126217283889193314161592680357446165786077656172092367627243367156820983030093634905294586310285315607402747184160142424392235363023657440497373807680647951688248262118424294027504844424684529092075820302187591610725262339785700805889061239634764310828312547731159082476485508673261577113129254437878276533457000366257713038893714512172813304966638233820946433712403117779821260692453403331229140161347293921108967090197405300243050924322626933832383197760068791516440374811195648522588659605766201564057167454473203678208615388697809350858347252642321446797727627305482436489629423004797637456388720778813435270916559335010742823916183623741734714587358054794931638101036280997047396747641507757497057188393677977710681516176500592305288735732814723509555323533653960624407458510023471540851205030986003399794360313711806795247151203581362486053045320556527381774175699313108825803680383598272025268007790256117800938435138167315894420745436134680157985295287356424755543114073200631986079500716345555556694920164814951817414628627560268791834876333372321846153813250836280182215352832189329497444930717854321870204824475323153436297973469748743332568072818031843778371913419463652473967211313988883895376117313639926039110191520801027911176772691637595874132387006787200175495707065060375122297298075905758567189891542798861345536490884220041222549970860958022901075733331674837532543657416822518668173422621513102652071481929595459984374864175367334553686094568080052255472071548316265653317309359091766850034619265973376919871918742947821308719165344589778429634721209928734567189843131320173667360341312739142312985996911564298219814834324563316691419719429281937499395763208320126108509211975654655222225277990927115490320285426758127113984990904944192788126263486994360714129816212019918266976188125534860822198681488151790687493639098940970295264204920216510123979755556937272846323169113038671672558513362115598222664766447061465889006227989998232002461233691973418251891501963112412824227117473271037832484324523176648199739474073622664162860308621350183813658524591586478069037519221304649936097604145574960372022462795690671612755598542907738708032451902718303625007107823859644636299033503339282429036922939018890006002635570267851456236197453906581665023664087031678254357529471440197902022513552133792369717480821803571471747395574013218859377522207666681416225975539170153127490468077498077041364196868086995400366575957717089152091124897171457264717024481915173483927686531641012058304197305991085577392854420430862465415357344444670211379777210062164946761329641703987580238949985974861744641465424990739575371167834065094120874681134741469843945155761203628543920365361288701147561097005066795068926719047834007832316601329624045119901234729344528702053394298246202484359890123836252828412581793347446847783585266072980326966181046161021953903153196812844397175754117253631259905820216154742892165323039327443011176774907215868703294925701148943373546600532615216783295153622519025337786092921367360224142701751534173101674083823600986615235252776136571785788696003606305343006813238639443203017725279970455572597169457428077939498471097391683336151468209770383901982416368154861657590859201785674300615219085240267557661970407478027100857150638582987107358676199680734370136759377408185359405684402390294199554805768970452965026531069342492224285063954202202894146651570413830242466584555806879121480101528218718462601047073637999613644446875554988816877927649647454260126886299493362056426523868012533471853387773254477943964539034766625350479669715882056869077311939187189000950418363202511990993377719154938490008019948395785755138121252396664772938262323745620273588845350184517977143265124804016943972007835956675714745269524532746394499121386737180511647218932309780400050490855356736452788998961683753791374578671164091737548392539903688071764788431749499252909578434607083226145025909700053671379595603458155832397592801160397611451980791637062826546081719529681496137544442105475600952612865265065143537479791628225754219118674846653279981113884583416455261371905111900516936427090241382490245463877278771964312502574984381183940975102755597070473276032895530817522038808492206769739685210259583990433526936543689935350852117359778390547696685890888804496433598832122683941202380355275099128188336009075581854049059395143729369731609752930448268322224737655282745052513981508094692048575203069254317861120406091132746188863220867545791066192733376824238196137495907332020039625967001698649503648030886640422821791724964152812847973077582556067500298698004865281732592183040672260358358167687153123541580577470525340930069491870963722110883946015658159294331351642191646621785834331752472093546978511257234234405680482496902365638295066068234074963992625790071101580202926697742703232434504955937953429146904013646165345718063796930096235876383625566329430001328301706405679380020538065436463797379091436089364268036204634150244823775844368565942003636749923754934828346245318671385711661626967352426983979363005704688663802839368386197456102893957108398519738196058908025292285074301162671158635120292959090118587889661485052504018247069051350081635702753480821458489047775280348796972225996073938817700148101218638909134785202105256300287458570565137653641942797645382467235411178141245609606558523867899615789109497236602550733911838467839074421391903097663272517190987216656201881583493306793996036484126346512169880296768568706654151137486982233245857422985058555941473356632607386612537898739694765154498814460383980617062027770489304605323781438215561162665493048877161581041592187584220416171601699305989816055049229537986990108181718702686250430482188651398172952998482291147698371182753566401099459774661338819994002944090769805741742299854381303175681286651853362181826807087043652522166186991033795788263991835498513345703329410885938893905202297863497223550881567018157420127415096228137584429856422867163631162543399255096997627692704394919820129354480675050151495457901109496422191429610610392280269368640681099075668635359685835520107693381384071102101659426175427445236891421515952207691518619761640303639568859993829092422281170805319664317581291377040207463620509038255270261638053516425317110408712951330111568551263610466607631282454074875675364884455899116233486946371528300321306537279240933889310095557940795933278010506427442492336993915555294297260494417292808422780947326784218603982348914973953602616680501972879595567164007169956640305087833735848009774998339783739188181972306411512426608063844201520585173005809321105193950841033526750781987512738785092918591956145569397702887236888614724611841055940642746111081143126676637970864949176295102598950159980926054393346427348273799137631255941258872875884855376397253592134326030430011410887958917990613809580562509282024779022619957533463536952491902310855965961190077366261183923342994456592506509428136864208368764995965212975486752512266572362678055539999768668179711494065227922228628488889269075612877112325131931613330130822299791925056995389117966360529436070954602378360635849014460261426598910459352513846443961446267763050018694524227227169707789240843589997946443480198775067583729623422359845009854133048858009334671074096415638319496133488790103608064009430725130157018237579260645872531628195298623406321575823077288087545156584224731555988018922865080499209345910836605140966471297517013104548852516486075194104083593935186684231324134197694680920950442417450137892215232967113136901479824438950432415802540154085634658338834315061828121610326227531476000443418215773889749015628087928876845661731815771717843094817900952230222663073219948676928345161882498884975799151187348290722649513315931215675209006359745620956777309358958795061938518061323165176887948817457615583354832514502453680061749015979138374549891538171402344622361169044379161396933417963788362186233196946917431327740261630322710524955599871472174542020430604308888032622457739864073198917098580747388619265434429368519300519030088905954937642603719085175998099584235076940289107035282166812726229466634363569673221144589321396010346396644032981663077607618850869656493664972125170083966451714465958884962949468915020372346041133172727117224362994445846611996103089506468267012340587814830581006447093270008459756447535804933225061863195330006761408731269445509041106068214935073951508943006586948202676405346586675274160670737578281788378309396446473836340688544133050104517713359162613711135120463661084154807852913588137057319312083090987162451922177126587545238117922950339951933736944798345089204686900848777839886821772799212681980030395123999212937822465559780424638757808296735159644377835636840518529665441093914712401765514056908092125439977707392330890089277814021159549551022605967445168899479129833044283253124266662831867167356033593771504215748955035233651879099502084635569380193065079214093113022391861895459071712665895134279528824324408131061411799722518717103697717868188207310270217013446620842773928720462954828306095847984030889282045327802560184806528099926837701458340442392047365638900453141297288126749443051709142767939026334576703813641805085472479443884038978156632745316824717951631411321298117719250014587661976281629001770712531291849501440462034419232676912669312859732827276248088133208680667309276259948342454030639807269376557681616552979631501034215996119283822790604104932296729715952654903507077914440098592654699528709691720758439700394756512529131125646310855056095297879432521957660026925580350231023736794971900570271850412257286394250328306581591888212352206845897739022094153714689963728338045490284013533010348938410982860548841147264190595488420996092188941887531179291338479093183835726349821239683420517219180636635886494659163537427280715694853711860301117013668811592497895082493699089749251733003798144997070252833106121563550210050675779041401154936994984185131089016522895865639806335391549974367177799227486300727626525924738846213891960987455246889178970247947758009553470230499839116237957187808799711613896366876224619710333100879613424995606403946030966793047622432121776590874458623314583993062626079381832224026707089524648591651417891593528772717327813166547309803345712745309286987842396531307459839504444796981885837015547853691958821203106665499578302849523680999684026944180190169789484294262114445899224406106016262514460663984451868966516892596549532425597640768631065894973363209540992561104628723668729731322563228841182738894842487864404420099214066995430315273028615489401958153625711001241873509299565196884074311607814115105470514018300918453653519358040326139040754866443270566306884252770604881359005100637975881067318468257110355520253577728105642658261181060313494162088985029753279838951432818138709085695139744695875845601892606485985534132834947620062054050978940961229341328474161425806123228135459616389653233581963346368775954496947142663499668274223743201410471655226630621388212054058092962505654868190952866675614611745129207867470478089458201052417072880793653825405865334831208692869725451171602232961264381491408180121961557416187065423085480277198503172127651309711969799462804331575017730188665224782868317219433771121096947325837236559430345618342336452491497788214118380243361296460926107324170693646520320172990225075966697381267889923871731303968827778600167057231637016391314310103958710193390762494174146739739607303483789212507138285250232578687570347505924536161543015567127436315020127078802155522584073124945741785763735886562369063776177827223727960470753823120284229603546645077211885991264229630270532440388523480487259553487435295264929338841961021660220485715456620076204270052528030448121389026315705012059648491887169796543967292769568624065120830282351233935087307610470378487813431305850351660680507306853407626147964561254193820449872198206776884924956727071208713809994566257401850491229295733674454708171232614184035064574097756618393490662572357642477731738935943532021346293346868046594768948896454279195448898967656482892718169737091747497550495668662370600808109876780556722447134335622455497939173392372397743231107154469686841542787659755278775620191212098936084047035803716222386680778177993550373911089451017720667729509122894746958931482727768230457732363550271576595338658215593136166116955433852526865806695384035011072284655150655820283643824186974880128028370981109885475811795583578605174476648447619606073180335879602482415975285299664324222795934128149460108277614431139274298259276028798421280073125342929400239096073468706796286165613423943583644402176518503913354344409368692262916144453320282399110840394408303259352199742089021929495612057440481442017849212819190962521838783624378215135568196732809573167878534368996673510642918906558432252066487160966459945638076933381655453560382955472074218347205501581294508883562103620354827487692213371305733909740919296319553224249016874508993033011750443572587572074283275295152788297326546937418067994888433723196013721397879016308386145384535193725818149106671509732325842311286586762422380034020958620429817171797199400561811290020533104376740089201186947788731707201137926682708410010143981100064842704919234939774680623445082538557554439466126634875364708431686091488477895578723762769762060477515669648025483672129788535728246611924350287642336828505282165795347115538585374036311513709767536209474184767755215790319404444535753374872609957733490162798425204669415757863363245747212331458705182415134523431600614450096680270180653936988946952377651211319078376312488382290865294848180963812829259365000124268616719247778297029353928169759439863550409481225543865445398049412792155023135139467039678903875568749801061221969105430641921561033488822515130803561652609845610299743832015054422683569454196778362748137034521118470868261306753250775346625458168000266831605652578318790537355038038901286401874926744347888026480452212897442369398497963618550945757425848527280718910290623246276802752837695179587438516926046935643716462198069396603849413536446124179333507697544924933230058087927389442679042528562084284526159873280626546405603510366769717482884229416777307341087634841975202509093696259642976356541079231128405214738234242989741402689378095118794031779963294359838590130487124510341845683309950256468065466866265936929232928716357836161015735589182530785471601038231391270637491316730732748864764641585974242492781810173148683577357409416343339153805196585621816538314778911982234239347650456957576833020593718618756020202664274682316600937263002870026802378682974199069220074595591293763101493416229925374822847740028768969705465910124422159125409334483454831920241136920160691868645127408317750236241979396083000816773227970098788817295092508023368932739425565241274955102419028309589620073399294304147005293893471031325364123741643688890724110613422832080294397512157923138121471047185722089690845888347353338555225406633127448139576078683990741586255033415049538379062112600839961717704397585278664145022783893553299070321281855853679762033727766906609654277799625669437862690353374632558850997317685411241557793637534796484176095037724709849881725873612846812940946475556833073430473010424881270743843328053054122491627261268650059129631358261477424553702789528114190037871107416766111388223599135857858461820616405267618409580090592813052982141815160056100949145126508924344108785501518887258862166751265909440939430838482934894308676703541973934940709704426020580844323228374465396106622838434683386256510375691677022309729467292267469326876610266048142769253124637648851512712957286225096244463695014194587398341014024610268909056499617927183028643545410135408048730549574476395056117031950690492851592727827840094901606932092195427124374431321618814886321504334881502977277594101493254448235867864648060611785277842790907613727336502942175152099029371309581543258035209996868783721198479464943216818233451833317435662913106216436062261702615265047083822638365472688830441204644814744891307488400334519157171742594915271539624517259529358973373713537318511130744361891644014307226020575071466306563963447500326248201776680452072343198396690257866303270892887811471513424581616528620709405294766958870384240997246558867607192585805681104264420922679412423033594950393974369818532730321752771690589695914332260041577326582143582849174426927954613037463940062407819175799931788447834509859498264842356610407807683259683829030974937016616515803768626665923001975234424752103297834473396434853626108804607019243401227179171767324439206775324548297056322423440739696800258736618447761196250137416129044791217932158846825408224877423764155798263458945167280935047690096166147078770450340426815134406070358046681165998611369168994457793024037591992413349569219580302961315189892576020682926847948711388240483514729721811311377244129957173745107892503862808225472670079853797967186778338372586793116026836637588073536498449570581241856389161573435568465250992449781563245625851943672050444257942875657427746615761892699906826574158528901662272294732147383603872055908653352514159004683742489290425044257515914978389312883608255469475602106261464042189222317723559519164013200036225816641391337829652552614608609679963242668037577568520104799539557012515361506179951591534059708268974318093162102758582100500559352532621607133593330696104071643229374211978726963206140226330101254645510825821068928518530681971841339485929537381166518665403811954813121520016998629093937897874088411424012250569363223194400218368527239396335494093250118306940516479866970319942169924761285760020419926192067702441677766602670019289536291983903210532503541533141932221387437486943872973522741791538358861750462384995760766454188089446457977487512550839998939024900528937800255999733478398556194880964478429424637006879257789766199337923891734207087279700478143582558260709950576855888140929115604222253312456352765249529542435099946017519387338201235270376418168363933682245740979692729084891478168616868996839056861387699550026673678379872248533533100861320838583614606689678441066275327207234653216360589737294751761334544761072214473477057928508211694929603643533763053936161528653241411941561650997525314339598239070511621421766682386128845078449089026390028282801660244259215490076182827423141225376944267735235100559181535792177553260673198499179572086551416514757063966110654524929502959534203647701179017138101715277774989376769661147800186111653893299608211850209792213303412680119140025644494473891617740500138019063543829900679600631828802811727143903416353208817413525023992727174629677003159652659956647694996502365129320222484537022024883004278946906404865631768844207514203086834951478284483771186874480894603699282602608435785448957873054048383295352678047885263578931630250761632374157109239522384195638135034837226984071994977088981199414708359808641840230261940059256348146367128283112987426727037494747418781592547472710623002177221629488148684620891141919865121534698977790063018495734746590208513522212001263288556684136668126750453397041439708008998349188339678320573083372608462572249620784923604296957610622618234697332316125622870638976492110000635295525280043294927681069269807097955179246779870532800001717243997952149559495194696342711090394152322388521743718182241935272456051722014695764894177062069682822022813036919554673872199594273499352076962356156895593825159214473538742623870709332566658428089852820321889139749967521635688396623923676847032108983794325136253229614414272953916186097137477618341061585737817238337598131198340972522136452666711978899705128465804348122158267569642499374129336296916648319228847789791122396687847093187585717552440581797711855330552706790243533806630686427011567425594983521527796465258759331868686188486723359447616635001341946196016937605936125237365555935246077344821875347736606713331630247495085401873147268169106296882092235802165726972602189076610724952309623623922330620409008105774286453457495667919878933468856906243855441999295465069656615746299859902521350153472801312141996133510911488868338423300923093691138427053274916531267302963461282796147580433827066502269185052812794517563925655318422403648170998777820906221731985643468443769366510456001128607641747679045303037330214044053986788366366042458285806925317714220274828995017236012123722137430203535196467005493203943472288403177975561377490292977685914993514626776458862727462603450932091186167746613797157522056690740306477733237363030826523724435366870114698828188352364119062112469782795561258130089852323067272590433890652957221961843836502981311581470771313743682142086505515127240203621762684673739029161007792507938736025322330901387583351552816355717685479353013541582400250609899741856931324710885165562233680460270882647873895638530461585717869518416084779168402547860558038723108241764189418615617736462404748887361773817341570565540180814983907501404308530273334687900275040049557116402477471428475844949541062170254749207737771755979292489519889929413931323347134776509918691510641343538127850079728010461153752708133864832709101269864439289716161932870479118115350152754262759005814848097337308328311393298558845691758858428686043868439791426715219451614350773726043282598618474801040505212312044621566093107021005555163138594745338911484614997216916865935838044414826482209361498488749009898507865429773786084628575892591467607950805904218612037935343013934880880488178017278848525835986383090982084593115266131256601892893814964355681167555792296151287903072492817135275974293889597552372258408809832397165940197290653829236740027123550048420849145888083487605059936301071115799482575625137490065318429961360703528299617430966265048199583466278523479273042536627040574585472348951989923866325996224390845906239631843498224016382010721965005332255270308566926086158507564723283828314926167268340782911521181671452730968429152230454640483736839301810851637321330242623314495896794513004259877683288076996481066041068184044350069531746502898688331301669897902079909493708864218919763468242468162217804475078926530806398183428755296598929280382192103236886362572067911677202302659168538096835918987704704233402171272943135593854065002919012930705618210983812994155942775457991813445446621674757148179212551342175634350010598482525661660190552706110260082914423982320803931342320351965785594794117038063364323551080928677876125692342433970924296865630586944199601364228848681866294478842574207276842464494515472255939743102507287531374129712866387940012312859727847537760283641616251563006661639686539248239545745161146422085456785826053858692633198537902080128402817902853012207917071898969232399404090132401283006342893815647382578498804498647343019587845578433196573603545500871596648778498299339099954865336889880206138282251355879887651284262254060659976095340528181687035742789676116108189049886780248291201329587669081423243147537741542861177538913379881974370864282661638464424483820162371738475590998768768887138164435795582998768925097432707907711735995408130187006311141952722125956640596800114313002771030170719756700529616178249625721150059972122692782430289655480019720221001494714820304210293707028308899597141149690526479389599966464052269660534881082691644408957360628116221987991547985091678787764877394077885933006453663387406813386157375327003974076047389680061880509846869045179709028939650530932353437446975908173536632942096830067790926397543847584779297291166356263990961746506426387189047342955353801060081824792645138467846336780080097012260436503112468847095239009757075437477152699421037477331648846969771894222655828895319693911754466215454076706689745351594935411435269494612345186446227260102392487698143785240284146931142372032036087363933636229106581005139880520341677027094390086913682608154231645542911206848231468303062752534877243427514139055009813565424088981879879837820917663392829708802604956591712233372614459626194825173958522364576212957953359645115469619841014630422870516920715289416834214847635840826391654009587301097913034934073468058660575940841594117658206484329972784239815534394043152164113511034393129901743645953543826959155095229127810877560792523679674349011599476034960270860585455493803992767831786938783875573069067289284181168003381120576618502080092512911602340244528848098748494747502875889505664284753975198848316137303622145703282626927791651956895407511977042147347112093736227379847928326977541941158816219169971073482039585964350812649813766880582116953444440939043121157135246895194176953285831626199652808492600032803213953416033153331473289500863337311085773542254085720854543343520369529136012001968702790025789784395743110507897847133681916785376723348574387894354306573294673888243785110072316400444235769910179148354233530418451585620808772091812632255114687660943546752523398137019533940136677951622093158927200053447669229975325967794832462206540324113870972140422949574928300740238304855044336348722850586988942511247853527218304847535714038451347636232575448161980632177565996530059593524746747697400584407626201400164036704881261076218500310253563520938438951897060822510481614377386163646385885123231751069491078451396810857298896090443269648314139027794045954923271350130166939300608666766175568354318540656622880860558640405491817757152611263720173312143738292467591726717774716898766350364439428891795413958914134790894722536549057555118653976825063585758577903259618715076107987406360273520733806026439265052064767369202503480826379213597251047659105686201457486056710998419573930210497365687050311957048406436169742502250419522835231505395488807209201539991221939241604890361841482093619627462267250064693894148287387483420874534513612916832390012031260143701257977681563242842026384301448302257698507160648463565826336871451453482683660766630052140467117469679003504850244171260544629752312303114256366411473480575868513959265397992465204753849449751991325161654622172611515627518262294976933723110346808815148670580986355381097065032591658124781956216528152577741937320332607915325490913316422391499051958041690360061348262727473996758484937396905204512302787347362895203242558310415907483301351317021560582079602764960665290756169599221683980413283477373034311017404776856096273093109901681414366220107703509700877274806657126486927944073024115100897432383611533132823757378640166979775807226230525789292842610682451093620967115273307366343871764800148609377798723221881416586346769213076739076577348442779311551854661734698303167197665660388328720384639194851854631281584068985864461515409923166952861744459770375458984218723299365712171272228960654705344722421039586744993348282909888063022648929628127775150543020950946380760549683835888370145107608589657043497267523023049368138655623344632389237837903126985204625149385976031228809550234021341901131903712915376353254541724571137683034364807657919449915498496839186536533734442866454305085214606224624523448061555745258704053428519475627677537673917563447897617600273182582383389268145138800663872638631196391173700705435825726618614263993867812258568689000007948800425312059071986907419667252708367572508055510968358839293241030141290195118724279583180840669212416193532808335452897135043732829387728294038550320096518204818610387948864829256578207424066064170965968183160358129445506937931962191343818612201287609258198456682338714482165365931196936909109292592437090814144006141131893548148825543726272428283346210811681403387204418608497556877911588188513486874941377497442419480512079237362362803098426609075729694197787261205398421026111837398697085862625342352014626350470785484973157623326884435161122659662841540229605603488951237513129630681203853668504000774399405808114427580105101469420033975380668206451067014772220536762479387085658047116407876152044846934802682054754065628354004876320447272119606728616762405695536342061575643607880908774102982687265002595182753217918442023932391539976646497984871574588641384476586353176729215400184704408460504205610798598966207981043596074170673105260428590962905596745361944622764498782285251768784388760543538158500874057444805482718638850765879823100071098473537257316476332002411650006728400421618007472198252578087595003830775941271761827682391025589295155566971136958285042521731431625458981086511734246923552454828490880476549779026825252995870798184487756576738909960582330612116549926082099094790960281415198665029245260144400244417049525507513293332816585044189776646481670735760814571880861779968460148941553020942486948194644980247427314934228732589069691584777305661168974003692270818384570470521464787537696661083279810073263872465220888564364881239195579915699754007766462453905795385808864526486185737995376728303207932041468617066968175895646782571872072918618434498348693543754970008060169416500265463722950368761482689981611636056457380382360595570418612107618397566478015130436176807218644320974317328605615459301952734950691241069463917433550216131167393226981816544814232358764608272190697111808467400079753747255627238189690331038553130990258769109241985157771185388281650496664731849044742821785425626468712995361237086408919691537825598366024439744457241490286619468636607444579194065690360040833162088023230627769488857690007227403052567678665210269172451667072372753671405787778601015378308433793775747669920792949703233338333285215416685151843647053776152162376171674800001742690581660077703740278225610895403871797863911270111397778109504008247616289662085649799577171319923072050610934468092084659181987507104999603022161610667890051644905950577201455462832155974368108495767752239691054718997576870774144818425296785793256598170855486534217532965181464819136483826604711464333636036847994738471896067333033638903590574940761363203243806714179027336617971757741401940606767353135211155924760839305448177115888867264437538361562572277928157221708082542676558804367850055301646071699039843156274773134804941252920911157056156179725744895955474645669703644929107681797849620672608946940432959297863875508561585211641976637100982793342065514606430316926199213875954839946159616607691472726370785735685559850403904141715532044246697117459693925315852925728008757581596368649225136776649899598616653144668949889101838612970426801850728073269071473062354979063419485028953006683141460062127463982059503267103635762914776795968361777001606511590181946456331158401250219273937653512457426949432575073177563017571378370780354893705321669152510212346449068118602868480871900316976413934453776934873985520576943740390644282258816537246708438038458309791387553536641443834115909080470196135949529366058894027258926808094817366370837241716683947561407483230223986512387098274151577020646222588960866427594134036384607963744378443637006986655449212827104524825353640342099612609977778752866451997407721301679582315450408577070347278941070840191874691944005476688665264747392846181613632988655571242281172425856311781565034174544938458670731507986051050896992066945281681183258478826145660055841759481719557151633181115794624826392333334825372531282685872161013253391480011352599774271363911040217785046438034369217120848098383417125341286777936181064569626039090691985743553781356981135498026706507825978231981163602029246409743582313151185595766599636502392284683966330303356555969189807090477518133779927143059240543213513627064402364873904317705078780686291168887594049871656345144781700025804210826011761119267641149652609061531809150876874814004387903721445349831952016522854854762811540790051317403125310260788643152257303290182342442038595983321813643987091715873457644372191454526019827465601200807545626771513895094685568082368956154751264272543271816089847157000337589140098409646520167164459638186253066112155240026733908243014490225614995580804847174698977621392688291033275325730379144963075323818494514476342673246689416679869340439969487243175701123088056155088963637943944960357957746309905963801249588286740550421994930191142771082178021374855990825870554682393124837006055036218161188926311938795178824929359007843126466624722140368129850915119518856126533943246169679557827544431581635548393098008370391004337032329935799376773770367879419013558405519264031728296116573919729559643183698616987162256329005843333705084063782974741550758899592857374131725531853750507928385560693053472731803080617045883381162186930857213916583369352754250117802170277655239419045338656166433511089367026061323376986846040039096297998253847114381607276300438553677826009730562525933404550367792669226269625980475941503084333636505313819537244094323429857022479873876511487447650822417751036672358325455481486876818056616907164311751912964566220620085093742259780924453354223001208305956644121100752685285732998721286475396426231373364053844698316095113721456164014745529249666586043257599935106878280364175778846795765028813819984698867699657747062018366019172043504105084300057545146494609381229064728009091625424932938389931411363538025033644966450641009543641979012256825243285784483248739586443194561945701432233522329933578746427206386344541929022400767788228389530991820920999869272273411538444325833025739970525278442631916352921372955631849915162107541298956479654260426415285719360192832373495345815651417422626392635445507875820369756626214245458458504692229688550627764358733158771809818266620731435487404774712362454466855067441005254018766839192090967444552027563733820669582888630033524859386982542337804519742142449160449989863033192197487382043463775066687470408319113845340774134369004863976797613219789084400768355905653145946645938535504514319929579919675865030916579281290446049198583314749162058619886388853545614471165784958864783615095851524196192175140868179597038540905129559796283200209405579128569906625150787255422355522654186306126794696964930445111107456236916432121125632704572715364828429458326327452098973321539486764373027604396045937858618978888462335272605571780833875901841048326758772436325739216977869924265553251726723885239197133714342706411802711240753852546906971290605256807534708044537062572459573309851561415752150248618687388197493139646834279290848454302329823396015138939811446822503825128315324015466445955706347508486940778784329935400371683836674217056165165127491948503778697533998461853271549772563893265715290305679109712761878244840310929726928960838792161289246437756909737640574540276039633839464070333846650265595304311890738050917383828424769154450813890516750647190307861206583574561929912456299302782710311931660115207575166460407711879170372480499215863743749954668382354677076118349466641313241908160395987792158471587754695750361843879203945063879837954455429644988971105096377697143889813152014714664891795922651442343676558895160482967600078978754098709306120199602048692423807432075114995721310951129916726550968434820081335565532471845597984772946266530026193133023744100655593075624864033778259623811274377074326032004682887774175750434576566469197649909663476723923263677212353758715364612296367032970039628719114691109031659014426077998456832108151014474950067859924167640480285618112199074059241521375022900418596679540804432756726929335202563904313962050009602920861121690817294767829302988206991200200911906434977551151837507602355643979172033794044084034696574526199507217436607592898838409968946764182768366092691991701991450898772811353828627366501260258289147310468898296224486609274396456465132837237924554947754579835688713963866274852109101474798916749947518693056714175242280251802997811743660674721813043560173063956871068417305437883694629054446475416925800688246753727425638775913184757636798260918171223888585221280815079052115161000607545279590445272104905789990649395021161710480173782318498188623009052486044618527116651564109520840705876648468235347031146980955131814314385104501603896433746057179305302151084655484398521953920603290761276984139453174386345407311787538833244604564521362946204125204720307974517316828842282389533950455636880348935739893601599257414165098816467808323326071204950023526687576563345932590302408537839523970356853682909707742724967229053900134025514414401882066872357545341090343443383924531567653863324573891131645233940950213973857359647335987547399090669871854976448344691960832618348540578511443985239297780986001241305322282360711786936149191121044463075507181937180569060115842865176706433588014171562422488326505072475611282834335607997956022095101805125838704830032055989829236264836369712683220743850443190001452750671549229163333283410225827461311639625604972173760530429853880786649633353595591226730170622648956917929728579790720545596706246049439554939885447900607232126284474514390731084233827883381960821763819933086717401521795113313620865978625614810232521739581174599178984173901900495267217334882968654976081089341627997937383949527789241072512820259454947657582135384969634857120935373595100291998559871054071537669639518773418252321444957552071118327313420434042829941958504709467344011838472546321445412006370847209255507691937273686721337010455621898017493984842316123302527378576687234465216160490590186287149739025281561256961584343002774820257010581359322593107307154931102518711305395273745908804208817212861734847132685634312453113555774799952791068506030106723662619237209016702985238132790782407524067671396204794579482185202836025094785387826136724630488453245341829040528446151838419763134284510238567295506403888405415320877516102458478912215203584912157767701494175671438016126843907330054379074873368821056402386405757019048595264683953051146670968105153878807223250697098086331617443642476658316406830543119513650905696755484883982579568499647272681409398984190646614325651314745096566554733447687574358753035754975565912868376255136595306666973559033514682482476480713902846381905402236407148191530452222733274745924596396897737426847122241329244693777191670214729487803120495687554925892493295480721880320917735505402717344021953641414745296394714420946269221501844887659092496047641349044476488931002787569154511171489437012674369940963114164805223676868402462577774693062149331868058549306995165693826691739450009801040602058221922127021018705182417877747922356241356057382672649954391917320912867041611235001661298654390312410767026752187477909019765325584839574694435020334223427421353075647355437802429282268664567712008374410187903893908550139064809185442593404914706292018370306109313897601768876150527668569896605828987208792638280458495039593819400944538745569752982524488959655026188555301673931879693438840676492742867844752601640082930047875933113480565704288155845821195073602576398770356719408872633139232440887630808723933594611783428235398621128646740054154731765980355588575586753045513173076629156050670796667555132543222963387569300347958920251254121609230115895909627698437079373082542485036071136616887993110303885303583388194601591618991576986950210328983949298348600398346844086809398205443816191521471157371082332199963197534223684938615244704173297270098850323861973215143200771530791624085998258630382107771290508916643281521880640546200242814881002992320163238735850565307808285793736240466723143153475687011008054917464346516142620884979060755198632459308153707708279107181419531131390694877585537843307338789538070398485441908923218994668472409550835638464437821721852505381417227646916317163947752485013778477493873618961859937428319893074731556028931749625299192614389057811917216243170864929850162045628082077819347776913178800362997781167633980051124439877284434374918871339884700672259637906605465239471227791859526845622928292444483991689610990459036669897031402719833881717438878197004911809429396790553199023062463629804152639337173869537167069605426477681801643267091125174017835047555029367539092472690356693141009011342883376569147467582916067025713443851737493000125514750153863981937413114729073518278247955238287248377356588139322177831137883127762433370186089307087008896269048193048115002930833910613608655450520103603645313313058647465276624209538287731201008713268567739819888848676079406312426061682106245439462995950477061736945851268298033538287693946697324800416169552994170521815226870593440115376277161748747901301121690069798793238241077995626657463891366182124641868159373395502554789743696626405429158425495117157294842666833006075365608400575473745307297883178426827426832275872890083801836915292495693176587626795780686404416608071843380133529993748103304854463015753107682900947457793230216428800406837628445181801658480666725312585156603300553618725424174802450306037304286764505247350715096878328940219945458447418124974491265751038862504815675352980402681476923710254389518716300294594008105759067867701390676956367756440352976288804719846670333515722016876796319090674602965998738624731839579595368373538572671612760878458707653635579540367856358819715232413544634885532479112560166330633905905162220104499719565902018839454755695784248123449895248921746910394311947157831125444119159729922523730171267289107481059417162577727075023367895325168320194908928203348571152868418447035789799442071057807323532116295879780487367751789754368435639762677763088656823693967306485718554349802124768027941622969612480255146514648118328887538152930535232555460356844465219433259566517424165866646652828209195032166626956700996476293759757272465100641466585256150279919610710358158651574338081036700757260236001799020442462727268297021171267620722307161379547431924514249373265330487390831135345418743966633713417504115697849530836111307424716306104363587693528167295832094739438828073230318557976433898936325878451875230236118096537931175180785970287567477438311910986919763884058614217774186114667393517301247523103233222192257567211553478732757051478935333617221192583677565681300695305981322730389399292612075289703477099555771120252912610806936554412322223030923826404549653700540235543642556825868568609821824900979239964368000644873400416645078985125438429061767901633076846589720416011693179607791306576445607523725425554154963969993357341489094932085035919795888926811802022676119253153258728303509849405680082920193436112089466142826091914582699291320868541832332157755093440607324857080450057953753028721988005747891265010056590728437837999700865743790637480377179467961995563909821438630443350622729824179225439850017569459581990688970480845437059549441659622948603503632116531706376594847091788016233831849390957105837848102033858293631412275563468613345528194062278071267175199178291192729690501982355644914023849556546062223510700985531742955610758610544010078795397234624949900807397550323972121686147196956214203442417521026051981723193454769752626978523017624081978682221725800887942996155629448671773455759889277102185261432930644819528760942236595502636219864013402296323921263854888220887527676911983291880647089621755283261993282493379305429523603359476159724974696858176378302642010374772114246452500360920119503720203782982378967445265504759776652772261143459480871954316473524738264442889072143355694952420394050987670783046788288409298896903942187193526414957131541418826858221169166269195597750159474755416450866451532119589667464233704798077626564574804446343389306477680504497401016116776736971733615218888329563188535834458914306656881073714490743046314456102543137783197607375319523271946354828212194446822896708782184782653510084301587336519106472828997708424095698843721973655591955270745384491371661063753229774293318693792827818281265369402544471180398650982272485663653860193831886244297647839619646848482348276519739561234917324412966965651204174044081075705698867079473815429241924710599489794477874949574925049193602973176016692605437454477265577722752038618463962899081028249628046153147846732375649019822003416562505609106528162831589780050753536286137755552182358453330564503534036516344241372793192199875578021218494071554196431121023390738404832584453750293465890533662760381018319764620469858786779627010913893196697410145226685155158045685085105691285058412265257993982058368941124125836619285256768662750609319491525092644274397641240941190800250498281542864793565173268582347932204317360369578201287123611160939755947771664248207789327494596144030113345079710196932995043050908927101769187578690905461954193535508791757491032845419267713254557493354024189281658092257865488652629222029744846700015176029859387141275924209094083214970417160241738974034985253339543962169233690135844641574096076130528818230047401704994152100485571147031216200071980797182692467723046359845148683405405797632273944185309928941790451766287148520431309253984405514754951471652463292590485298849945947036949479916577356617730965449529488297754115756052597745682451492271963251090348585407282305398841456579887198404379292286112594604209446182958591103779341027340046908531616803576824056155929432993302254501334439210524246010510236854783497085183730670550355864055289137092234488018645371172187621271162268935303398842631813349698210501407891018693881760947466703796685881328695270455502649183033892098040058905906486331722667709597391042715955278168552876660252989305820920929727428288331360107457654637694996913609448839593137301076788220642410799848277616519695698581016067846898659280153593674553817552792728695707600633500249123922744425929456118439931406989515249024801896949394485341211053803338029750889191141085494274983954543151709564165105572483040098408699049072468493315856212232909367331399748839814995988167444066200387912776763550715896257849878737154591675395802478957425482633897407984009011687107176305368351347756296438316614922388766225111931487921378130100572977898297570946887011832664787641464892022155791451293240652240353486546426161127798646296475771519257101394503087349991231179567953362513496995268845132648795227402053365663966952736690498482207540058083840767112511685925066533317082411866150732880517156512431217400761626628298843510827784577872802503742836585813037875857306928084956913691142187123484436706598104624716803007634413332536193690231832920275673857760717780848130877776120963296618132666472291425702033982124971477771307837822082151373319888872504744930448102382203220458406382789445212201771372873004271929158147698673690695558806417510153760425314046254366360098333198012345231463448059633195910808145054638140270667947293801263110333550313941323472085076967283954960647205303558417824381965569613465746530703915466739048717452636545084294435844530960689301170977913823020147127072351294425498860507377066986684027289084397734279301040016962395683171270595091992045170138654773917011858954271632550496489985091237090455718482854296841906325689021831028404694303649375858892070419433019080652359156889309403604596365398887656027177018128455887776107487092539770437694202607748826020457524109966308808759832263291950085135514800780678062495627276859944781585011796776430273552229668207872174198242328673330155766953348151907512254733521308287112648480636699027669076377778412629658305949736456655051521838130468389217051280905895087518090140062735266590599728227298182041159709173584524233458471654500112773845560846693061722770720128020969613707197235138297277112475232743631390376235479717341243766962792725240526277930060133482933006632706716857902054479598435609483051208473615322736528589650992972841381555440383602972779629034564875414005674357041437835710228232724405151148816486862040045269811042805100475017397636661119788753900230796918081082026488530634387671825384524809256573359761536807697278468602769825213866749571979437661196320475364567935157049783896591100305243712705412827197190226395736569548773708889208153276599663968480967470323242283966257705621947145608762610146774874130872348795273712590078414295663405595586690862429161882495261392464744345155294896972693422841785949612210457827731946420706666519130656627079130544410270183581133703996095885203658179971954747710164922285413419832314324514418436392038895207276219143712283639773129361945820868895859806541981817196716881958098135553228730751142563309804125393210840866464566513980894571497793815804652833778257473732735151082099296910107855357189448244243632856128416990794238879825071004493646670878378237957586003849504392789531461886508971311885017869523966929737160444000914058842704129734073614091206553119851031410769520646100141410580530714660996165790773827873781804171606357511028382392040272800386561866608486826283397795670463695453246423627589280835989943096141726102365553845626011299662204898578633207894894177061986544034310441463183851985406674403276572484313420175077176389833497305575982078706027867389808422622580936389007224254708689503113321031996443430976288228759736667440864694645238969378445909849950442557523260627778708712429861439344264827874931437225563360115531738542877142788582589975839377221717787703288798529524215448909309953991251962342508287212168547967509937293705526104559910990880579341094914361634830853923149879886858072030975596065082106357526437364928205883255511386509317047335921371486181455791688629610083257039781075491760380676645700208136796382895885707410187352654648451281149891579047800433558664829336112750708957303013888001536534266293518871469225710992435714684809329234568531781087571275154851256906016794960766830867100244305386552141044344719346267284930565193961602254056986797493932325183125889029297190378036007274253457368877105298601909233918059926560250726848022648483930149960359305410409858706130043264093152650251289712018076826930079196415259436850064954602502781961992825475046318893448069447412924815397137400867528023137279118357119965864128429162202004162266961108364888224025531040617884815219270350007173736455044226002489974952181590898872829610315064047788193876495922284155104701985576645256862049107517663394112205102827910522266362239247171614613131232506143436269697384002335333613190504394886623675923516167215220377838916349342516396829598400523823997008402774573022773289272114486368580792466406042222155679700414002994874022898052489763360621647578476945191005107436751916710248344518207413050748522895483211602921357226845553432155737231844690905163795626474935267706504857538099674197998028675693807198738235075342949793561089619233931543973739964610800158283131017532920616729164870441308298849978958768096159466254749175440315885419620045419963353788372257696134288402453319943225709397801000324618992528495516971139456615468320932631236448806269208655020305972628663804452199864351850078080578534212310556716240825978642884002183355401143459768276913210403678270256868229154588027187861887944710738727551473286995977396480455645949158373381496341161485087655128919246752817177771010106416127870749918341663807786093361648383357485151311769396092067923060400534004613173029828019920763755923796932827735659612840207879642946921446045098381054643124121401665539010542411354484009137681703295610028515037610144161392813483816723467471403812195163615593497011126631847696837211802539033138872957923883647893084875824657258381651244048137374864969927814369162848218476728165068366265401112886078182941479408744979071336998717718509257203724879238962527671015654642623379428253902751222260760817304241739398292209164134748641801852338960326747729486469342174960295860758280939229783121556184732454395752003334654996779666232303479871868943680735105512275335949855858259020405199703384721973392566300218852985544628099981214707059878089089307130372306076448726780076425016105510763096129747858855762638482806761449882236214186814087812920427607841077120143392294174816762552190102040551333987114495379146297715380741410761621913310542814946266868768353084998146868369134979620303600220941112333862886596897799629675814540989034293690031026346031204129291963631579897701383195805336872140844569162733740158588277911035712432584187245210031922105202703454042713715875683169055536803240606388775617500036993565222560856596227396490808618346942399604083113681599880157004165983570104774413630521748178754003593505390569319038955961852996340230236534382696559522169242316141456377547195832097306175356184268681424915642947578448783152625975784878051365966782617907310456790872215612081708493060775447292424427937498116432101519584686976028376904858345592683787886732993260299179518185400214642616638313440984908517879316023420712050907706760088647663690284613751326022393968319545051045400483620432518011930155016771061934210367093577090398500406778901120575864477550076090594406470445236174872849042076659452945367819163618419906356359484951824486124487267466847858182192184030991888301166873777551859741805120414723212385989152407928386672604347683837708876231165963957397378110311067837128454714242130559482046821331190047573542273994332582817832477016211465628097257480970433554515165637897578891739792669981015592357487405793618072669076413520032549860344047559864029739372663997308859383219572378892278647310628918831095714451285446348774435325398974551219269310727914515778615610783081485099685044741839721596108788386049429282485096859748749306809757969321973047111858396878450099675443371065424544771978823368292232870424141310769156157369638304980384816391510322838455484716716009449425738358327315810624924331265131097384443098441112254197174021846417553706754869288112815486973362892179453261908547797252583710803483117210363148660283370875557606791516686296574273107896235322872495548921058076376335608425148200606315174852930096050021393921700460376263102778900822474688817592260722078317012550480704631620325633010149592180756162591066475317918511179545284236401640374871537873316958871937612681423469513051995844150994347058148482103924512568624179533167824594266312219562162235809947663689850298381451120811536385880461402272778537306183049820716616725046554347080804349200973357242713300560426444294710396686604076550519608716154132758937883126054479214318850023578760428413227475943977083235136133673806432760077212679589498816464615931689598221414288970138878593311685347015030957010647795706384565292168875718456507595357739860115870574989176401538682374318400686588442503360337413935229307456882849872051955303709019489275671350985177344582846599759235770913541369566896001877634927775624564093306076215961872414666076247407858749873169457176020548127810040475691638327038290867789124791683193016942630592838901239011124246068100408565510852714893149690734195725956082390015633578276872170399499014588435547863637333052477568324294998907718966256151328734929915320440261983605110003446565830494204097702675932197422826468433519689955735290224714108077107632764457566923200538764749048407763890384177123235454577129073812949793788424093429755459074268418820713990420238420862454754546113660387623940834808722382949782060100469847876472147368048536990014846451859750400340513990520887961513330465190639917205739410712044149829967777115353495608420290359050882783633134350248768164259079052904476698937012134299897830459205679457883126625012060596144882842707828657621289450277407657049185960138732154764940848971826060659901777010501431982896779789007757962014882374758846758571501112260083536513705052954005463076965689130297794577888165111234443033981138571864112890866218190352931418838905116938805994451261661420759524101441090955698985230690146526714399154298011976664480499973029580789747372565135984708131150156242195003384277095477761187674139277103392663017809705585106929714179693511939521516852116540631530584878529927229853787831850602148185063640135877763798029291918512302667458571388696645568221827787397400584047309376891899759641486292072848236752926573040391574500688714625737017824298430923094089824367933000833372564207568565920019209528938914523141127124479022275405172632538968711657820837171008435311338106272035384645512472919790293310268303699879327032873077186812715578872580593477048835887241973015103891595783797847690457864517683248899779296087824374290508541420520385618767256864889555861609535211571351999876826079844043938944706118343584686017423517176765099408941050662619093608793460642935225691997862610647204212074457492753797501404198295837860436911935963860545973473879668825291713868349695089618882424934422693881152176077738475882202267642555576290649856646971970051192803387295705144169840232455134809779410720841740480881059510868622351523970058342282588164069989621497615715776005083037382581778033548426543524093366720259160151198462178748457626151021312706483677694636447867624183609574563319032608744959998177581904390997487552134400260311841493618991000624820581166759225714747494317847558634842383872288112853011924169922942358159265408187607794301284629373906086110710435847563777822617891002579489614811585651544183859569076665516088022528365689790529484774785226054229992853926039012406043954556726380510164559419296506933846971176584888367665210983479083377285585447106794710250266035183050669780746080474008672412519804363600998529053872188843969905339396526162737108823766717160999654777367416554215280339682338803923330733615593015979029602055267496418592753626931990872938280608741528959529090724878959126347007690298470378439817457186694203423580481819999564837451934052503527369121790495672579876595925743042564095413021727927018234530892112932765238590363799222290687133370456453001816512252403041443325862863894318954262496905555574397100155748244819990727378121813504836701956024268496702174622185161770603161257985505249297892870957174754094117733409564785660081964867890770368689656476908552092989499541020912973745749858835295783833247632401726577253885352132510579154668675578859331620746503306184477271485427417042608301194508616856404875152997602699567158908825346169562121960633365143827662168403111172636462912943931932212027211380492708990509276209595718705487107354134353878053187462676898295151086884916805245807720398732913827249514617702791803707862520334397425489667818818981271870643654998433402016393766667513788912152107528822839261220396904635303859053204012543810468748543759113509003401075389387061945339075295095325260502197992375791212916438853792355359463789371990704186662366884936840785212062621806470829831862302931934838274099828661264708609646486316003060436918731047785707743330876014112733719220291314822572413007261834860368820386908796970250713785903547121923145279174962904354717241264867211180975966952297073938918283189496707341522810400348072156462440239273949470087466060542915015575282526917095009042899210151991282623535816432148076458515990648134287538551123052813428759945676978010552645028992005651213581089120727004157642291709984835044460630685950478019114927981028302404613555353149087566131535606457962919226061029841106533543817270900720817655254565704643836746199319095144002311710346101514503798155180563413535673477167986003065483362821341297412193701699844702906232194742462967830573607523290035682555908457902344189559694872741915869280160965530693722610583555608077735384981421297730405646389706670457774765268740407498839576385523291485958629667847551117672287526678892357437007105253024821948047904641417834709676496953031564561976984129691330531330566998054138363932190169778211353498977412228257587553408843780141006250641302950129533396311354753835570581715188333329396077565397277804545486743447390585802196386558804119146877762074462384932171681740102866612216395745599983031215808853323470143054236134454976326926826459848636781602043671199690123566567971200506695079384236341227161412324997507614083040253938280755038779353515072258087300039278275659805239743203814288478861487530117555312445860882842998186763386547816737185488806824221070516444262739486688295930562371740528906459495717368271236813274318123958956058463920729356847805441007103999659072914573393679682516458272891335333325502759231693120014284743085095701440955575581363368543351237963781561984553227947657514360635180999337210313101204853383114620460955121734625901594950368077062905955932919422392324605410768633410890346377067914790604691033522878137502333821823903108509169503373161796620974138084811403001456125974908617518912823116658408125877280167974154266960459098163696065155218468367581195398253536379208874891069350500197735605517583086563111164936190387273467346853172541732180252998615104741366666347970952921484722930889852368321147065046329717297043149455439058500671523626978979872915433885160672651724906286024817343195033667288374347960997146753613424601801805846146687264259750765028428117054689893357602107111403240102911816421433205778911998533270387857312984248108747137084879155587295863579200152821976845631843525871563045046556422335033795851990218530543130497063952149541003576020219372906590701577017422771831300446883165031278336515034140777468714961545740376915956567199251754580321096853369438003469879565971994249214116225038435796049115408892636018711002602303697624359011407374282739524060643798482650160089600651642046018279261982079772889455913066499137256415457091128211710101692066013652209038065277619053457744429393969467750939557166580624861571256815554525332831958969522757380847193665751019127341344228427798777980185097952173990469114061886343261426426020828351560247740211660420256070442898490113983995110642496055675878702480453764000241205638338598988637450254147714359147060581807517013658638190244445897533530955655686183344826707565424569535146617828353067048148262775147387272366618414050645684042850795070934389637891288228860494368156502008468883298171628445844421651556251592986220647977547971646760969504917397292392434444197679122232185957369968551753975377927042286064952954592452853040305057534828842092340540547173939519209699459644429217078938344651233782271270844913236265739055194558631368920824818873142472612186604947418757035087594394704507858348339013126668833748658475569769201021131798087310129931899050612555326977411132852558714729519331688368982786714298354802866432930362587232788019552428009318909487597584784151008186438764582268384872464643357977748130870999896574788979091826510595464287419054076234259125622951918920926589424415828978648389014731318620665054692371807892916456829679100163105105826325319965153851440723330461705642156703977765419723505698545768169423033023556082731905830410841620965631852127848926484118763661892230727829806743856617657257298263892977251300852547933964276985465389491450346095513307783538184228525366661441785772165105790691424033451270712099070365378814432570704112921814275446160440205277481255252235567438667375564556894784353385915868724287906545836684387310005670147789200181985146236632207899056193151630106943157385417814631130062805825022765568326879874109264361182147694469910812129369870613475979877411484794316621126695692225137525953744696820736880961951856349354494983027975858077690043779804956983899747235448200424498926914700088509737358448180286065840405452093807344704199119364773193308855305949963483739120668896925145485627124050660018271689099581485402330349044752232852173399286704988583150518771048832566024136706262117421169387534070848079730868859914801709449149271435424308323107059377702124127692888911155613362940854654727406860030079974727913340530884759290235096910096846642833847968126509529690791975606589690554367595457454262759321892605269866258354952609278990686310351897850513533826986584757743995654571586987272218332244757939706185270961653302101029994557190363812508882261290302257827947069178533605553125801181926575985769789678866510014856958809033186121775285581255657217127331358522304983836213747859909803056019695005110347999154474658430184157497393985322363946850523351462090020128433472443743036512460739517831556892748449418915111527974046783458438035973246633508540850372428468191898186179413638362251371229194364812486462947340194788830091865390954750387403923478378685300754971086544335242463878704157023034294377340327737115768641322933517730767311376827678277813392079687338101165876394700694241299665880808843519760552066876464351685901949106763629984215762858992413482162980874368140881204647721878263840168249891838503799926157072729943959503023259356592551935148604332694808659807393201436110959290000216035045217616791666177667695101944850553337379320008648179430723795589554621801670226450812594100508692367109780540637428996331395298486360178362326259826292496873415584143678996039249947039494645471421713070553646008537153298019552911892187971533929546773250455861809444717275273594401246041431546821942682532276064918844167813961149936099001363568548718861378130344079705720359183977999358054384851155003956580969285386450156046327021294609240085798852532074280401972491985133491738912079671572712159980695311620819021330923335967458816197447516555933194299013541838655894801091962818735163085072297458855822285766614413400734538918907799519189655242517150239572910977919827324309911383268635090899984039021415015691915703771400199857814679332403744253759886638345219116814481731000495133563278723222269689281680619867634008243316184055382493171579186126185975667045838196088558144571694477005585833084938789579104915856378965328420018971003927208465979061690674773864156121418162230840735226954421633120208541309751582763252364059092847480681050605984626790440297889471584287350047715588707089351385356623560197258740730125051523621441580804882731139686591881249913300968238775087628550919191210054792043197095467745820325078550778695274658043058900413897539082569662687091311878743358472144166404024017710010943049850654627263774016721482421963766393574126881427472288955250958838919651206021333232215473987987079537792227379414369428717138208963694830370749619028369068416123097708488636892518050220434782966294819914698885967194924755335512220401629787023291458666317090059369146483078750051164278763179561168577413373680504941368098391623684175680750305486529503407848790955358216815752877522554763027407676808034018821969399535206104498861925295158716849881129179613153090917230173226360620763282139801810181309018609700099486582996909088315257776610355417728370422268943417741849147823990329102961192107646726118474840917577286818230812139154046253108674089957234594686362050816462271556491225053942746611587006372366474428186108425902797859760498558130181581453466871428617372744930573163615949108983505255127485137378219325599050865664893324700296172643089039261761726416723628929962328089365567718287172948280809955761436991131232604197835225205620761104412053782641477303159474049319403164136992233086013526851816995001594590683826191406070859272905720670996065890964280656743896593259618170439273490937678754811963311322329054080117855199744240849994855946377160928290031818747459271625811047260769314154463284867311380707958598719508363592797302236139539049408159558234693956983158665432666495484383276076113424756839397511783370597372327162584395985358837706985899146730504522782942254077264931957658375136282785112262232655840698102759723592020111387049824612333122109499806072049932943951252125252940368685229049517558495431090676344537318512803695940002934975551056499083817562790738063689296797027050029116920591266127951674499889976973451801913360860903334226432319104706870243428287451196182220489918896914490058126412803191610295152856446002959281106450865990735250180770777754147172720895562321987375251388393187147215141675056149378857151577484624833491442661366970918026048668916577019452276904117125099618358983504116705624586043820202001809758399433208010350524277333163998546160230377029994163817348546319246978954666374204774286803174167922768503354814480968747988654243829234165926227838678942692984157086358201861341519585350620514773957839286653977029203491479198808183234015452308121218055818689880682864139121868429422629911352523092083618566369017460645974267750316036399769145298332526831747354792426666577466977657832779461220910519981941145558955769315687207469497943474437603952575983050305857712702477003461882448802985455380851519447665014547858086533093786731986680505987359071710546863831020826680666856386282326817613587661504830352517804905717042578168679745380567155697494732457298186424883515842239806099827280257355389354549951812955264733229097365266576906708907872799132466073042301103022297907602273080593010121309881313522179366828066168614695603365736539275921693745427975677422398468839567497546826789207694106008976442534355982328550234469530173217637771780391893380810674744601332304652602972442200815230936093099716899881914749145474638738167317821175314577765793155573051070393645850592885505069860316546092566006832592860303135610438649667146337393500412230034717700663822180859529082982971958063910696084008633753029607766904219645461255378973230695110397331644948533612056557449492562944588721591769885237340233249675141926789464824914083952232588501866733083708632752686589231337860617591630637259389975165392149044522973333890201388708622367260709242654926100455508075026979589371575562491625262082745527686091774539513907358366996749389756871424385523517074758274910501292076833816565051936815444287406028929033142832330807743605281810506589835703175420670864598893151555007479164430748824299373199024892708450944179653360158203751145553318256737219464354301185458254550923532436603855223441559969979638672733092575298062066500044566399873758268330332713879986899134455594868111683160404229440267110541637062448759176129827254991433100050048583852685328191859523557266849379933441291985741257065945975628066207058165604918796711761537116420389484870603567195086302116357858398519565403984214384189586566115041777321885797963634935131507253721899661144622545072413117801285035607621727630547951275352512917734605289884000282179440998482518352806449211373223971932452925424490429196577054853288664626315339998861789083897602471924116437454314158901299585476133217947373097557634275214576582080455696377743531536042490767573060428335682584701058888530557594301943754362966274589162213449432527065342581490984043484922011345787578337193719290384155691881208616413126112012443758007278484745589312125756990682518280793315971866482703164821605647808071999891446811165602565847190896984975794482973151456404534862425724972261596292214499105049514155365942754444819246318541051986024843050515502138184398570447373026332123363824257018877813568971177054395040730619972987993292953852094306087930890798080928059098693926451644122653308941408230902522215112305111561215616267080236647877384425821915544321627934844428884730752415604617185773241288164122321166647434772357310213045787106454166373989474605348019837715128717118697904154600905904061675906082425873538718322402783433488074009930122087295160296114406191615644715529256536878624506629324501769207903870696214441935287493063116881389928750613769796734068841430292128136779106406232498605443534244313896484566856354521447614387594815043954737818506402033263247226992545233928000006347858553154080567135692111082193443756153323660983177632456416874601766461108477247103896314507913938248684011177413454234319086436557327206325699054118969360806798847882003834481399182775862331687056029518598231052168520467041508059313906444317891762539899694779655623375606117002029928891238433214552349793180720213302040010213493565033755513953123576960759723508864798865061014359550483726979686195663996394257655045902869346126610558151860389363023555352195024142988078149470010158628914895522412384593886083456239266148147046873094158696374543336058612382445950322839737544831425165990684768067036259924428586598525404493379779031257376711917911367551637308888815913305788447980437590165430924278428233963661006261263120778921815516735851015163846833780185791716091025873980363699753377721617704983066084302616352507879815573885356564892148879537124630725435302103546158154051756718640228696126267138973298351113328183275021293428590884550022029837670699156639700467913708005496508556679974136292519275076000037273827829637712756663495596888768972912312673928476259201833866051508115920756174491531408208665094436856640402567648634213738575928839787808754613199971090184371975497302557093956241715779758825810049287078720112003365676801992997132667329155563450541873467025112509176959189746573298370829218364467320464298150078979361579439431489718100064131243208207164164199838795581490570294207891321490282258804042740397472322078996017843750838513892033703132724522099218690603595380150190983296826762297222002914132650085673276045087793847780714736171236781698595294533370715170656425100394033312271667832296682074139295482611033338462202200014212992246927658058784939744873868138631953227945921198074639002437322520837864202863336342069377073531775790680525552009671025523701480070251780322679128595717422865539812390644647778911742227568890289396448270356617729390615524243015757025906404565410555603595542458212299213158132783798986499903427755877953500399922848318775190825667467163341191856424546712644989865692950850395313976605396223298773992431195356065741572059348420046301100891021435928140634671196912990341268487225597855630230522510260650825125167602105825347250116786263233225376339169603605579024316862159029470333455320778788162322984456217939638587926255735191329144389275000986507668298301571706555143040929474310644950116742885556834420838647693749608645642605183775158459031645244501595973031848682312228623891782474068907737079338863666365206085261765453254914488087026097751754259916360930617219190950329292644069540363017808896821129012016038035276146078391865298048283644838208784623601748698105708222140758334667341858181066919293020497895700992513869622613839979424341223172281988951151997836430211984150050101126388421396163712674162191516840190413390743803599478151325320400060271947097461288126847138451051025854235354000295858213118063121951225897711894062105242583684699607094298317117225222511206413702658554958286556446116110546584357716894268379826122552532442643218261278967046801634968652439628913147576482196161013825600343939622843522788648114752342121463268088724234793710432657194682759344930419944740825230358779128734188482974051894863012217845293366990158264039956289276602178173937002584458044772076477493644956766149039940534630903928840202920106090151495808887836117539550078829720134311068779060613473085253335798514862303864827474653369698243350584476348368968965131165604595028321801845361838418729270866530144942390841235630367682769909435054865375064807173782966614237768138941462332491359348879265554814413852199066017086093587536678919702741478376200178662630564909603945697527432666654225103553924062275938163682625930007453294489397590588762920133741441108552130578709061416421393489913241088465408471957471549346225308611191345834626484229380201068574993535530354235002145234001953618052136774100889039431517714506547096975794173120358164236562366849217952513357630127530500221203120369104198619928674317576396647785321726627333346636623025983253200821725757628074171646827366676541465483608365158836439928832829817938955342868512338704991649842989211242322567562142278681919897872213830537478667235956540593769112444882703512946984237055806944440772954187344469861951589591412702213983136349659394418815777136925565268448523136702151558451638002026096853851182332793419895817267494715261289290203109985602591900277108448508959865732092332144011638548786663827176444479857559053711687907170166289351142161666920436410350734339140873170157485891683129853239009202716478307023860023973509705902967072245053251898612111054938226162628344027823205476048443517889609796707258018475512594819329378005508491545820317038188190851951304225845747833329592881981911842269723140753229960140699990047446159200935347508040581782578006419968545202202756930180577150970984941983161921879251271657516103236980749244876752037085233258802572485635569337946046627864021920063679468570505990722735339606661264621210796180877903050531477933461049964328471809262195363489873040214221660726241688257111196266659722045908885924117997552004522008445947913446817383822869449269205346805019942177759368086178417935638819640346685682192808869059160573726325360736503968794713986576528028428685935107883761184845484875764619157709422472606295338339466752996888306340010374008899377058055514197198454690383618523003663588233663137049038846174209407405817510383638171674863900811406506146331229449676723898899596510056853240994394744249425110078014811091215545086006754189623527929390734289144545634673141478404318255240214713972371427354889269282177015525157874646726382119207471862382010951212631255875706848310767700871418630663942956811590685718115061078623243274438984802474367578717988565903260581200206320473751252476259266349853046198909135242079432132851052676183105130434785360086337280994794224648016195781253001893329889323909922018475610562814462968567697214303023937725030906793487488594681901506564292062185823617535845095494311278632726478847594090955744684076486109325839300463017166160371872403122131342056668102550092449211770378183940591130949515993095719140536508596026976871224870359179461591290662808893106536657332573899232061766346574082755110942294708782953866506664282722106318397367311111475028533421081515482082411250112808646859451967424607992888926854953083875715416404099202895562462614047558415582332176735758604245810195772949685065957537217609725484708784279691004311767356266111708973232981174315437418324483756550747237645123857604818826927641544660238157695959899144815423615658470771344222278041034021892418001259284865076184084684607855186687672039679932855762624304987628381677677968760380337920064892605341875995535809675523733782741702578982770899396952222681823921765398837466542966513025113094414100604025843449918643217390983643896965268880737636597421334333162262619587647364170101460838908280308349264268962730476920541566339240573734393387343188285312512936309234451241574935108021244445716203487668467866747175549621413393909431627703072673672547472859247921879582091647870397790824918505962842986604650012409918607101519168809942879487002682151873712534083268144348400207514797259782623099220696925874033442989483531454888466146478368275332056181942402523348902813434532009887956645153328284908301808737650816316742360261875917482472182055850886447210476179035969363089630446402211618448431510507588441071699902314070128812562472335609033623867424413470784619872538895639635681233655941289333829431240534975394599849644040334599891600979472617901119308745808376826221205719991539267994996568454037804216243742274812906068119570240417081217718006311455314471855766158006431180850480823330061198737060667316084383633927241533381523067078527879572599236056319713316466015142668124268042146952420559630565970052618233647827676164014291545182051089885416379799638013555356426285494320563908921909515753753846560883744216517920857654899766941577433949530309668999634102516117832320530229189900402165657207204870831782362655848657279368713951892662856692018162296534772927236760666410415181025895460154192008872709403904366985508779695132733988669449409636247767085066788134841040151354325165271416717286889526176876471925369300480258320923277684837985818924446861771383763103987134787983131475898793603323744824333814361676659328591562441279534147010528723525623403524521839021884102380323069878294968880550837999938095484275208721294366718933040988475035684127771299670596374688498821366402061083060625965190832355039161825392024599121251394722973682434270869590083595559324809110129610081410919643680117126410938770444213925273787422351226185422190425520869756045394119299372134747767274708980898110342116829779402460063265090992758999527708198226090759331782953379015622944710627705336001290192604771362600565662631662252076813008495075593822704131645579026658221942218646372016193024619567957366397099913861753427842373467857490366613578589994501647175093474484149591860947750934198390161791169233733070879736116690340081977156247829498881806069084682004650996481648267230077274413628548018521590123113313077659692752571064492182613582034311849435141511305976682232347952857436830168676933791925876999859918495405631391685490790050180387297072236425397804372093987739471618663222326302261487495907736619723929107495502578561614982217172278260682054915673943210794052439261349917212464849248619720359922105432113921872435483755692219101905195136131628220979845347187302001504782072587696057197756051626937573705418255591694385674928814628740486343143281134798695844142317532980496992312596887696648396561502543611265165206618632919527011704549491641266122364137972605135334520986462285260300410299374688482414266106448017429515949143302877579731834674041245706897289508826916414039684799602908133013996920966183114095058584180948594264943888334584551850127554826660734874194435190477605252442083038960722259035183277561149919637294904632740098185549557593893520378192216615321562558325910327356342342176786872947474098961298081085542137353394207283505777942384037724106756958253411694884578340314032387671431148462217612488388046531403889488692376852293325517009944246526505098276823393778004540071092584405368578207344156353653438281266519465654681362723778693294524846775216076177996850886990351518218858327338516664112479934586766874808821180558820617257850349736928958492841286079212873223183104978181544814007060048360023753915279327643957992034769865952705185697001923290309669552968572714785085282229076936014760377001769082849338254766453313683855029706209807235215988075970653222055655427232622138226561190019149091757728343948607720709479507751582016806216963163525182088991343572586665060980508336829877651708521329312326183631455779906301043038612861351093464041620164197916418477605402811412228045732775731614932659086196995771967476265576770461786355677999445084614670766962302806093400939218231984768175927515416440622126007958629342522006131273469507695800759019680344757999199686957008492454374668533350807048310726767212272390693008611298024272759105737328564558268891738518825188940549627514860903338189673159964309326991118583600248166862769136276235686622716127078662839343175061592220659039472285506775153317216022857240854207283662592119549376228792408406738448143090090512617323257375175939262696025015857132686511795126050457295275509050130896822569976744142782878021124043233375184080506477562705776434735927504503453315678541522624746401007854090426315177149137127289738284659551224203302395815056353948765026014140871265465932730218943503947624467359872110640454144773335974160579463410652253484626548320669040779195047934615053654771169669442498135659976422280352875403324544206398037378715729711657025763815842749349222941364104103875231344310941376288180729929747372339254380715765424781790977665432456000779403599260175636325920837445532814669699505519108096594304574526901141765433286851962227895516021508268605310561803483592898197186699169761587555318249427564549763102704014265628117623647079685254253951324575490870041912135962131024596552128784607028707386755767496235486410783865644791750671444672467235830580398399661385633987180992488418471716004595155885163313988036882067468408831212590344234960283812256984540916985570113977883957479715530897672127486197999190785364386052750864097059903022033078090445577704713809015922608722555833990928713569847517456063377930760980163931831188513075736295485777507075196167951803566357097379772973117864612404129910154674155550487129099049676844931799316975084958879039587424617447784678329853789458747658833593653924406976948022928192721951768524133928542169367317666277409190848547340268350182319853192835704161819686567130059374744863706970467948722884636332472491733450520720806589146358553416228430353565420869184283084813101455452732550348344153368567552033593884854427340891254517606768428027310798629849859788946369673977563803024973177045374539562995664770816365790724469035792567093712971448229160453001727991056080002727564711727799339061331187052612314530337893310098657279574491629053294958872048629605174632746146599834737807844262283475140063780005941011910989856957537348645957989928075615821030871116617517766871820168002320663474789938324637512392240319900966708747341097393993582892744177468012535012608552665818664887456860581538770450040981113086438574987699933619142787442767714950928126904910341609596085488085058936486688660103983573965524707683536727444804706685018397598492221875280425473641291928086701894727222452357090498330444750507721198499410196160472613324611032274210218545147172936725482660383541630519033871489022374134372833007911055583137984773127335888723156243447771852221046890681437822039586648583867688869023615438328325890963964790962799341965307230743407042949875065583800533736838867400638979954406927316485598760454754678234195558689882535493406055189685631406432122278883866730168960300184944729465498058517880692036723537232142743611690857025162202155458442669483496036163008659442828769977536262855454557234959424919967614703501839755812294620190417161105825916763702744158998877925546874050520770267008378844736483917275455775566607836923839213984717085352577520607818861827708882115832465790811085154591580345212017657515367373375389225729193222944972162464052795025619027420790789585744516829068650129478292820077704578087777765602086173773622874399745410136556023030495936043460011100941162902023833760654635963036323657915270962234312173824524997570419643875737658206086760509818419716233472237578013760299512725976345136826129654193265699690984474662713079101592318751670967363219416138046818093692277482418611932075283995487874535749631530923734607282876488534753918372463973067423392258185709068315120214777295060732970785682352765381514423735013973899732903678809738709287629464408892753142138148655649532081737505593362298201390864806905211365632670343430253030667309843872646626849923210087695382174418497127125876420927467360645531013896671027314216765132629550358025579230566209906014695755441753990495064200235111355734719419298974123348143070933597186274751219913219462827382490716177603328672207891741769109292965369932497893308812141625041678062994625447587189529479466984034798379176949403216489722810850602191327648156249751576956835598494943700663600356918721857757418876885466469963477128887737386606491193355140136544424920481942130830709122547572235025575734929036355233318834374593994923058335491011355963453197770926388723280697239430414413359198081346619039088364449995848423444902927643599921557671463631270588002621010083789889821620909420828138959456006022897111728134463756474792369173882343209147095399401545511919501709054039455381641383899237751730509139931989356613016470792856045848287035541463224586799865360492731407865333355232793656216749919261048328725170186140620186163720547123698362657158267016399861719185569557765680391731376486104371262619205325116850691234100617078120695079130680648791874301917657256622579481185365483224913156315757724525968522929699926936801029345310202270308550749731965753801663541506005867122392201324260704260996562000858943296980616648250417067990781829815061345694888636885267630148847716595550624618778924041640957344205119435739855967977997527001931656115646776628917355839311563710630749804311419745633550797812353041112073072590337217330811975590304221373369771047790944478481150090158506333517633209534843144003517105647250646732721043532950752102934231321728896230867322437646927435140513011049584078786272974287471789396920896160037293023932051133820040728871013767238522499809503160785326907286297550185974249547173017562523819590870351972480798840454135663722589326950770443078207277418675609404530228415858302105362373927167742205042790439068812169167910162269904502046675605028527403764137769739983408287050125938862312447929197113744409319754887456605017190529507948167346328819175547237916485475021576848089226060520700552769721065429589312943837345536215989648932113759413817249731961193178772889344839674705155218208134002264325823674952512988475483996334160403447458725782756453133489481911471741863647589607160645319801393351474689584512403849978414119342541174713022297959597073343144777605928051457617897436204062856953972422982903435646173620377899996844181315754834038828991412541934617148169462343171351098045094545687225902166566979189965077570541147053668108304819323811943630026770188327111710297119838753122093517133183441982387154321414675454829307408865727616226519277500811607884006204680863703904631842038921876324238406439077630159804380595227276656902170666092351817518093793378868529201175207179945232398748910813575124525475583687777318114700224463201614644430441492550079109463640374593347291109831190305918710122209453370661315823020630409046842397152558982344690339270583881157760039372589965269071989916485998687349572949651391592627142526978268657522469663445859687772549171646824229315052705394884506629448105214608241863397070360877181195186343699827028731631838775409122491787933220648617368129161098489280158065306904592663040906224275397152444005579770847433890178905191605746840130570177618899809839859721775282636818220657220083097802647316762719413490050195513222621630440876975668038816198735899249718253834242691494244233521305422904060338657415902430537507725259362986213076855298558209526630760336826016281525584023613929643078767581967929750733142680020134724412147603551072670887197151516432398885664310029214524788458632145096340981078215951092666751489500715710860615751190575389881996829160966162253398221290048739849376391394317558379702755921082703774472467493938213134118731004766428396808648717994674203171871971000371534940609776816807040649116278873877397905354064770644683910247771614543719215830998734259007632438154765967782228587089685078091168300797497024861626798435912514036846817840692936170947626936056137712193744314574623525252847694198611721467354248079642877946657834890644807359448862356341378565129884358208453323681688813941609735961226152339712390888538460562719573902402972148981851138738393709948509881739705904970875352428918622253598724903287759793769779397151046501517526325183837451254988523066095839607408983541035030710815297519477895678492792595979486455530677411720156447385443606765051144589239723876388170557111114377583024453316826052018789923386509187875376627958620076785938435779320185064225915191048192597987211331718325176134021945651753726537560320480123033120742438638365185579088401627822890798774192265520221279256779857817901825613354270015253259109803640545066278619751773841769720553115384283046133091366736895615392489344228046364776969882033936387932026468497413918696855499477439792826167847853878789906683963853174801234391162362783216129405438500208378340397077821653583774574271078339866367963358502207228761875728162882205462072001515206225966472289630407631986937565009237561201273901854237641380737651931134063048201787717709535427846293635026589687035985035977265884120118020203191841792253695604754641344591541849558542480686492200183311328555398965593055423462863617083352762344049190988648371960769514259973661846734636646698984858701321036719637409700169076381691793402996686060055051729790201137611850179903472092100763004223223191216357062165192439962434075800933947269334566381618811036948605550792094169220925384170812849093687977560546540278162811066666373776363350566398879842996996772267267022510948391260429262655777120571649475162562057706426360318626291842207224107850483209172561277991342767150857800915911359972197922891310612438299050536081915636352072174061216126800721582053847338402036157377032094236704596456258291831843166659811803622274571037977080587024964031330429949750985445325252772764418880751198360025751781875537991857696734654718537268120916778420914705134362657975664158589906978387052239946992266813530212214719785459117057558213844518842113838243609810210543356500963885558369929583199840177874268921629065747931962688545685027014513669606492772291705177404963651287724913709862342330528788035529575684171458707732450248155195067755955925199477906136020079461929303813106425177467947954598883205221315210337522888940003514998985772222221674345992701595718034870795924632136684875588061955009104945414900542877526781517689538987769847528853389877617658671901293335220225224350363480404402207452527187415024737192578441503458477239777389728875022464053009104673659242790392870108981437912463586764287493485979859670720324570517165118280865991150311499689452358801526803255275040558543240503243119456374824145605019234968418568957148733097715125423520089215544311300777583254627665568182535447895222501406090416305932758574906496496369529209095738446182054261076436534095278827980492948706750561562735879298656315256915384708685627469481339984009869164802381913752602031453054681620178060023579314364935755129632892225247098587964018578894397410415633970472700419682161709403775234823632536774641544871989080662052459138309829386876289682446462682707714006112529683749893639660187529190381863549431315126918526179502816130680330890848930983092448799634920070009187086114006171034465096320861058779032660774025162303830165729180127877558086347452053486560595004931060823389094297834675585989644172750170029804629541081469515104948552796560476945144129810573422140548552194228001211182808462623959331761533545861249882003963983224279931686619867045890436086823906225374026415816778741353805458772932859261450502697979774723166698299520423193255875316153644989425984865468975692958048873665061204286803007345785422259744778665149672195690900967425785033746584085988579285591198649535682240153398562428512084440513671099675126028523973981074795851400505082340485481013655721388596192742498027322660762951289139959287912513674871457493541222070336849445931458600652582924792197843963411974406255353509234750109815654294388337164152596698281849789494898986355293756428943512479708427366473179128953659146018448235167226171239641904434033601500652823005738780276084727992762477999991285668139700720961798245726959780959352432295630617903077974246172571911959157079035930867961594524944943290377865913461238462562499216944083608746998877397277534006775190185820380468738009635840737678247497979504166796077388677766637651216069169793507831462720671970960201623211582838010247735827135355348041116962367387713314596872378265805527971301977296871764669674259867429008598574511605967455200023625096414485357439243574138723904266171253356707870193385963106005580058490512792953141805597721808610162447663319672004559336898221643065116690045951505891108849746690247405330012473246561089457445520430322171055652307057185326934287958670127750811749695078065353805567058791577306962665386690044994523625325690233446339662607866405086576544965398368176668233261328811290136812826294698229177048697243847714300334499252918238149831252714510040512845071714122451248395961905037787135228683083490174676498949528914376267371184969222000511836389007249153801106460926969372394670230137885912970612991004174042363834186106006110983649715508737410134761360643048150206418318948417154852212757185511333848116565769614455621069594499873974358125705397517231618841724960286705573855595064931486131138144020009842598992269462856751517454355213440262713336026677934165650739757005215377284863204802721372929682615582169502293717477591607179862405041806269719046088008367018929598822714933769790460291326703123242685929710388535100781563734492816947072693156599153845754722416747571212656924798451752291449977477873515416621782635310611702107313958258215107289390867423909728243878219697714204861805240393297587378524194877320797253992429561199431558436793896694662537598862361953407026974695251954790342554564007933703886666052997627448943094666843072650387818194390459315401697509613879736188063206282100070554398518125554434132129720243271086772567286595641502111113506173803774257210441044146093130765012651009917087127505546916681613696088292497864223339654207725147057225423719485058227117122837317370967612381251452952206266225545464572202505525955422489536619758101113498188412088787219780155020756897818975605645883176802430730264837887936583228952579716364734325535084427187217560462905696785464012441701424352414973707931867744349796605969950865109670272196269566528299453729157430243063842006556063644765375353148483329562416473222232740973319579896012543827991346100467009303450817219401589326252178595829848400055318674811502821416065417805250150769105277838850829009545121931487761847993718986227660913236567365475264093665887822021973217482727145500845618873463780086791554645196278171983910768233904847198272572592638388375312485536983597745151893590226201622256174201619095483422628363093999966917578221359786243764979394235095295438163767528641209556467806320590489234600699309446477889143775720684679597272929587513208851734036974544874083585208450605710846213643403139710959833104586164925480781159780438872040808369535224384014549523084863245656674805352923336382319046845405716256853708640951751094176775924884397360563621979341225896317016990560418175999321867792354266911596359107675982973718225899972843198525835685886708089365365333620023514341189383468429049373419236032257936377585141150025267431803529809210294301883781631211826176909495305509624184775877206145385096227524659237939438404658734486182616735592582906539214005148038512016869484685099603746248768027003989232587354297309078792445348837851750830786623978824852729562975948087833290390440403895024506601075032094518614512116287603473028833135307313282949849159223610327400111131999734103834365958742337456006482197106715638587233460576330398125467006396966724751642706973836459577108296711025317367287980947092598772078530747959976544438322212383643045801535948757725184687227686496814850359080395485070949898720333799975678881905966735450376206287330168465203498988610352720213284064064031810493506230557340994053013683786620895011942628967588550693354918511702382963745974766183094695627585357609854094733111917799408292876141184587483612733549538421991584143022820650891950434608660870296684336413011974762297274208601423169388103261164848242664200161685357564485666354578259018329339121012217361923756189753473001732202970491780195110468077513663664103027951294712814813857307604080015993431543666730035860279418085697468048947915499393255253303607064976801083833842258349677775385991381819308255422993305192045685361464635010919835002706252905309860562360467009701727889185534648828336075939351974453707258279666495028483708785751882574067139267616055544951073431661886013887815805687034486566561077263613455930071230254074685872760382953119208881120137839305648830220431883237362008848017008241198238747050049128783047121200800689785867173901887951246397314839713532169539392079863167970231187922677267157343644520413033280834796674120282587719572016710197746009300692941469776128724780704010082711572024493044720469032185235129198965221017591779806345187977640090469806818216521423272720552490700307524338986616786346663468211781711795363775155685328517664251741701579525511999735145488006104453295826329035124077029876522229741402455543613717074816692933651514294905726056684867276702275299333703767361360484673959398737703810383240289234492515332778553795025402687756380221351694100626293215818995463292493252851204790835361754735491011514916270408712013527527238830622765361580752739411320895422330611259642547607001441543596708710603715786962948528022646046273650790410687988622971822154643630788160279294338231508709451657719033471785015840030994208585146906836117289688214648086937291613079819173203696008509567395711799591661160130945036628153933234759130022884185271076400598454549723868337988256796034867775202251732646706951587075927371953586285520615168662625849996421762661145436710615343364438028550960131138166915735175828417728285934565318001074448191940154324631618701363629363206073597437936125289521774357101182343739399696369321652584821008481613541723006909331312569795520041587656090159731564968121892449182473785737181614739347596350922104891268458349235340570262797053490027709365182468253403932205656373495460951447017956691070355891623778470310730688145998777252944875837669993291252508659868735663798693811983290749067536699357664308182299437553180407117925278605333868716985925088146291846581572219990540416923312360946035665721783238976711005151531076039020627929171895334060983940697995071818426314764385853388043162788823598759074616346422559250162083419831705043523252198115810865791661078491908419765201157905818278891089520897637834318534889859583260379084927623897856919421153873475214226947742830316441258525737049185007973180301764604323221108485413522046140590853498932511383266158150540906709923603290152186832776206684189791447547638677647498633294430280866623489844003264905779815192408314654371725918109381655288019342012280813189924385237689202844637427834052853070162308555208813460919285565339313708012322031300806232524535365861890552022107982193344624937361507080680627272777103249738765951012559800751426444559199462384001372618542473652068645426603347376984334226834767197406906503688183133356246738616146031785236451756227302423235262961963628535111837818213148398396995755172922191686994392735720123915170097053028806029584790847149899951855336538962351135589195640274808423079883940579803103542534085838090725292982238421967833484131957258794258058057120700711058071799075485290379274995316359314131642602901520395225519175630974917307440430808198656882347670028753647817455668183593302727840391043354274715876390365769433859077938432328886110041400824928163876640878628281953346702913258662207520557479175856213345609765810773507636910896911456750553678514840917678890199204352904851420907091559593235277280122189021385033114837176620140847734946964513116599309795669983223166056914003281594958638486139556849229656902598985834208820566532195886425319139463856703521293505116389211411941104277134461730776042792219477088739010843331433251174891379729455491872988802803249933895288879263442975481399413059357562138316451204745773986101731119843032959011893736374613807690833962364721064647889518765418406406064365213188253088833411949157625348218379971165931643805334932720364231739254324866630410245861599047457164141576977185464977958697246916788460435412176917855919111328734160979882531774530021836589944847118588178324745697632922404169521319158020867105770156485080960116545022068104305679109355858952280167890828754998729145796674610418306723052648430704021494605949167016203115314470665667776094831280430999593912031132127780078079880245001924685088567733387535451883563436628127065361724290065152588499859390039375924460311630694723124626739142742640715275960836456704122288611640777336654702972679669900460968695734055929592301784214399050830226274111073592983835140262766138892374978347230607746026826790826972797145717508465116216945389038153468883812652438381626283762704344357725318222138354098768259938732631048867401679272665708607242930502325594849960473947025646950006857343442047107217590804450354470139970368229739315460586827672434900061729941697161127492470942294354874662596517367078448328993131182886026490690369431703121571393435311157068197328435230080517360688785520602186739404325218166996548914986663460798756928639574778632636552201126620958526028164965718561766006768663077139700651821852928458054834597964355287819853041872722253184028846712645234607934293663503830683256841156811829931594783984445966409348158211271688616894409045835262054378230068187507148044703302127558268492774127278542165714524105408864678478344918596648147213391525582741820314501422883651968702913865780586975856346526216457038818493767514720064311835248001239771377618240608155273837447109821372943563627215286074194189396762231398845107888762101712997477608191580620305457538728490019165621811239691120353153108050027093634248479545757048654930516249057316363367962670344314013474930621064626449893568469776277221914255230319635885293557181882781805914461766690418447725575079701687567479548993959548991617200513055996203324411739732688417760630597420866321006826937606432358051646768863635724526942147479727507312708844656248233103681315036902256202146667232085956834202051804924811106604036760585346458430029049027705398992902346090112073543516465233282222539960812419368777725067201889534415720660227604174684211814569982054733619599915410444051840683336112193513384100465914399083735168285562220253706750252095637051053565767266985586676270693673793738728655405359415893099955585784771977284595388832627969653201445522600451094745874374245986110883061105207061804161838475957687307096606988373174154603404179305202839528056850481464826763247538751735608910791325187540430626824124319361524317521944911573625829712044821666774903959978157763059762972223772640277453240321602557006781341238178193038711305597952706437125193175732617193251338317203217083198583667829327363313441615513144691912254107393004182895190235809410785922688156883400250742316257861146689079106038864404053902165437920965220809697886962535043584251243820497856890051894798553526383926616675320680876877635546090779335726547390710541940213936962415193508354578634172966800220625074102328530050355603569999209255450003965315778595989713137017391561107071932732590204196414528866787512765027737547051871155022046004924080058659560969144960034578131650873598858991226673870832407779992652367315328578117360868917113426343897454612610497757373694850473308125512975007456909738771458327096929764555661193398186565667834218625152371883268865324845363268635783448406035559457079724752011996172934449154492450155651561084296139734948549697729807442547150119595621112960077462208830219793340258023266647412973376195899900280363930368007670901415798549564829620735885957810759520535556541534563770961365904314606843787579620323382200673046833859499069959271327124902691535257414437536322488601176628080982995773233225912499204983144998797121892001173519503052628443295048401435826036178872389066051595334809499394600660212877113075888644166001272807881027883398663423325736274248126080663857984863910931584307261996438159320622755655119188272284674497548787714528067423507218345864755860923554833216055329276096472278310299101361584501824341666744163931399548485922880424223714564068882422200441060702127794211720903418199303481909246964326824080309809416351270883681355569053921765046450016851801301232354004023188299835121628740177221293007462287510422477848294758051788798523629875566219925044947660546380155525236885187302705466422871111313637448783595748434372134674837950481631997146972780823596184121880212710954487463350340458953978357869335071462777239224830437133607452656618449079295138943291185197868972184259443371341172841674245602072497559314122751495199800841777528913068901038422546612790719644884328540752721403293020829545827236933779774836877063902356712704125534089626614822860521236854358260307591067069271436321793367404064903359253373527413886147522792161134949258248566699684735840125205870533216837382045731238707649712153223251927575863984075680430243937916420579273840318049945340703720051348463938303962407569000179368924236785424343657159727378318433537381256598300847021794441766698009506550091016524599935712983542778047107001900660832253855761922517479475663919672195796664070173116128610114609067807907636715190012401884446585402826216664834956334623140672537497449902672297853084641647953676954327601735814711946073687934516822326321274896659454474171780265607989758095557117068323514100717330972103925914817666559845316209241618260220668580871790051830685409687166070385782828414242132022424415554777261800944631778618903629709399404553351371084301360245186764381916191528414600260016436632598809994004122077452112445362456072061804407529798006434676654885826155322178528551626968208584708312598305531769125073572795667228943286825791530493117904560104423133174015830561924780030105201577575907246678374587052740462311204743114499448191854004161376552459098421922608628406953708965697813074710816858555587750584745268945094287930751514894641799208581372724837564019171638813759357599622466915956630462797168197971692266678435822697463127272994192653152759000831381286079948010853487522771553023766621550228836507521750265670647285924307121195276285764085729212781148193620246180631423122682575794190272816299405976396954012887562383949729594794425739747168619241187236940690881451552176658291261117819193895106570849277022835778817718649337173639358746353866221284070100166392461111220080252580868144538785066859800100281051117510768884389868791093286708569792527470361309384474781230089779690573257459742976505132678142302018524057648037339300193361053456192937609418794428102514791166719789085383832463588682140399612753613279101797788104252877252732716717520529184513173476917713045420136518740839579646313101332021178135447426546875010732215088059324780776706436078132203239902856965288398189624945958230648187667428942842083878200685731798935007015907078568711988740433458029536982022079545798118002607392946960376777372437326487949012325242763684729857247234151899940290155793998481455810713879004503905569882468442871763354144024597979490160468922373930366397340693121467957261647654343597236907587780859455342515231701075475265095729764173209144794442822122361812114611452714681345100394151072638086110302503862855835742408021565810016858245550802863834314748181688865183023720347977670414172620129959833227827207965537523991395660464304803088377919415729560459813572799551119402926311700850018659902357431920448987739945098346447247510034953445527817390780559821470610277903884877964100213700903787850388965386172551755160816199378942054392303514208702656842304787496350234456936794013882662730064195816933652153928003550476045841443789131921186301816114612261064602352758951148448072062703572633901161203618906652168444039328280150524469233466821389976656277674023036027571225072045758137532935916973752582504951635569828047743623901597983788202422845664101073919283066569857599048560129845511310813543885449389197053884183550423779014214644529294515074620330619623839309072491771586936029995095224678957787627882020894350496782664544855574091616998526829441323536862493344111656833523875537089051452507044591187854937449157196746231627241033921284396822576275094230929733897928658369677733283390341564131764474764383550331603607512543154439114036075248904778691783790905108097575460533618337603968879390799220557548952857627594741949174598859191159884781456494100706930137531424076209841875480132699050654786365356643962784742968044894699228338743591888839486077637059806695422928708175569222525712311528791782402627252047444406716487279156606596183235418438086352046838227850604056417035592605920720519474161407197226206301624073313882325472011857585517517750718548581992896233283774351515825936267047662813445508284966953957184334743805267291773680793754197102372526476081211044996552307001874312498335919986814196999230684242166344988105545178315564173055519765310871100824389402499272917412108181626191100697782073854998397846604045551504596651021682639675004977039588131874361716230521638186119608887969277729872773614791793105951647585515822588931061982123128513588386409113825466159559566777069164581165179799085930925679124611983546822185750613769655061648403396032866950494084070213842319128679715330160490865918554272247523472426168285789111250065539060899470658291792268026870974449794519703379649854688658408484608592112566257178393173519669703196239675047879785127513911923494455678337010471935077319716454829207399674205753725659798951311584548693273410348850273242190037157396901328131062023496584221207422227146635813576713958881100709780656391533968634174951730139814183510509596736697264794236906836630002616249087685336178938580309422884507177454345425922493304453037703730386633236306110780827243542935818479412181908156891619674186262130105215223728249146782709757238308677492253249733496177795667487557907021250901599029920929169215811903817290184808500063216007875387567442904157795322201876602624466168738589612438784353000626555086499617713859642842087271984871802154973645343010615568462748145797908077318193880816631536857180374833019842506056171642576609592336394376992558228863904582164132100355363964724120598849371282184890710637264971772313476187589588947997217277011264773923947678201467757083901272766045184524247545627616294141299259564335655868863043101924708830591306971873062374382571086025366689854757071928117577787235623186639385102889027648853493072054026067751075850347520908010466711193180724059537400571414400544997494998666580279814067728309191901489614971596795360523739259381731422610004122288737018741510433169944733610568207417619359275472245495993539736763615752854189010282192319197509568114191522197884293751946289161246404654607483334333381587164760049252374659685076903769975050598498135160413044724301036813242342965419345861679077152660105834915896189813184373694463548340481964340630267430300135561438967269133406741121451833859865044460651459682482385183080425935347547030838119840488430347470040640969637639876955280939394491979772044375956263396416954309154900374243274735559373265909678068890905505803794055323959342694191073850085101588609241761668652785029117357514875263991335044316185301534807846918430382211797585780282409250682839900077781099079479702917237250753858934113808229384857607430258495009218972953127452035584449383862507827244372403389502504774445629144990936932748647293432706711979067929057411679611007122102184486986830963070725642364523625521487152412058093100294794266827758416544825158812573514153799401525042350071542578725590886591495987522901139880037444650758801005015317407477811464178867169885811341586945819912700830403966838914402235894492983769916026033719002839979821711001740901759486638934339793128325351386169907632877364652247981328825258027394205526706732562435039362372906981613009751371861033451413514083644057152505750211378509125273374951642207121200720697599047061944814962521373394503279262675970709875385532701730211104046731285685340641944502889805679316433762266152429922059918891078773284347219732091342518851304982073447417383912204079134167604409400103884620604810771666941521291169015911129230939545470747088685703246496790017661206852277961993040405480569754137981320727846591018117149945364996617622232747771333508450634562967584884360275614296306898909068489648790349114129428595307415264878062290326479662449123144671255827463497602662854254941703049362606862348580958871064640797713490211849035999061537134490856835989303113537674357837488901375152966458376560339123837892248922497526768236481502333079907619058462337357716365764168170193448387924699409929748678349623844609868581204185995264709644237026878352642529389430351699697529455746191881841679944370942933534194965006745497387875848724150875608851473813510781946372587795109960785448458819347484235246543373419762635749469114107340101169330620214746233965026654932814617227258084947986435376954977529135372103843743834497710239651886576099596677805991933022807684701197264534359215905285088463033248108626382803809423103054174020743387687506226971482992204185914836272322691095283443368132139021595714241187303626518309827268053690804315870285728489146599230196968445886924007294722249594534609373579875094219960640945567300530305891689962919638453447141795739046106569788184638918552487652234180702088417373134671244345489474229285237374833598694889674153566641149214615280330340684450450545019507388639620624982497688583452138342239813101949390306329544933674067845108092837760247803833807581307579816152562176508106345869360327516892945142108933497542825833228196612285758761589090494860190067495167281205757818029619924942851807749287680840242504348543999712234760985298481714775697259419344161990373762440450254489326657612448606552672022281900128782472103203685168900837298649827728444706684919954316713902323451381934637279449019687775213800476415929597848428799813618396722149034956046304024621585051747689922959164343045698381436092025893694824488003124535917601805133906208338433304817292524495292568741679384312004144729755740320200301474176710616785688421267859118846527084879699928038984149411486050011664632920504178829471320378309182960640303630227184781828540911557648748597789187961213942416499443161408564941703251087008988912742999919174317668332719076562470126895102449740434473833430212807591043114505813665526570733209421105131997703162473412830287949030464701892235091212183051315821491259977592494009272559215363178495609402977659602320187182484346768933512023298325497442454081213826238788598562300433435022027665651447032521121622097883098578011161394245960085183904888147853239182875397569173333535707313560530344949877825208068449362708093985474148405281720520601093419411594597047239917278721372482684912551210622060504185248450773602681894784076466875757423762706710730087444564058871334858155657920956088075848962339390696044213864230718023516469116807084197660185379386177260203766455999212037258647309579433754293277754875930885161483946246476343771175258653106160946365826234021450362760380708501568531293189609659945778703661478418485143658765771060458155552707608178662655418131366691939000846383599030327550757647418269138404000562168724597431125998137075910842740374606416060942747418561128955391986533533822885893704488883094466490460430512638005598104722564248834289875777590363766500617542211568404571845555822844247122876226960263895030729315883401131892534541038602067111664291466477171007392516804503360432296035945039022832340783111266446373849828201584906259513491277381742507511951324521024931767485510634537618193036148660893939875247258682304833085854632837382004157660830961804924547266461652095049248472948970139795991968705960701747319597963924520387664317123915958863962861865662677174322355197932321554069657536419085933833884124331525621048505671294842387840962634479007005779758177009425145135605356705462275333013056350304213796518601418752469774628796548887721667441391191777474275393921129028373226376441228031929010392804479889248256794275188813389578821572083555597224816621801610390046811611344926143056525147751519897728476937077405143545263556530327765516887295251454222932330997154194254331603680775022583562369170998124495925417073546383746233463634949801854982247285063798267993650608609041762091689700597135522750127589160280513297755007624814625969631415185558423027115899002720458276056310424683408271699042164361970345875565229871272446041151416261899451678031412483421753053466326913165691425646481619363408515083984125267522567702384952131020959769730854704278570200706721079266654844689392408318439102786768802232579675481251993777355468041536990734762774338957474657087223692824598785703802745535776692876878804112207807945790250957487385283848895068394799246463875272772285848244650598848114938733150433549467097447423939200057146892635623393759600735661633672145173022308298840169824118109191470533583229167651381456829691444892060199515397138523182892123138365566549190014572600202176817431966536472735426005479447158770372236273331962332483297908610714830718036592812357719966771650921952964108553074303967479687187186615272244534533869245911316143720976854589602426531924530310192674022222435208058307167816648353843483404376937074604727974521559179189910040382748970302684404124466818149115210549895786496466336080294084304204317282513882488927963852273915878961996836016340402693056940425869928528400594357972491648013390640261780918077145729186269389848801257839162882088474421932235306042914245793101594335833247533693583337686299700640432081775427024527481062210570729003682735208967992286403019580326498508853879505081941571600276459493385835449665841983812985583382207402965732835753469413981753601651517357326851868390990205498017697599764588312517577200096899376304767961879609263736112011169355241119401586448611527286553550167292938502227535674160773737713659573464562046227655011703963526446001271639588948524261855874815661625775233575791471519911647323291701866065170051643756262770194059223862917116804556349361540071085752705465275946906755939281645184541594194349772345070291405550662094941951263076806065071360065217680424054675947214908813558785964448345312829080854911892733272005074870472664542384112402444714795474217727013461780246480735827641506757598079018835663295413239603399217726707183963528681123994416734801727924700490255437273839319749675459942394376107563841617820898881987456103428077326273261951902108765354820490407711262164402552751226346647216120953911851642014491099439720136101531348041121644964774860793753487694515332875597315521018624295118956218379875453586671116392392627086817886517239471148350420108148688846248630028684513688407073142793591242267626052181112931693703101130341709235144752937721205455892183435873262626873750775899501857210370430949974198836583588251424661220004668397926566720644508209600638744151698261055070607140309281750526447756253548904877130452884854603083998610150548068854413854707702209128026408395425041809404888817977133100980409623241119909732195138661116352379582035865827242211030505629752392598183057145962829050115764474288202419378516315953234523926035956161360006240547275162807596867674258657262329988138297486713092922588164119823353886580659186083490829886032381134948739641970268559268755562707260107730251766774163008947981394156452444450623378938354249975494050157297928300448273031259473624244881776980500704472018070593734603347584646146742022551904662979158437800247778195511304098546697719116920371016133917342751269527088832322178652415557877228042595522288002552123581568694311518246644126972371374578685816491935528477376473451860728268775570754378678758908455451652015180917364711864830673097849709979190034806933684762317026900896258476311847954581709921827268658503881371472213384384396194185860606636385533316067155483840100343060624089642230077208981152745921407410784697972812762440942246158348738483243889491214744553673554034778518230538290539981521012705024141090995001237496741347953226660067792543377676170563572746959673440835357761443135712619670345066502511290968467511431220677472321039292219377515507864618391369082124551596110654374099140740240153770462069549423261642008802031899040315411328874990603355306240814169477390446459292376714100797916020683136340230584492714968279163578735360974677374839628380311341195649007992832730300595254862446807629631033651132152035963941258348773757631839111207783953463948202259367523463437089094437707003157935833800122299498469182673084153696477806763445245446090933967091748616137315551793073549288530229799848684854162631447532813099755153378110870584395172963369564920755421920349096985298632172415686127113039597826923164947988446002177340705360144975915594369746872461325318009563244652561590800606345500429159514559188783872976943456970053987410374337257974558638390942547025094025757913538213235145600910418213391937134681788920265254625702407069206658814101690728423399708885202429068451087231964151123832518469948643778295731761863904841991959777972111129201278708583687753833690914797142381882310386921528156427842697061141398673850684444262021522641891596264567186567428304398861254025685083217097748704533132883415941125941760455905001776552207847074224274790471953801439154130146868194193206903903125568129413462260266985156085136888504230498736760970805746253910640227147670876136761653862866514139305260712711895627693429613111805970415652260051286351396539073512018600705592528944169614115412959315837590311633937105066113768958444437743298398769326015540884689419564442838642380282500374055895888754585415149359414032529920186648813444800817956585541591685039137535128195521895927644766628921739900922379200834060832907965215014643333964305393483139806679146233148208126465571253794711968253402221724933042403663267492941108159543493175960517906936328761041836052829360226046794973726732702099004581787763424119739022711874633304153381903701952869179599121183840312486715506616499087845066235272471877897995161712322960646886796777816889907346701561075199520588969313283485795494012002062241094133318274480483993895352309613178309865226317542805543252047562719386315028924076145882217204284901539638083960542660715303836489011958052867367362248941057407724824989571430586253813775539784651872113377927811771261264997162811762061637112140925628551949050161283427447028638003614361745414521853386090942659758700691983306264597027407886212770339343310368583458755191446601306712191549706908224137640234317054752539849456420143918617763320175949680728601857569885212589456917635468953154744509073161545087409180211145549759882203228650680521359116493250866501969277919454134869208805291519815577268076977658665217166551072187226513265543686808148402667475454653141336635227610497225880692164375122447227425174827847023007781420375308881420875378750664069026411541504375130400173279251451820336015227877933350057383716190709079557192656089811337176288146736388777241914169130758422108937096552029392647370938838292096763109509849590876254767422413432133919098993749547050767046644888515678482003571195030160732280113900888425348110253361598231759409467136992930283905793901831521273731027096687374399234455145547244337484322690482055953618084772869473254991051888673141494717951657635306524671400312104093220256869701166064245788762551630822665780563146029572902949973847068077429196957134885959038277417370732061259517018644865520137033286328182006896187522011204433051500253437545905754724150954166918642176707518861477592632293009195923035258061254697090654703224868278263100088342592030346965374694809697961846088587022575050203482856885935769768901258682450468265674096416892592815356574055994171142124778027733306800275735009968230962314348596898239527957590506587844032387182995263208408779390023120045547088613268759731785180354469046055633214169718772559263249160612505134388303772189292699919173875178319164395331212513708769536117555810234080396092338262434195281563814107085701931517803518132829672443517920665892515580136049429344977867571325744502387338480800147893494157627571374311392534691363547328551983467507285955496660051365541226272609576229839686618643363103042666387692220987802825921027472895192509014465510272910437958083650902196594072290802986864952851594429221565519674955672747496896229762095548005796287941243871206466705491749663948163236795969494879164224666771095595289787587629265091180730247489623774576512069663965112454216445329053092850800635239407864840406200368934657939660200287122538187002745653889092105254276610080179188459277342878991479184961187726092390907809989024745276542540471667878621333158998018340113969874438978618694627688424534375145999980247092745234548351354994122774018476611948112889382083714804082627830233958538277785902204897286284477463213782042804777096335329524850352288824781728727672202660452854284196537937926038624848619592846945167713972184503033272617501625563045680891834355153431552202272423347738288298370678599454901748148975716184005278986603051721309291806008992352388693093731054370705325834613602295487537941552723367874726130488722306628289140308140885292618948172461590371000465073923990075566914681150027766590469558759129309157011992369626756013716040731117206056175009353125221025813236005501985113634290226754777967637415059430058228960877132538368207050762584398369192160894250236901456794390822050368196663027615734331611227168758594151388488445024790553324303271758956002921424291313800483051133491588179386280469906667831286691016351346369397660477702081337752110345253319743054543359520006180976959247719133603525173171400568773312128166254560563022616936822358008862919098293063764104821244053346448623073054783918936836618230466475152014562907050306872829909017507888282285592821116677947754369471347740559397347706087619911735078517727806840093926334875531263272183604001004515054337114673360913231408352121676634297954827135123858806497167331638817602909865235388466054551457024903518083439069782376776840123563090593980693207542908488300737688338663614330526605151870043672055765877772541142458034603475180822179363436106192312248573475943006110826553804743965698326711499611781925911715557670669783535557569042866011765615847193134542682518910968645171626006246859554416074264471995887841549096325973167039252082076195896471300286555349581163898617675442452853020779017201596392314617363279605071230113565546724170033109465382227976449737842151126353319654498635567271521880683205640909556207589443406756117480380989387172560428995765606785094256620189685035208573990977362512868468336848065462464787416958350183682022066403312967047918773530186201474353783398380941007227697028609520749053722978550007182870285611644275696452359700968570064104656647324461035254931759057898765440803775004484686458291951965021504496206017329739193999064349970372352092590630759266689595361522670022444384414390076754420364382405283688003884783816234305509614278375296190090940638153939165130827527793849770763840378812950741341211381359486860634463473136381199050435849556903120768683724468054948326742742563847405023867692553328242776993862327019852002767466164057525839653441397739808828592044427280379932176909725814659490857760606204343524615875882163061792945698908847065652880042259338561670188340979322655392461968864761386161604066656766357904077781575714058561019233602048801286984279389861700011434319732552661023980192639626258689228151948882326862295681817635479085005285608789061568463409151426893041526502146467872630614886493869728282018868769170826056478916955944672580898014360333752002237915363573888996624900362108358613080349861294334104004159991350337046859661836463710425308586174952502410190507682915434098890305217913167010970000719480982671048538689775658401350153954638464704599048811481055187242432811428796443084869841549178896313891776987969462072788636046683158671890151828665806271592917331169825375247952985154977982114694935744424494203585516289654810946303820421007070061738802513642772935733247764597433822663172024125054333028761915643795373478451220522510180551331355870873222476108757607474190954004509057101150839747347186927364458953303128362717376156134312022816331722323521678166152523195563850030741907157695344723818364451840462665194677916592493078824199803132229119452201087191952213901816102158922665301237644374569198051724572171202983901733259701875496140083341555698322298982761943519659809446286155018743887685590278585919125240755593046274795288609192772469789684811900901948472238071253929141232592861701001680603138332042053062092305602443847826621265410044778976642131788853211525806111813615876445173113511636721520769243857882205363009709227623172643935250907148303555682784045142178058615922063289571696603906273548355333067549099250466528992420882434502256660413400790608229321723494125078535054459246081876756792303701855423504663145828254641353665464661143807614423920503422191855560582291039273226954539277940234380682444309089017866461316086612420382063592633406602520892946979678390306501307696026966529371507045263624306819277867033158449568178944817567777667036155977358922447860787047635993411961086937687686747815623508040274601888786976513664707264891501043477359909854484780909741104137035239114291738245195112719605713619811648584557004176307952438403501159698876278790448108469359617902328042239412677975287746134519104374937153760698498473941730010356628419941358569632292351902926869441670493568824626176799390947897314184862180022003377789136771613201209147022761441585848366222953118562881060232150503572875459009646053422017055547947184164342568227627550865638529975495061302620414889413982224562499273083303346263913274524783289765924135008387149995133555401963308014644199266672541449596157476111390656053997593123555975131934952423571080800064827842555661377448665375042084462739817879615518992386718309887929442793379087072761235624608160899942796967466349002068406566838537042476654680207294239833413408939228679639568857078527642490818092202342266055636219485610493823353589340041835330026371089404688278973289428428750300797652297896289851755945732926835991263108839914592424610506091301223642550916471903014353971202611701185970000150641603368067732895533561219156497241546386816755990580440182738571485135460091020684410937531198317014503841653588539429776242616827340232428909608054477569110649412230286327013033706389234169446450299776669643635144279363649905757229521764566399975938351559735120612646552622040893176341626974057407231692425245092140820127801954934963697048869269393681257433451440937847097986749903254737150918367627716884420045426721819802962477505949914207235664875248942750872608393699606413280488995906741536924147966615095892791984796954517888771665229789556717623146805124715943103176855239249205001047440804246698071133210936982257978627058253930026776339580776992736738336240658652068641015609732692880232721802172648822316062844183199819000409107363151390333823425900474468320003360259634048649432959936335986325081919027595052075145715837181203500488522953088841161760972938172931108461305397605547871218567955631992421249629932935908278219954095823464838025742620763870250533305099916997030839581903989384947427437109861001658699922320083268419950107281138982729523716986844235990008980305034750692897234693158189948173886576515199507013404103672824220745498932404977134235162863155134713102937832867788640798661193326856474089623876877241905372791540161709179451845254509056973454408267684281278239681736651870894030158171268367225479495692805876056512697581625206403587315228404053233217417495103747406780653138728881909621921400375770830701707258815938821873031122667029773393906331501698296252876372017366938039451279545024582403923391673186361171394065298637081845324608021502306354099439169012865901926912557367713016032140540996557659006474671551946939933185079739373029911012864543560043355180590421327575662209760510066177456668911243419426137315078163998046401491499450543455484034157299135666129734640911424556471807733378318269649898464571201621588496639942133410954858609937372613142794636551416978940354236971452233113360895866944613242664075905740383398703413631336989172327465396742121355675721077463158365396553065509927920370171219045954249100576849770758875116170534761073407537362761470712265419733408134217942717933872872396222188624888359487164677168981512234768051164247511785052926276382308180147607136383486565439196621564040294996170522304525708183220401466782075250619348081020009589142334337011397553578573072802552329948270132477023074112474044180192209700643372277496716399240675365630906273019172865675964092148234155864882077283722937129754672536843615365686102125844112680968013881664972739082864582234945976063906632806895728431462188786930404613106156594805123374632431284538841255490033134999929282491790229096443174296178656573032013361714918132106948194350034901882885592479837552786123407083746479666425086812987453670423389385485547071201992964549443388110337240158135056439503130675589845007183771722345778918594491350747866017685923902722874314854330292029273078417023160338833586680787291798842586356724869151205979393072735273506092185381822277270726595990131001179093677868066090823414501420161955350112278968100564423252693567794208829375690299753887306857881008754525720322506864272345202613313941283642729919548682356558610459673058108168471720490013344749677124166888918558780692617894787738441085447118864961382085828527552338177361547124836476408717918013369199291539224584443699807480553528576631077286170926312031280095574240615484172043137799361066682001783480103043616986650506625647879250783175764166247444289519816599996428723382042778014971254524861575198141304778681831852240488329168181435348456089401339136260599516442081205298287369470495158249057421611777296968312395594743795658023179515455158318183634170359110021023507299825580610893033836180388834920928587970590636186594893147988660131521554673058928738885176476692221968062354070777802661353983029810674966819532564989300760134571691709652594806684230247576541458872410357858064772552608866999756195872821492662957091181216153722239877412169026145406829819048709815116336974715399690221308933089220153805763909296343786580936114356421813350259612851373167141613834361262626991517236453041356815072133588619962141764337212145193709120152643055581134108227063111130427157116082112623305782603271596386341508671126812413031552699644334551193160351508338407503263799096749741054731076914638145617854868562066795158739550088194904242835584337546374476068006487424870053946936862982049323441122326313117913050449366192384843796246898109736973018234755341831117996198564856500098563117624713618754589499892318661904187211074837752593218740675685440468930320923276855174989383280670483596349579888935419214693234828390109754325129555663411103024620848834565080860737496159048413536564158635084040757748582252788551215663437400807491361652882939999737059520519271612853677558562632387018185983109985436487620676870110984495886380260375198735771485387110719127824378558610846451556426086971289653548714072486893591951364749168732016257261385828562912500183405850782475538565492066148195914660204246000814581426404738152352127574680054836333331912571862867363667309399619062948782408046421195385296368080824333663387519588293175576882090322225919514244904128510075979016008532675359399801506183866921474162158005438875887588249506750664909293258212893267124771696934769786562068970559287907010605350751341967529002171297157861576893490742481187556577031148138299449553705703620373143187853353312066815663114238518320474188698722833223749455723579099367005057873275344218360174957035785266125327925367559912825183147001253115539003446919376759080715874129444812015517946145937941934281754473636815066443083105873255923688639062186022424964328793175245465299438963491028595382093063239403966659425673275879091814832864268603390609054490929419669886162051355685574046541385873000112504063774164532421367490576351126270493186875934638649788952891030352173571875946047793213880683456409702129034362983806778155340460028554775124318454375085792792599078399304541232660226069884076044485450251628491812693076677580523071410103712400533838719188223464289256124228508695517462159714626680571957189854334049694239567167839004230659158418020971937439546423473139159399972434774533073694488856078576211817929417362235080054468252941827954937778296865282853425617423020313481381487650659760913111327761623241449853893837493685396008260827394549197767433520072598835792080315954577324354128343259785450940442865498356593008327338290519583533942772218801200933255653452114081017591804467408105520994564229571068633152063037330915501843138589547752514309689794214793992102530247160565016467303526074895799257956580036772122565171850212823916839616904962345889500814905401435323550889446232890638880189914997232121570306831090226957312727064304495431783257828776784628970342363770199272162697747373164222386586847609123740976402597317435769831197330963442206446083785085314012855608497202711510212733480910321474230377505327455967894379041764576100843580610424850143162176085429748602200059062823774029927304631081359993254539566183124440710388476463295208816902362924822270550528238667406431233110949350191061428635686068014608907341445311305753684503653282810609089178852055729177632610688901459519516247881494227666884706993843683036451484140448811223075680626170264724783523409061207148793348553130592617710007838218893858866906030930952265432552833847728224298293374666504723265974128112631268125559405120362011041621804469669758124080594437617657205557952733016262090715598453324183495680855646081805222095441396389744053055292546208061847458697787636332943251547867998190689533886860969894671840875340829711734795327314899357634416294257397607805120645593825722481893492812881484839084706435697609451896092905030942901524038493577870488876361837525676503184730195616973203083082278290028125147597862562146413630097098759908015251903119723313944054240612733158163807375905984061268278025638487545222417797184876936412663926383129178137611028197292141702495059004406277282929032496613846855170688450323559252541066373465068896447578317019177931689730186225192343452876635206591488508629575078587870835996455457115052206111029149901501881468757892574082963458287901361563942033328211868049515440610515755493262189932197018467245321572166943636606476812325448645015261802028433706008205842649505247231121627674642501451436482126365954256296423193742526549425964875530650691154104321778136252942552835109791872122809103320688475530096144645183725620182492499352751161088787976147057276105294509073518002003034527716406527715735339767733930142793732248031740208191131040311051435713096861846738045403787165649648312671443807106802056401637381946249191325899397858879997504745580502085058528009032402412677070634088162446244082375814855389583370767419849987516441957959080147608222671591714102577432713411768395493117547931849530172564024009542115225743640729612443671173381404473180476357729094887384952281444367917825829542736022134560609765539051000499449385673282011914345627912724575295272340969372205436185782018671132748788296882732318795415780488764660618613365585020352111221269466262833609937946555628819435619029199631321680400573208180218180049924128553643933666863771887351139675851203491204421703722817281316984723945441996178662401035982848412304889793888059083002725149802367480583776212529580527482321024916840140011124887380509963703771118139290847387582497334083577272006490034057227555670013284811593624341230151139411901044016503090108874158090548727186856845318807311692103161205820518142169784405594586239341575760787238233808829453170124119714708401121398147746855229884485618127940159823260820611537892741018717189239596166050547539906524113575611579158245559750176473485651182426924225740852782541701946209656673700072171091773744899951739940532279133650218210474801112578410664869482627130719207712152217777595563148276350761315801760434492202097103279316201261110718503435684335335165598994187097947365149552908252582385929521313270436355408230990974219444841540963076083090599806461098786004749505473860232979651228150205990974276135622930209160056887703258860394383287834033072386132025949505237649262847913923648148975310855063874524233809169944279112252339198565237427808254410325374719309380129875884699899538015574525965181654904430490409833820575259396538175621030659531192531009967695184858746335435766507375162035555162387714500881020378403575811980592431824445609963800670171021976787907716037890229189049911115705932290679196811854373058026489056293553272345516932648078788762893831856995479036122071837488098596684488622648156790071517893871738051650813199405932179166966148470978702158319596252370064602705583868611025041989709254358052304783031975391359992161127395474037282943276433856197629661703394196542493937734419660830531528199596987772656726899144520602573362416075157918124489995531815011217322790408568878648965548754440111843692994241920836975970499682254228152354183889386866404373183124955384098786378669007498578270610021082918130171826011011069184437785361588584441063285781746715408545472437555060521428452588474668775143925288122005252963532268334550553205302463648445750086275094227102007904039022744305489342334495941024411740032570828913801277331943518658014612929519746362179649439692807818724595425486453104428423339359104523113641961691279110142680053154012451177024348608543204494507406783300068836045384349182307716562399478125455281669727350670557899075187661969115885478409238211400160094141663648508920556504253401507968776010561438825890760326082595989874789365317070062056922379277240265058603054887674219819712646428787776183204790901750603939272669119533029358636092405498651713510664619557862653491266042777019220154620206954049910183402709392342577468685293381745234061419287300934321602777207904552725445487450657380357978842216715203427492008412266077318852831560418254695301858239454071827428577938389021222374388703111939845329121302695415998689988822839150466336397820159469937305313055036353838519074149412608904261106039804876966131923200720443515682544176729889787232894225919187712112595295078451545339559288375115547134990438254574480501278637661179734309550035819511250041097416999632720704266538332697561328600397205169217574576094248442757447010057686839209560626915362107792946264760432417281996975595531090532008374019595010977062039955880075023508300388441405341242309696697907405405451133896043632072237057666227114192257541062280827388153034358653249361109618835228646181641979679171126715063750643659142526127344109948843293359172042524725213999838030820991201591575943105586880070511748831798141634083284313269474365183889665988638398671898757878459909956769092540076630392280113839047483912541312351467176058540854028639691716978762307452200452729952016718619074891868051559602736722188144614345035871372343781885448177591393328047009073509027459192390868069759528862362975379803826910424020384406857414962314315178489105939313754606338041192552203104911507089690797115548616272270307108832463892425906308394679603116777488883594267388660363473813628086271230151818460837533511413468946883472963759169243217741410172585505402870219142834559855222899732722632908990292270135505998693989789841092267826114085415033857938912374259517725688476271481319866222371123075722933224268033334812022882092791417374816191299363083885196095443366647378670440668410176674235657889785371318521596568769581476668853312511424149128360907217312960340177730162935541912324660007095734090398686362767134502994819671626781729335607017833998734507913347303956025939847478655908193421537877539606547809616131384652295401700328291967141697517920819493977706950132573702076377375782667271084857882552945132017891152394467563230125067213041929783705282187614524000412070430579018318977574566203153720462758192393456566537145284562431056348973554172498442086426942062700299861315268895193646276234538640352074543331161363280139451165661885789913272474819037268152261304640646220601105642762365518109697234469460877117722284113365702622291093394056362650190946934398276677512856026232109324278147696888406541453456616338375613431879674439863773851090201358886412416260482986541921832754349433594697062591257592362662298198100609492102795809790047545155373980727742162692349180409831124021606680137110353383037865094596859506509439986464713973849116398147241112544232688549818908087488951944284907274237187299729977042480549629980610191098723717642610810061730115888760550465005567236267830415088121582465132570697995514679375339690136437675290369657059081885097990968847900445832164258862579584986142539218212020696945731346161757826164371993651937813511843209644110352069227172016472592823588564454023122516153476311429954355846299094500028816631381017778320199893883240796197035405015754769063849830603068390145670327890167229415362049878885007597955242348081607744626801332303140727143419558389721096010911686227137538974078961857404121745794164951025344899607638338469485240390711485306906181632003014124781820191989985048948676138620754689065872782299213895031336622355064850608177999196893171094676151706363511316901108013060637197960386534524536117554970364345394633886345417700338831624113522739900809807257248164575102460357253876390297810982084189315586439750357364030346345596208912574947423714979207055916918329200329578786170283316784062310290006385411899061663759602648671898030227817354262179032136663325564254781591482220872636810209979277947414700607483632145543512477319200776766377908768410715732807327405896343282192374936885382018897056703539606811274328775432559676377332383770254650019664404495044160223784892398518004722254680452377117321111127340509018146863293390345091944152195415655141440887730341518739766234725915844120259063412448138213478776748153622661597546804041781424400821917669225228340705940921603659416341201422684060709808368049676907442463124867421690817955116255902766500262944687118852150065400954833619804905081856977908397454655793279717561394091272653425169432909547451717425215370267297158254061131361422951364072184773308401783938187630173565386346762646275876973039784401827487911240598435209648493069951847784742719909932642056612586097994427969908683153356628850387726503280580350990726235484606140046418783299511045861296592459183599992882554205343357510554297112768313883760360460664396358199558998185211655750599517360880376582649716949297259337725342978875191590313150334100212959280170340035617288457407605617819706922366585188568143369118589174698930925421607495010533487920481383094764994678135946995465034381301458856758779633910683014514998503755543199234969419389668948177458877866610834434302321246024383473709888144035153972313592900276679555050773077018477210441567353747296124612647211719783809855311199865981345848652686487123298039804532178396824298200743375799391990235391214855808961377131732377101662274317397554896435796976468862236519564143547859650732310263410100017054566099258403700982871882930390705246210711652987880696608518984400042169347721121302448402414148252335768785247518315693881536140387956748817132686000253409742847551076017792352048603379997275546252477868168244576875882715137886360210032656985065253874446742030547136888722538617096415504900118665110154676779826196342322090694444536239559085845317926823155839188892174223131029146636612680317929698438401079397475120615642239268863934006062159483720329618057355953192610147293078553085592995711363351933980740976861309011313394269978037784053218867407110063025646640419155056394111623336849110744509978291267619981979437545618019091084717893644130585819222015146280077670321411290774854539405499758647416332513418382935753983217953973438225724136700119779112581665350760448413363072173152131008521886116184369131908433460933232419563125352404674381986439526363242410140609596869974307429049756304235539449923444939942592756274379055167054739300805094024918980633641113053309249595518243262359988122026676363445207247571437087382406698409984759766032627994736875700088342601139072446823638605920397689715078907547284383765908115209743345146351273623479393276874274540586010238020785730456180097963101619254431537530514535533430019077203197497528042061924275742479771760525928629836983978432885156459805330619190845392950571219163526293917958269614249088101109566894255437159900179378287508372769216584338692173678475051322628195887701310605912303400717935183291454723921844848209187890208907614800665670407470333189326421829366851868016199754369196214827276301616581057953810070140648743874229362734319890086901764956919596239993796501834029933836113747412894958418163486572300577492964165280277250972097277215299553502827378898575905705008039676342459412193120345991706178389211573335084627741225401822167606405598446395852466245331835319458136730978309130660752122565778578737774554681083788239589214971002952168668563061211501005260644357176902623811880831579079716296960865039055829188041546646375585508721781125726399071253951214982617429068721539046006834255820793101842910158122687541289344752473447570875871335000010316702789997100784785980848428287568718732949089629718329992248347498102606459028643020964624501482299845964271914679515103961326676887969761467427691997127885507152792822755206180678496739088984146906775409258831171091059676302282064534340632452614745231492379044033816010735022624604230607809942720791725848222077540167823239419965809358104682875352996872291194621275992172280818118453177590407156325775418641685398164947589530140196372003947167147414647480072509574419442883200511456203811421390033699123919185190982485692798971813338741941477706813984951370784475461205509707342050365173900480301414068271292649209181770909304311613531305729767818324447898837141191557976255482501292312444883706285080884624384041333139713245029135173756113680985261284506245299129616324680250490316872869604880802943539763374507902300456158597405051437619054116479410863171278561333969481580837362611682912559291779061539091092637131860393914335932211889406813905432145359607307686790376393436117511926190736830193235763067482124672183261986638518948283945041528386939157935226747514950950797144296401668619218940694294732400351742765591612987822727844598278210786443984531745441490033606537925614413476713621915402323026540238106805956620328905782548723471836223652179540196303380778798640301696515278602029501304659730712519769451324092395344270208379715187352654932274160336327568952756037355259162394191840545765086773118044829141603975977557846573325380221362808615326842258894769238676737778153741376123317812545757730521352609879577178904616526881736756568853054002521680884465663947423896722203648615793922418558117931821172336033482069529809309481935356120798609040300010396147397668879157040305708378996940603205040173385894260661386114046099406815491954345078496894778826345249259634965245780050936404581949681800629133146024489022788073836626601355811700150503093315687756921170816805977436455479794408279067903659310665992399195884340717359502139435068511192902069227792222428594027736028137972413737498687433508833056487157130927938999062844810764385666045794786804837422333673409954251211699724547699667388452103112949947477767186742677159007089231071085135998649656692804013801985719418031396633336451810546577943161478813107147309534375509657733055122950068105534200232498230407457974400332968139700716114318091219162468917656384544085114609239781699567545631124192887209528822612442976698804542469267425974332040708421451408438504316861237463815290134945648399183247497893200745230923242285271536439501582923042089794172469851195500899215361006166439473865950976686707924024515729415497509624653264934473080007853961838576226519147279739905899559207071091617560131151872260789716594483794179491551820192268292328902580081981315703483590420310033125103348692650197708978439163856551576143584893122659901446747065188469090430156583874072258359334348033943884210986693412670909455692994847851458621176811388644375136095081847694205017640503042082534046029688816998227018998893996555304404049908611457575049337685766725661200604845893390703977045290672600895313812663359126640308032999849471560523619568127703524054289851571118116515036275762710534332678563917495558768775324144850561000126095914006571544059492719502065046022611576115585764052356538941917308116526924956923929556108943579686687394774343538569692753757077681220510183149689798192622576624907539768497759214926168908027280849698401485681469264528838319812714388618882002790500836844540512811379681857917424466531325888782361433074500023986356403338760193742664312645687883137694002275619585601034570955901848463249357433668942729310972555481614003409062636694421403347547636304215811253089852648744020627835896712676925118838184813807850931294020339351950099201406719650124691937697828995844727444851541812448949223446609125054775703982997335066525724316999788605160332217850462372755045801158819419600093782245370945122039890105862911431596809031654416041070863425766902368469036309051744606445027546314403901698832048395728871308411380332487459661615961654494783555180266532933757007270195404821000956353111269712022799749973195481024469045993277748728268384743809114633417853946041775128601619708312625910793184224343091543322192195917506459151193740504243322031117910800591682220921715203058531952077483567581589911021812223204675053191977775912183631416836011786901305181888867604834874647539216924886154659992223131856998806459383624885263321240317340828498250254779925691670215286265431728181131330803774273951185723429579277374525996997614583164540125423333124384653681943805203810087646921576951822655282230062488483082151257700461710862629229178454588751987973469851835922766415998337637067866028361432036925430452935872818589451542919058355942541147636315638919437360414810144102784111584126045820181003337676699644584611588964180162656581043455267031781632956990895569586942802549302532663157419848761088528376810241404404626852969215842981800332389236697633962065388950277162839992718161130624326008604230224553093440085891160820820520044187159695836193623072831441041709187022719913769148810630739864170741241506802069573493542742643430916492334423978117547976383345756349623240067301484517938590271301448616219585526410506144364996331186424598086682026985984308328814618146195703450944405011631438596892577344366649766516671385660564467547812774094007770903602710581761890300750455714847856242076859746767445658400369390669878389802569682468046926637672327937605771594349869830805685113597668714540323247029341541987681822490719644372105018757093674556521824689899897452579112476032408963133162027782981000731050515130741489668310698529042273175969590412306090598109833620553057567983598015043364623848738430430690452082308543378597714462426190964136656413196397854894121856834717332314475192343637395341123015934040070384050869353168807201898673867042308269244758602474442974398532626847131196715204210715027207157364123938833628871376165555130964056167203743687145244308215451255345741799110947408076363068906081403208641189158330512658349323698777280179246488512553134369231122523273421708377053725965705962968470280598283633991725428956166007105083817667353935862166458118851947416075439929423386717122608854876504616622977540005451907621488106197301212453972373911221833440951881537838793660818800879427068990347304531019926124964084472491755304099630867892819201818508553056479059262322351551773655119837544483500675952871274215180381742518704803070117339612980898693768197188342332047559417043984962113499838520630975121542681655069498820544795941226671750340402633595067154660964418033142613448067325308336358289201196291840146110082905765787224208949087935161002877295764045520754600640973051403571128003579658086660941358541324205408514054591760478445911271079770882612374499200122299132504433005197351998364452222325930363575369768081080407835108964443621327525549104589700016761468858640344980053667261976156973672780782445183767711152701571312860354515392784133745860190911654502327982791218972754693745861338697011087652154191314906234554431070593914184544352195766205393587963226290786159690522418084798592689010202634396251509592718357211018399816133908121488766945866126584632227217694073081504025741392236953399729907795704778672156735940078176545216285226462870762819576171316352553107667182359098043134352724191458228046521795198896050448571734374815135813679930738789977789191477819334887813018493554287763615091086663224667095870529760175319071086942048910920305207765555694215162118636269245309635898363011813549946054725022169752614662329899117422016436935306244369939188848013671984903367329942196497787493805758041192088130507112176867296940130594570846893845401268537175587131015933224283965765890530727372386572634090043365502719523461244760104530256259107398195075826209662646160002825990935090726759997930951249683478620894307207330433679789864325036987965460015239402465799230138786598355818845589773393160355661047142548907145788185811547199769630182108571524089005046841936313530190772848086343087977375210488426727553814142933194595183723276619367698665039051584505634634017923956991586482657006174404380021518317313389224832243460665094806447539447368650307927144122905144611266863658219946871832516129104284620273063204400644098139412615741421783552646374101995383557383096454378478685641915274641878812790469661568338355436542782685563298258172089678575791089017685488307690767427789884614284898587135812051899923246603309705564756714919345652517548303488306373659071253100859358389777030778806692176318035387064008886121429777283037892308687692773992918608857845145686607681473733429148594290892937326428054781759992235856524917223099310049611581913298003333161155316629092307961068337239607276588564650162152806051931900880543719259303250599423687102603512289600321191765935100013628448012082342607509788511728562698862823316902341775784757137432502315857294671172609010929554555669868310870887973639310132947997999303051038248531444324389606437090361701561298609542602965087462723982470600268569117871234006724737802648843627524790550742922879015689759392321826143171364760754509590524891494190018172301552923822249954845774517322380309211040349560596256614459709658923954176706326992283785058556687623433586502961401983028051481755259328335989614715631413548232830610487960991934948254321502739393670191273119374488463706549894346475963460913367494283806475480062503036960304992648784291402468814170855094180728723080923716552540391003724389072331550369129874266928612187489084081695747634059009564889395547586846143172714693524701770769713884909620170503275610440482034922627262629208458665655672329432563333762514477741381269247294691894650208052213641485289821170764394710389047312682420333992999809530045280430392230732231625284412219630710759865404570769634413749006054304774516697850645755883879711286316198276902398790572154568614718810562029628822593585620954089693707764664871687742367526552302323094446286288145237961564550758779451624384782978999652410878964812206078697422506222128299695681739536199873938280036196152736040583801591378195473752040819282520416037917269113760264627556380798675124444568224484282124588519289014751977820990852158064928487127848419779172425518917211813958707243420591311384701876902809523502117076374123930444028392212588976288616042845378708841223670959962023497161453850650360450118103562462008803757680684203544924960366765204303492492562706013590132681371517666476682441056937080526444775144020448308868851569840735441605732731416371978013611253738124831463116115840336157492551784491149010044558506505136166838539402253043901265418816052137890989789179998770060038430314340273476006888792994210511845823092679250584064087170727433741153566519186688874248515897552424399237587946706836172945737218028031401619548017031542209633221543404272550562186414734718023011564361198879804836785140357213542087875695209986993392118919993885233891666803652639620822995253360409656964077770047102619073533432316088372329863034582851144558301250062878071808607882193138233500854531029120432821070737447298269666661809859497952090446837323811895489037693427403536933371758181770504318244984118837932451204886858035084671620441027685844745013329354833027344322009455243265601494099866558420061737405904080558581466642044783895554447466932525920527276632872190096486848540278267673914640574873388687642656497933101179962530688411042910656204368340906655227696781127418317423415001880685925222009268808212054357449797433011463017086320633951062235119941732115019913146882762343860729818583778492810707312781604276371476519299833409003180940042420447211356017829704641185433911194661263449598634026369994779974814523551678018171188647760096751812609392171979975827871871554095385209192219270340463023176700554069247687603826789567359207462716703133678051827978856375978968746500423336698820593443749298123639651848973101596467309165360066462166250856571697306451097227496806560500610718504224141366159961218869300035164656453504830567518320251914975297408369238091934918000835167350886209205234126827290395750446099309166338923935842256198978747812666544112756569910749675329695875098643282071794380210008551006880140688665372932866098605878349245572008147355855457369362517606804449163812092935162329331041156031527900495954349549017826108257722452503912446882364911094863227752177754248711666668109953050079660136209178513803115963499989870220773896403505800924654654881869092013347479497979521008050368185687306167559241041955532116656896099697949552117512892942225098031199320305426718289568654503642400476144922120679262739462160791388918518820224626781315661187469461841711226289318216373878424396250926403231989083531413381580077817416090189365849635464466363769077969206987445770363655768235829984932150631998032651543035146015385764520655662840608864230743883584182238956153253123428647075266576855069132289623240805408362575845865566450001432888123754024711142794159978437897382393155453231860444320987367998071499775695188375068746445906551536945942419979165072665525031194978362756798891057660528520574912935860579340246767047753036932813409172229348363009947835333417889639919817877498106685602133980366570919534795015429868782462782844658317894353790460818754993107568768649121880073849013247417731615048009831059153958462566835123350807677604448310067334936797627616231363529682647813173181455995694505919592279834713403483076564690564385118950399690155293483372694028814540047933779150209553875304786653862838165384634978242556250045480457639190366075290216892135487921876624168209878857483500589068436348017295447670191948572286434294547719031969820955991552826483976986512723648708940917649899550658845965615436315979463109373034443691862317209250128169130689819157062481182719332525825444759053529642000035839914302091368318238922467048370836236330478788211007295739303994192160378676529720495561852730843366611822046308173668566986706570973591201397391342826800045849361606494107116220656280419598899579900867738917534592462462389802948522940050516956385610959338852994635551024403591368994973361788118197158947592238856938078882526540506987962767751755182547256140123945413996068258738769241550717244585216746115449978234026832940026366238249598598101085691431958377055119597699140193775556456413257930229637337639074725687238440739096440405267179954661206028408589567568550637725754328961866614463154499044945576944499737358194443808906958553514959547562607590645604366112434193725416013574214551847079959516645867337263823038535947070518650899443165041749548295303540459458399154190203957879671252683806834749213912818402878853471045013369782087344815042903117148680780999730726467715323702564253657643643461593274680965459865815889945982820052646432675666078083600287389272130939550539281483684982917790056258863541781365525399595135792060498111790969624903420901957042984084042114975891907535043591124279349880847011620492467375943436191597785262367278037607187532866059005510129903446951074456787308466297340957346312061945609396801003345799647106275194384305385113177441071704215316669766386315807774660958122805286197912897309183340443814598659997324615047534618789073948260505118946188919791495104780930983349247500345623540121538399999463327947769409035561858857691114692273934317179677254455747392050488520263802676901159052683809820702081071883039973984750944641245919941608502881215843955754581102123526834662787319510044046133884908831908973481463794170290848889562581323386765517066243488575236888849915960682594795170135895844512520249857581587510032336876496993198024342707789019742944472203923803154477696797092339686244827205948709264710852763763968098024609685835436690396820201118072081192011267197789465021192733352669287195143538255786297250460466752460319871487378203220713064790210379922462655775627654808554476395100666819211259333078336206674823492851974785929960534708292805083086781657888601729495752120289378309024928248257793748624660583397313122120166700758353703319260682113715161159970377962135166279602650941861722148683383776497093958677558676437912525819504366478484293297701282523479515649204100715387201398421952307947848208341855482524050061134125583309961635248427966574629399490483334830244336908549930307978559601625497530327018282860825531286981631556009611149500728982835546294222377662798758043306175299397078550474192572369234560333631289832551763330616790501616517812324212318505679534187684549738970176016931580897040713312812905487395414562802110436555272814001631943552000681494050098578767400907167367678883679022750484094695794177187757156936488410336861875334829614204125090215568193612127247739893940642095667700861250468817562453080694803827126909694128432100786430831515131944133632575374966958142482517532914187068937080251783354646591870843254687591382385040606357890162456190610744550952547048372206941150339645112954192218384391886849457921324672062891372619073858646490399769139871318851952260419328400317886596144454031464618244864235436821976536281650205826651282780607583652274085448361507577553686105214456663444054672167781697311390786821390231683303899843991326248526756302327705507898775505201176076939242947195207493365191779651066119761406901558238906869999427358320029704223854973938419740602299220489818998811670962372451429830647831246733010572346331872056542564812115098188768880124643157633465497998031755688068589280255214517882805580258419752942327116653890881953852057802204592016057136037783869300906814977313983622199844585826247714946508408619579935030195458266432345209275151848767134574643978330062023660389339573235332594076884124606224097838194596976888577209905094365831269946176246649952751564683535223201709515327255145731639460493665834446637840456421564737774402949177219127518628287374586994431258327931891261527333478887923829482616596223598502651462996690865032927851644232659472052042321417898489328760665020731952012303994236906634609438711545824213751678652355666074930516821538851644509963846908771011884807274010096665500562423042477823367029230571803576391838054316487274872473569151064638190505711722342007059708315882992755339098364572496468477253188931931767572848987640133317009542210510319942566915806089344276910642309914266619371556215795809713035110964621977132877065185976882928557950472323618420966414552300789281993383276345193306032273863403631651427022235801055263979714595177547843876931457383133904203863725239499874194011629452318027677452997692307660130300594300679954742452913493095233109086637663531256437542583603885054239395584528439092386846885567622088087254168239418406619481301008131239823830168602610829856923556264076083771449889542715423717156677677800898305157599722956112256846440317940762197256072907381842135397517530043877251808028737042068970453380637882696663215853552786378491677762051344634029946522817477800668322790830890461748961656425062181215167530609356336992109618009454323095483835723986314070811276729503447085160550677480610621315885360629095169697895605620125937330751338709674347151056585644729304523387597654122286648188585330472387117574988306038799458511208755507276953720905781082897599399914837147319129107780359865866742446716771137898680761068805692594277304138865621349507766975146481208774500534627276661537431112189984564528644996107571030142879763266095717520036025906237757700095487785024203543345171562266928525710154104759811391312654345252568992446730440708393393589487022366228216956433059839138229207592659642036351344988735502997334386648150440380120036093140277874302975347759041486586978508812440988901786371184819972418568523431542970421895335609758501868143314239238172157602001422499739862683236920066602095360999915778410019370973526406155398282538448672348879397233187204634222154753217657100008303866016412055104558269101742257932336162008386270366480612160696882806502948055348151521182684337194065232671485879804433627886731561404947033196967574295152056802364569338624386612861213465262944297497709405353621285781993861317285344012966774800524104495036261188029891145211630559684355094017350620364714096290821054389065392671801745798613635103339739093813928998386670700903946004861825275047053726733947180010405859536299147305379640434781637745038726524811625694618000547459382127021627685052521670628430189436068294607408349651304005513801230286581376971139956500620589089564146807172756569675737532853909398532760914412063215480643619552007190680759524094639637643217628923475039303131008567872628989696917785681162745777441277581448833814681612322981815587242992336682215385761984885929308859934492059507598106535030454149346223153559750731164078601567689011175100621699404308804995471363903057041352870988993765806598337349053924382148256669041274450158707448175421168565651972679346439822988691462200765574474141349613261208670475846349090673351293675446229330430019720168472670121323224503442296943022352386519155706499329430143863701411854107505387529770632603059923851675588327934606119611485262692249471629999308584707356962926161056979163699111890767872331084413184052942912116699237436684304565452988774667805863548712926507838255041272581405073536472714649161637893502136862587333955931501458999390953994297616782920324545112297082643145359103017011918455887218478321945501771434999027765746556319755014738944339159140329649853473959856702272281308259971462214041655947088503804745530098076317284323348850053200717237463153005116051556849395216807896041341004592175035709146993837581783362220257287791397328470222377142514333819657039316724336543070003352217618901339470063960501789446868404629740688371490503337967464980508211584702025133307946702733290692017080781585294722501735336957108051063517462112518992109912955395258057281692603722011740633760593618557196121481459037330430134308749749956180434262528814010408183967297696646373054133283212826316453635724259786079239744561799507151355765945952408418537279249500562359443666108382837333480321602180877087297587128177242010520324039853277672909835248522354903868116027720030622584238999118025237886705870237555581472019663423489188703906616626648986118772800488900036489860054947231159701300692162611754330516642304405615572915726283905705182127105988015254696526255455952459010724560189612101470611525112578875286210475735531616841604776817553699652426775479835159634887521780509319546884859407084035395247538150553304425917713130764424655947894500047224715630842062810505430176191591709061395276818802844241716860191768772912397684964105177797573361739917730001733790506240781043348304745156053220938957828834273736718753665159233936475187277513553851394747579169233932546022002299861716341236827012309364229884399287782467518496470403539873540795620675574934429487190588131889754442179922479993716129293349105629745529695976581955263629924000799396824999455684250796819181558802943190614853602343178474297104929014751190930203336804780703988305959285084032600989592919512371312492596520026786993205854125578079353355522855055503774979030126463313136814150769744592746667400639127346440952619680686192536520631101517452607138157424543557063194400318788701038380946727168998066450254949295649954698468956038812254027106199630727606665699267186236877330766601803724332349944916836531962171882601796302843064957579680360787212904915825837407759424423247457969792552222099546999044935131766992347861317367069810729335769519129197535958218919561762870398090821322722210364915325424466938687487207098755252470674538125835772156119794831442020809867918003547700293687606057358536117893845414888444279670868203103974262273057660737645927114513946982875931156660192542866996187007068479015388150043443971310519826231609774419673860227091946384775007930341923578898874144113068575962455874355082621931550365720833341436789878302944889124920224683950289968771643017192514574315439076763383517548588351573093981196452347960930780999569808240233665232162520143717692896898397235300461893995316670413884807408588536504983451222343362346530473405584184014380707268735716074764211881689651115936727562609341849197441163359635661147831723455444706314184622522240576285600308480985697287992008613193188428614605365899231219041069349629531986399007959773354090872081651564456231132884900825283423347541969757100578859476451009673639912560518361333674875542205299366361878680549375760065866718369796380681943439410745153246436621669835663588574259552160580137512876878047460572742382861388477430752182013350157352896430350760427089525350217619023749462713352957344343336796294296426325877180307697910039413061234848569832825483219216439567968604494272233628484056349405465121442106549184657909172008989710324281095843764660354076261629553271243708662678181780391053019963229233200689994433435533895420881013333458642974616612924992442978867513821584571885817654308420054230449112355316039476135430451149587663217705433424715389709311165552465256726317504287898113331138926366284326860188219910317799464585793219734622098294289727631362477253580251068898602014263860460574151861486091913590311646711347818769212833264435942708021357872199443192126452800269168312584636713757406646280402201635588854246243874332263142604202268576466679161172041072939868132016639274454445121290282939873101664018229931076670866353670693235529478702680973920722482655031221707537950415616935465068705606486072502821782631059528829240781292806292037957517520508051487850173507169530185485013673681535165058974910238932275393921128941979380446936657281778371852805232283537940837083970631795341493402254940029651733000897191421116363184647281826964934647991712805431762267067620869938785547901084040021032479714646529114748348152194660036813443143317993840237702287961611432950028339373120143827863716781927000886288790350392991148200410104538247756456032383466429526659627854444867606997166426536732647100806829534408746913254437149596590879188541556114302107486740236160901694153243680075394357966823737829770624575074969612501296257531548615154595969946896930656097762220914840202788532450489480491863121188372722630550302510450294994984337523046088331627835096769549626025756058378133293501055797444223881326753172020919003861136635817327317265978166229900328786807462832403396934651472949683937743906922555233159913415831374089763870595246874033035244716101620222480279373540152743639650072077682785953871654452530400315969709130497028429296614730267099553528134257265257554516583724892649612005539903399348267327215910783239732901720902530873546830495128001448954124727484738543917883595004425013300038523591620782834899761826910695125685804623248248955064956752016387260533093515229287085448876455544287020324543107198484994035939585948105634953458196287861050542206832949073890490534976811498684825075053244902649617667121031469054040951999411122962357143949697801358164922640868605023143299767795539968450831172870687569924522899354352479969279170529661552920802559741207348236959616479642370538587930352080510482192144979794848720372808566325292678191621251229217858715311873110739120437961053181030394437469972566113723253119707118533760999914180098798497832313224258108541963238821702907193657440228042651502649280576337353260840846465301628871874649337231339753044039808983880227994826709744093908975592941279797546615897968337509980112953550125107612854315326419791538745232696432246784576693323638321380257047639439088795699308399562897798728601264502291022096060799928024273576615012191479307668788779191087535212576240187476240980565280187046778132270457922181536885227556844752512917834237308005192302025611415875287846631309137678862796285317731788887466354921451663366691623055548412509931215470043088639030203434126827832488261366596827242076668716474639823800639025672978742323236057378420713814982548387678803662838411290551499689298730422762812661110656643567400396036352890713880004483356837460979054508302776617209849592572324590254917124770504896653414937493512385937746898588323429940732148687956447400563341472464536596947884026024479704626198357319113461018021399214992007358283380055376391865669895876636031738087351886779484699383507890500451805821048872334650669933378987450652571477761759330047792331049456060336469352405143222798388318133531507377756498475444644360927050309265406494059811336812664143972526845901770369580539228897478112064704834590998175800270552964217605866116283528574802248773732750014997352071279381204563336342522960192084928183740073464015464692478713337727774504231704553082905090388715479935059451753454858092047210621080559838544845608063544247377072021980775023805753682792693209606101296278783411891344248601006063456128834420043072202323483464526149312544513886277955597451453299806738387914133530264301488640726678220386099961511865838969445173312439535183976334294414066089592053819607474962518499024126335719518482040817604789947047029588586405772649305192169688298294788206433204818603512548534520330441156251743482218565857317161487125199960073451354189517042929674214924357607773354739617987277391462011215014384671433604786388815027292939513950441639929178870271711911971458297402134408031969432673276285360190748206211645987587226105119518244316802018381782343937795994202208819407676373211005160670672919120017960474893302513415471760934547126220153532576429716328459168664156748943767016117488093276902798398161218038945165772660540131248095389482008000303409776381436005077409007880724827299703676985810478424143838267721834889523744403243089590433621888312044503208422624764457534880474069301174380513326089829992021636107299930063543415381202538546947027167666720141389476532715793227683201961045144237160857663073430290792887506693152534556083444276025856111871027481063862998800031336302477159164997678869997521216129118474467407227430743872047067542125693676892357004800238221101124570853490162871220311671876182592734052493340631801903624376167007897235921959583672474683570857939914407339693575629179688965189358705169248637656449300765140320063914028264089405331133434750540323046128963936244914867577967303369567955357943715502505700082702089498753772350389291841197825438103242032833787208500999992952495418103463588243839139361813660199416441290561045867402040383643952130820742353782484701844799406165956425006274686301272850284213425800870814954318773503723845224053280759354231246741220214010377975125951655445199736031428861328034833040669214482893213161034430461964395826735980932917077558768864991301736336267809301050901008836788368485525728511301064159444897529809825854485369981091184310204874134419834552483786588752015298605237323559010619853941043121892842896041317166487095660839978828561413084841614668662354504525579001439581624762635218456692098687790965256161321984775221175184660792650408683857027535771063907705260329358696112743166645716890117287749461648772907942028517247343869888772284547614743683618341832449913776132267864907013400497716549902824629069279553648811031453807078173226793681921186992810888440063926997983231570864489348391094575298756770347783934252906568577780565495781291801421669186218277928803919305919426469324734966824067061081340659753561758191674838919803897058632020550368776734103258821325037387805819929674257352259923886585830054935560476909252233920826188191706504980210207109638011703401975541324703561637471599469861498550750997052527366810540380045589072972421536994521995691427767108044512956008714565244007642786764916144434405908712394911413107442068639210461153379395224892206833159065248895980678441970794652828727635647116210450059409748684190327626035672285419539253687367661171662530727162606957724952822582895148170508495056735048572957125494564000917819625897760429544799724409526429071750486869760680067311331586373030590822638434678260005068395649000301322346546644511458641827996367276226247227181057109078512054260860402417663707649559367726158965899731595852782132787536434589499764765064539069017021763113057848282100682602743404152951748755669990174337092865810582554802192314277360042156580235341880969967599910426085196624109474859483958959885544619195255622436218278551021271340607479208487074850503294959337426174156036630694843025842636963307297113300620961566747430034567911692003556123306452499573455835856442544032635523825761070063465582181684190703340493100669543321497886380835537598432513022793625317775954558092828585539557434904673867003857936938301851318057003100739508508510358533347744096669626629026933177177237431160485041919413942685647020336458884863497030897822101618768186101971594304417999275483833155614097822961170404510768818479144528696293570232781687339117559934492491216320720345796324181861182558378231311016114972394296930612243621056341406330863596354923786392561038423747140627477758477954987965648435427712702770093171345641439863268547209953506800513428268997675430849679954261603609531234325097847315883946711535299326996833188760152790187086830884782722975329572190246372754492464041031802199895761572973690585157096560289814584253969780441019582350438002015185544952776532638770993948725106282659246682552211614157906789677404379459138711536211459643534573659711822296544180995135581162637860207858876965483524358725346859008396628026118594697154099879355431519226173883703898887423574270225434423184611506672778734580809945306116432852899642734429228668705296442639692289881463469271376824418661646226905103673102083955602344913958681737495852627891017924633623283021370502046428582857797834582988787641418193886112227936292247340775996936291997553513945767433589095571657877302754944928064351482259274897278017901307273457824183989839958192811223829644055464231392078056176526709351931993042418047552899712847390088745859685608572732401653652961989641216532221377548746791068793796755236775393398046271156888538220098568278987875929478906371983210292089859445874003840147536417443144579635286047635157741966314793483647249970397905120881561880381073953899540374225457377488584917946705073143196143401574685625790811222666939234019208342247578077611825909054548609827292999579622742640447518784829353283411201676629058374501155698318524507724607302340479937858523667189375903982373459374243807047826318033093563283783412836980572018650875004797988341418738004312232314168979165154888977561536705473243315807452135322614905483576022269209211818770185836767884210155558726627941968155251790375075463136287177638588686237723435222437646722784902947898754678803815227099937792533490169552251912248036671950554709444192297767348961064186926130138161539628727896010054285306051075447348884853077347595179886012756393215835138813370363496921344709976229557979616669569119587032228711302861014017146373297843455585443514939200028575435206825128303846739147768037505025829049953245605041672584581777717169546671689527734747923595715735024553062439371012569174557684484334415597469683173702652511132626278234458953435987898932103070715925029653529812834701230380072579602077173347903160924233712221845852380190171990276404904889791735647673988330044361788293385395160631671325641660620698797964056452374953433705663187082687642771814224859860124138454311687158337906111992777077353812005247276370221960505970924054365817697427621531389464605909581610107563431191438869940163023041224663858051917460203568730732273015971650642911971329548274663424188232852142734435090292600477837741445993108238183825028166252953028070417874421345319022797735861593176898144294527570520719346149702578609322657003791102286673618534744815046747899698499517551854733203028043229899302987618008773860032946164453646843827744045885349836268218437731669951464360977632825291038221364467309750880555655665850362715317569976123516319039566616529489647702186046237997207466698115033784280664589250082933665591639780060991496655741433308086975330917678049308576426327389704640061001141950661495169226184961672886427130945719626772404035826610774190683722553803600758999211286534152948566191117601869220581839890064946919715471276595394661172634865504558250817966702281743319356721411866501728807798362800861844561102101250789082034261249528764760524867501939778754640603233744825612582494721710510943189081537854084042147745976906955344131569885055560672643061200926744264384626682816460764010131061402626443131935304570399731909900697237814960336827709654306518626946251009415470519285223229358496408210212110965195638087110843810642250038590359118695717880497487476357781339446262993178906666226604127606248437035729635343486007988582223523264096535578532148961883377588215527785597585485996306982408322164421707540536591995083493885905496131951499302507917651981352737184747486819619687942845735002748454681984196775458407325161049104295339808976508257030755924476200117337830314390756605463018766683552350127879014937380078300202606936829663527824072913076470792889206453633816899234979559560923682824403134898796910956238853890322628171047323188368821750191796084205649598358156565191693236596823558917801068326478837130561696719623781431060082761711893042379226657135549631619679926096052956137763565659387012068469726678120399213182595866760227818166626661231286128201639378978561837749100754146345630183717473350851893227195004173807648356088615356215777054659168878830979420113352779198848788980562154456154336496262200401845195392886733083424486564281607731874453544713452003194920344848462034805927226429359097391723183624578892126243950345796892458975655260592812440689801235462200827359705268932491595316925344971368871361533805619820164394515005738029048686454867100089076339443251451010737781420875424127293784214625098881171547507552867004738745815148667559893109203490273638788148128708352219252372174604009763774800157873236758797145983151421626398716997835967634258919554235458059154619417913456499624104317839121491807329480426060926849292409676686981768770568139360905845939029595471894862980118634641641678286239965539122811928189505646518797449629732719315238020895152178786699100510019581315782837030062766257376257772977521778595455471265280917154628251216411105923536461934539522603606179321092851245270010870203126052069356274745156347432912200594312957949236334338180107134099893922808328614572343729594697077683479022171389468776901011592051293984086806250436535101175186469894791333642423589452413777934233533202734062325730009882072444925267594498430374822042088138886019656190284278000078731383499238083543551821148278113509536777518484388582390765463428450423019292257890574599279301215790854953009934232592960366278893692960897644534638284237010503794492251651751693356523156421470493506988849483648681025066102295466304616649769738284414751054933710957337850813106068538044503931904549358547678471940293876396687415007651148707756534408891442902748457239940243295821590734441931738786645407705517961225672752029824706284643945045666355222298212039809456878360386270818080168827052630664158476127984448663290431538163535797865709026441397730332057680274184083220004827617180057644668157916686637206597779674559805686807708582466575892775150832790592649994299155378038549046803212626026333111806767005339386677198236782659777971281774903860535332638049980336237284705111651943866862447635683508187266850223547936637925947840299854769524937317906627021414216248517115425230135255071588117968977704187660867873368653225924816135146790854762430116947909837581468814681043155099803060410333828771142554621240146135258775824303714513999235878464123851269184520321241502925886874823784892716899333199436369251182901885883530480741453149276875864118459391165503018924245893906014322723023600862290943467201275625350451564416521703608745889319195736768495815706912875978237639789588602332953559402742642138823693054331366809715681827499144902953525592871722800214081284414892779290439917052083142917564067103850230028238534565452693436941678109980433154991014466149996912762297047398311819270434589942333100038990444286620827441489789154159401517585637524787282534671390489157178027137892980331515116553486440396959926500424909372858411803180315585229367850948383606539475148064392454900253817895722416432767479147751317995048176974515485086434414375592425180640881966111248490529604384244660548186178666862684251727636070487113829369607836800488559467167149348413966235228631714812195984040803425690000928513006900987752145605098586463095259391994088874145683325032340884974019461688106058240509674309304372399064631706288933372406200015031550095048142040911801493099979676742405217991557385492206422683334256802639316611650850455886173686675318467789436454475239925438969908828801213636952637573331970281954548309572424784697399773207288057655478589782858839515282167961789861063581690174278115415631797367858280567989714902847208893261692562804813378057823913701622462869844495789529725551760472428188859823017644148949884427906702013905357996987623893147194962165538575123343518494811412797618841806787211825741253882497527425155253254193852979606275498257051707624245406421829840217824066252503132501654050724930693583721785398388709196829285699977999997071263088556325376472059987044685521864054983819925939877551083779819768928504944471714573516814624617136864382995484393403194435626040773145710232425914568600175910352033468465589392846024535870560609041919409439048626494005477691425286688553849156092215088875322101534347829384724927612016152156660658648537647991077796971598005463804422990576258230295968207281214717350127300870741192476163958287021838797529421998967371207339009060604963302206291927747247473510158227728622299512355798310789420056984052842474801604189607508095726779573282190027514095187361922591117473843656864054371582676211509135402729482962646508182619221459181302959367995621164094613196623907132753287213167526950409452874342538728456866756921648354644399909942196325328988837301049030503079525804103533572696313391465226195849985969992084829706911306367909398053145216864021132564626433882607072901408198695025525239027809161392520231290766155922855836642218475952121554727873554707612521839300430586146761381569232131065980621544119155494980141577135032304211539954188231988878922414906479425056805229793689821014853717277081083437614787912970455061901862514566939298686415466360444862550298070547325069935281015711619221499117397668934026088562310876895205799500428008441925497108431722113514830707444002463042503353673478265667607207780817875784243518169995789907148261657582245985868503537773338275023329362690742217534198284819320822444712057659094154290260162810813000476159880627360466016955522844701613440011709939787900846517719039015561536421862233814320580332996280226460995421921550346933146866841680470160949159901723367360047168751461805300199647683630903448179511929840936710254076008621779750656063267548108710383369220853583896576706054608776579372536913332847058399571557374508956779950935274487753187875702366462444460740907935667959145634848334418414629418681829498243260025301968636047286287185577581763834083575849462133139056914536453391040753692848183815462169744162834397233668584836025232111129013590150647304058089201206561285165028223013708086796918943665145999074443288037304900328168234945255879698988759684769114322089695558678821684725096982693999910085794898589713503060803317923363765848864111439645743692276355053001748279685340473617619419178330433936565419105613756712864898420705977529174470699078953330059635569788067801374561042048250363159031346823764398421289649168351638789664515969691334969302076453631980508960398638805585020367550342804303309182647215099841309693684996289264699820976344811032567385824452430749667145398044421279264302797818226281616202914482646230257047845908563736407357053895618843163586660132090746394432309283153153390597768561814194713204747607094281032211639890270334778518833643482926404875465408609760757939158674196439680361829200532353490257431915542873425315977500933280584867253147983251984888457220523716160875232748820122583901189484075845232663993993272212667586998214880791976172116098119607875939990220104191254037974841120361169156013565975940927830764249784984385284942700642935211757209652127228049013307629443066189043977482471734261677846963386464354641208274985302367458960303608025874719246302931802489233009562602471457719279841835883282695974313398421430794617809384848791438978938277252973566424244242938554257290822160186735558515784194853735140070047714600011810238449667807025355628213231376427954177414904374579125552211277439300712400570145837787705331587118667103040861451694885733656633684337520284740880372437843752869789635156927746901062830852613150571448667453052743931975916329934272957841046425150195516952307305451363388794933628539638662099479805644062273710418535230090058724355733019732247446239920167956784813641109525106100849819985957690343777871977456442374286418298018068957268884745197002456346150086006834090853640500004597471538543642513271940467877993121434639304801448938472280178430089446215962448462944385902981566539653430424940580675499580381172855716294442257058276850481174552300640131233369367634559270691878054073054174996133201097476401264222184414483057709528242975790133834235474618392666658149632561890530505482790244814877282929560579416270130890506327757881483077095247665973715048419210185293484634763697168069396266609312744673773316793919897990292921427934974627320228450115356937501979504941867349385323210872013538141627682823489279912041557888469098462167010814992967502478381641139804580104710687994515458175768708472352761192812078636597023786021455054055671585831953259273332053547986946573168328238818089719311125866282705548031460870124528796373592064733062779142787212219769075228956538249283680186537605237654772626330510610926657628749039117935142505835505506987078681141783868377382317520106151114535208083296798230188093201704733896772266554355949290622994980673674873950011283150244420902044562075483473318827704742686316647903677912234096409762029902629624720674385411450761494390721410487054671532085574718159754845611202132670830099421444102220469291010087734554849670915128256575110656321906821965280008698857237605775466589887517107989432916425339472261231159704065247502755845904066310724048948461623964219798306547757902978638976319957604086494869290291140114599778864011065248682804219601979679332199642126123819150009989832542284070460715156731934344667069016318094425318772241188790532238231095791367367813818267248453139325098798766512207115472105057797703769523131355186959983628797627603161384466488848282489690187454246573395499089469831280699522477911898698950437190645617433637461855877210832874731641383033074645347676084528373269210566878790480980031543524645001212670798058939436543937651405739683619095071369204662567823303954621983743792500765412505054318047544196309823629048182234247137536678047591840681625696835833265211017452099028070327710445772079431564965191882563755946549696122658862009410885118444862440850917347039635614905697799249059910337991010222147837112274110017919377866278868291296847582334247928102983211400759045768701268136283227087815061372531751660495520331801614558247508756373999596983712496472512022827632821139715114127605481470062191411645929373432802635137378415538453595972803426444285300264230786882093298346858083522308187764904495744348159435654268747538206434012407774885354386513419940495829564056894156695920475571554655577665711755909333388667268524089335830783320969657094500734971824344324428422172409884483497384808813893711945339494667490421219881856273958651269431385005592247072593096405587183061433915049947348966256499384250183320575620264196963656809746828558750311047261743356491045456255964063603660022013337428002336751943652961508178229462265271684005688675116508714786305361439405203015723309231356553592403999893761566359734357760191697066727085033987858220088693453581245819120319614589733383948065286083495403143943026793400835774255633661070977949435775705944398317039025981438835843576239773192175050214691882907518225673618232881827092685799440192911817043761085013221031266088015105322825883284945324115186746071099906856265946403361113234330487429319677136706582982422545609922899080799242444808794812483511897011521637626375043450663050710496885773755640286287007244450207568069388995613534762632520769199069865462348522981574285699579706101879993336973545013067620250104075563256258732086869507520861493262099627161391627907817315590747650997422990734085461795890760500231637877587042250077895110302168483881009027696666432859224085888511152262995076729495760149105954615190142137212253310701935934705403428826473979542561271040633688237874197482193682845752848592130341675240082907101067213815710233872085667267871536845989600388990870362938041143243761589661832020471439752788914058958825347480436375476136208713380538578272880330854991005174873948430170272608379055164881699147674665536316839144936724210429130678729410622189026831333018467359586980153262201315175149649694052928062384520214274246460034003980641977497850965824110206594080605870153443626515158670957386548304447740702493716523371208173584535675542124627497504165627391534055570726557789768019573625822966078982621805231858414533568760628723654128777062512453180119025261296140703459397145537970858523316669076816130464638245554968118351846912937128652097402020693640915140819798486099977264773053709021636803823465701654473372719112094269609577089604815494772785487565962581631193079745555649029806356487181862123225712070314831882604725754691225278311142684138719553875780426279235706837307916598501865032663351828410881606720367275786597302796709968676649043188907874338170616155385842350304909640559743485498206486327621008762769129402630902460265448591712630157326013353644288214267981126162421548718821109746948026768647189432891348223446980487576067134216568878313271205739518163996322534447312288356684114543787363173899581659189580368856241411617654683406033461058402218006098124780298493367415621953340003265462230638763649065674542607733892388816400151094879920275293667884519809040899385193645662070931025920291979539248865832239181488035898550364687466665395894132296074387156467801726948423105610032448332797808200410444621879936375925222378665809623987094119678654227995034462187236782445993409406405432553056849807988765164069298964031735663252914227953817650998907961653706801775521935431667926109329834024838292404118256812519147690526299436638321187828773614151375625995214266128473856446231280211512901996760895290934619071201525860827269347758861247326752895876836952909943273894777782662664410999522149981150328384210028812052321387843413335280199552032645359767346313870162929718559030435727685597781349674074984300146376370799482663030053511268768815049118677269172017149503122702609834466043882311977303425321307172770984915468028470293874281783761754080777414681681270234519065706783501703232092821654733417357916035947711749213997338190868578088861206651702893567874112633064097424506866865029899914444711110968911249693319003889711349371799539905033385997735400273291572601703458351609027831009167701026006590641778447634368149821550509707785940772241259506070679665195515003500961739051433357780686127532363076696798572109095345010577078307019117545674409617811306504231698006172955329931279344398318578480369217546731850867352778343188040519140976599653830851226703296449229332763204352464611164132066100954230215979469485091547333991795427369944681417570685321836099441202610910379937187622546845670816558022643346841844498991730626600374664018613833342706220121307207811320046029696934846412452933728218838953795259596705288893010344498263861785373154122265307883685648572370258711705994903799740240766052444260842965170866731127677810978424312051441439987867506260570015230377823525117305998402818740653334825188273337152053909501122628080981901888832541268121949375899333081171310329825516234637416847500661684452069544177957195444058137371947666639234500957029800070893854115239592689728097445875708530014368325413409902936495959344725233306577008473200507718885114210642040033751290207247775675722135684144891432459799224917491481034889900800101440173403888530757445084829325434020630118665087278954449124358061001218990795613623603645589183137202771763838552836039588911927332838199687711360893255076170139990911839235935698784533588985348739496473141134762548285592823653593761197257424051462159227062703267581566312146155343420172248518457426220344427641747972337661879095811592876752273173747027593552494439255718113251146267792582039559734379051390659554172600606769510860367442238731777072567729322192519664678237464183525574493302547163555326435040226512046043959596550189137197720235601393236838053424485598629349795874577072059057792781919587365270033511235413344998475284314614092434105692737575332517692107350238281438402306703339219652148811118101728387830589406732318127230780165072425633022148438999409682807996878312965316425448274235202655902864412348806689156466147212470642316538928204730797348036985177690258795184353925749903358027498453044324782559836223544927515214393783703888223968760858141132803354322993387554089751059139085406106670815899457074273463880753751053176358294527145500608633686009600620236763621528752225748030160839914176234494557308216728186761008936989925548288969371051914370913191955329012193922846119793036453790922451347773180737182260395009087967867812214274508079090176848388571411059393170917315293570115120751411963186182859292470641779282964395092444386845917083185512522617990775206155557140874800338509179376478618868219558842553186026956788351565066136824836164268951669851773146000144722244776071704662139964046713036952924881460137869599191281931483407562043524235178619524876948683590922554702166029895360605296820452138037223107900651579240467506094934185436587219740358701763651252772048273794915281480970715583412216918082026007939888076052031747891860177533481378967261459162563775676873846056560736000286598667274005581275439913166324104866812047331880160868638491973224262751455073946991319619061699871920365064515127152093850223463953671325107223998779143751289839686648200805692039680631953856953843575663047183293705394431436269133370637336443182367943181035793813707391565522447537123374778092603018532083160867359485258933637498336092486274140901020514535000883225038098679962910219352216002042200962143950157024133169819774472970722833409200870065421557797946882840639771596232308474922004216578737753831070268522553951940893561575229633799127799688392449023904675775441402307534143791362721103844625079586907569983356905904970317149542263421315553448191785089658294563558150442162916426800491238952894626394114042638088406886630587190661472328884463716494904382221331515244635223389793654209957198219309737464958018790981837592131221510028887463047995190841951211776592551763033462286194403705197090183060551797673473866888992295810143106974674315467977184070669045473519826432149460059044829201486125371206572518928639259850773342837284714373868103633156048299480086138340412137954176080546113696308360887447489414458145021159676454630905705444073862451694549987017784417369757430268322954170514487486074657681802278894263771364027113739469208938070985238140229566115192346752964492444996112235181735165211130517951991565464903377103399159354000037650244886978986179141100771028454533864724079872429745071858281399666981933110571821814947566820365163130836065150124916141519524888269948849739656426910428624179051771043826774639491905499192102011365473743506977598762640771138550060297328404980769132100935075610343963724217098564057266706580603253444431584110099023485462790596308003885827865129840336503125553732323583079647236303288047315596889672779103015915596021588481308435118329657622724781643406229955053871440725983448432578033434894972764289684117069763592787376132876243765933787145347570678577516949901793952751601860793702405931237636587621634801751886716572524462905825548314527768235331619344526435783943069820700276183402728345138716364555200411391238339743274376822292740060979977979110336284213909442649154652579050910823936049311339212442175224679677083620888645823654556258120033268409533486272842561629826211569538482260829734998910127401374891613256895582650467296784890632524986985267186069734383796015793382537024115898177887985052550001125565850185422198334239541424447995455871068711063490328284173243171206302699866014779738342481865179822765738535393921802518947044561455993847746774957158144563948840364592947790781202774740697359909440606274850530258783773113959640582341001968048958317700446335287936792616750502171613723390248078871877304920819056301034508234531575776946192315670881639786521301797830827796956973081973531927832859350102564127582187314234942626545413683312596241848090977441372445721281107974822144593973656138426495489614545140694560089808508238896717695196906993102603125277730999194388891050229207221113729348181917227856901770362599815814601588937165995991484143741252818630661468053034726606430634425772903811178227087748509143937194190217111971441062423133411531232043879062950359693745532026266622981047556255620876629004932461097350769207315066830754723546583839071801681116072176742922847077650498068820455128731637941331734697942862486769541624681731065939466014046330440001660596872502401848537936604656275286291958857016628040630567843986998520999750168377162846441007749483794867874712343731831254042244826637482496608863025860408558778393641137075791764728701451007632141483205677686504545712300348346911345121043933862974536574504777080331019169227383884400110709125187310127265663497498402007126254858189605463318201464804074987049620724227461351292767280673353145475673289512039664128428359073334957443500842971914057161133295823842299649386134907953886421949985037913273736402602666349670324917803950096375707077188680388341123940567226280111462644054101347722708680702168289550318592374428891873967157477942301898415727247855838607001350583105317879037960367189773600571848091057863699802276878885230591484446747209391030231833387361388964723615236017230727617845807749117145052257383941032918924009925156966255099788512892099474549440316768923249149023521800160793831561009146751728602779830753567431165097337143126796810489085722346377828222082194675646229541149025195456542687660131661543012035597383516219781076315529819813007796455169883430108180958406261727631641758277298188999696755471444468844830063508599315120598456143909635969117525279816881677434663269808166298907360276711751869481255362328155966898944074911051947178615509248412074799719675713401617813696701548897940145369864736482819322321160917311537367792012536713843727394906995838498693474129339111331172289396069516390010535852537851375660892558776104200869232718639288258113263457893170903686904044368517555622364882011535488575096363387254906281110679819646906754345735999817218144936809142997131563850056919185929664582003894996538044014679651435507267028876173951319860884725538430847506732258390116525171378757342573693511279604499231789043433979336699633493583804660329725126828801074735125793153411060127133800825932466176660671451161782231260847016956898435156872768487168467614446161799524741241094528072152556281346072467864470855191547938810859364297286235411398340346307444041425574618373312748731674762428183847312352768693725929352891410067446291414494280026597983118115004809096466612752462958320694819614500616169887276929561586089452208609526566363945597629918274312559236676776201215086232008868977687747046934230588507053125436523802949338598839156435293968343961018819159819212040738799634593979689674822682541268505571360944732734618109332912309942472187658226582333621465805712825389466357912713568693810696963218785404982537817371356481240960225549808154206660288680024655115088412020828711762987470973905886368248295754361209936825435345256951163999234113699296506171648931274869306846025895044960062938567890007415942270744935805569733255502073882294396329452463698315174593840934583570719232806575628358306752567383393528304504864690435904918362608063638060970256439631612568748078994832519257161950695127060752869815398580233267489423737611697353746327142119296252135960761662992428708344967126467291746712967954390178560636072014831338131211947346927903343175974622938088566933484750498061529014521446923875743386976133243521716126366578797918490770604432241076001977259454286084889960471218814678097375462734799169174394700936129608019113489413984114195354144772932542685992095521738429556653023394913535381119199818998622770434694444578327719511190901661149762520309540625970689518420893209596746867324157627720510965259502407902515828122752237584744635751944058260436289579760171093822181648748417654060162097462457542930773291566712101515464272438755354332536747757796692999534100328965795617548819848455730813424332150438736045015994731476944706745554585580719618945233876170207659903981102329224837566941917814420154306480403447910061571606255130593123624612732871636340239118941650909692690426097768312397043182677262035519444321622305714580187304781796254693746994289745607123956723675737512587066058367388278797787061631356673663942909948583381214359165059976515608334087705337380701334039202121848147565569563079640466735738526332119111656171918538146231548159701527138604764774015419752194044468602261115024623218296624319074049938456517094208894088711339116447343742511425819203527271343951497728663057406346391751650699836916886271479985370333511585913004338855784689138335971888260948065823369652793355564942833161202198669258739670721954979802581687857288276373756250018191147187880022497771265164076590774709407777613155318555080683872682672131377687609492227982629507257778097560932052873662604887259637073484385227324859738591680497782917859524410256901525850167999503101260642807375617265457460680446920426250837120129325724488333601952940216073192953464060119720028731288561392487425211745516942194290446121260451475041439251258368910991684241165709860567260567224102474527731334818656352319918635440697576288788221858551250287873038850572053736275109520942592517615984699260612797384230602020082719467216392439382039930486440703443550016078522258430190949399752123827320789304274705352553602418136351021439883510248842635341830532794481301307295640392950071256069416707892897850805245985234505057325995015777899820375425379084165963971498768321606693568228065113302617527771906597278314486014084290003937100879518877235451187158141553507433488841366163133199642199652808777059533159467514944443969160142342753833542189289954683905458150283962680276041855131448797104015987831718862856794232605737045124946692606014070437099925988729515917432087445261760483031351562977041092739899998918894692262732726558127984977984016211362392271067159901479345001238120593685404115642803128245362945936323679090100200939430696412547300473731780602705989290667832569609376515879541889274438151663855121069045707832402031931327011952505582402645063203369076883681413755260268008505273523672547121664578070709484459850790749338532704930212369508863714699266610437076729033615335163231492649383738300241025768154369374902996281477349974668708722582892075626566623878284962174635720936049711384807020062654153112352388794214438158268983361833597678339537908696874706255087283067564355316147229993478854941897561472859382117859694716143301906651188077266988646988390449794182232479884868963290941014265073675170059028918900988262604015557441985162331787622318532582547040676670778450728484629512645739843900988460372274563258668224845400344544215860745510851121852442012761268912520020353585628886067128942529578498038508166745014043258827728295004470874839153317750843410186046666317734673046002568382164537453546371532790562186510975137665031030574674344384999054969093471812804517057389088539256164991027132918847173562629494301240241350015880557244595001114782170433678607216154024694685554960064669002240202596206146843671568533016476285123217867747514764277252092523402245668030054382326155071609860018083512693352445198279015758297256217880248929106316585411906285270425501999381204630293403268419333047417667906151652169852518491618434911740207146036562052708289123546006732421613930842158850186362448288537109591176836572772737792597716549557014439534783769881279325699584597138085949034716875651253262192468015364902733242343670788859898343441403599484343452392357068392014929288082173127338562109824183860128137075981435055334397273966107658740554024485836647435773963492807612186927799165003802481050790684617921595567300189291241151116975113561144881323912419584853757924226748562871107467529269227431127184683925407710185399089452312281141284221348366837905493064826503643237415211339446688914431806091831340355320450634785261201189802171292826634822256146944193455611057397691025083200761316623783486946034959686674983436766436852568100272717578976202874793357697816735731599171529304641507612149531320499827384506364557078295888506431250303191016489707797756578162228310035605328974944088021615323185462106011772507376115518960296769832839814819808847727208701924009983004125238630410160781761837846505263043417418377242937973398326215927821285607135364395430465884846610040358128822177210760199913792686482599270744897695716628220154400893916991702071129253130333099849599736535279763731548426845130492574492202621180111787479998706452284066283437645071751725166135815987081535232312262042578436812158599738414081890066528309402750722441380337121447098101444537104396374718102029777942688838572002665800431340619848124537111613853544230000995443828387285996726892709662161788845690648212939558580812389713041828953122520694977085981781986715153919305945219423305014782733396658247214485638626663195589636078638508123966510814910970391534120031793008392412780460719699655266574949716099810596568521964010998611677104485405374469331044978198238457660654049214735189428994513361775237638497183315809099667961698217136516442710744503560902303602337255453414398111853132240304766953865909753953084341762711447681476603087951043723902865516098567008833741639611199104617781180608624348637559375175051140215687127029664173380472504357677531863442683323587712407318228967017141999889100798445299354383041592716822971133360642005065249650633843849931036905050457165817377208884283872146504296893443128097535068322706463460467452761038638939368671635054038258921288287347440534331663849449616962257020879195104933438175026435703883285649035095762089690749638844300246701454894862692857460774395009052170922594295059826422909498025893263931518171997691380569877144398050742132483749375088829196595817151456970404058855405884766276052181289768915915583115983664577680177915439229545305944616185246885878038763140896132989884763448331202963202819104025561495572683975443410910693317481867832412640593141101430330785915073964625212348280113807068507688373083417578556753894495137263638309866426872693584530372609726317949828439063640275600670887480226294417909182060606090177384837633548085700719512922741967099494904865378631747025006371571847995169923107710430439633935101146871298075958656595176296865013048084253442976428976980217049265048740121179243645476837429621609889862937342862196226233841366333399942585766410302186662435779414752748600499789597039520425192247022974127118834193378612596895961777921219068725224667383952181882728965510941989453251639195826272004542834025087727191566247061279552183218298518777006957096939610165443208652099299055829894663054582378140976378773547146322721652279774041494893439268783331237432217866647115504210569337192591466179062593547231038237612823259814229140736542936478699706861204586114650369264975568895905165867902366393922558665486761947201743729808096890323261028092351804738183175420237636409456580443750459663727851124936483814204131210500954603115028369382478080559071036092204604526400846338296694222753020817664578430307711318085556043553825631095901841306004253652870807157920643582182431231078524151645542940867515988884230988543949662572849659729985139037737223666653002422793876500788189507883020446482508080969159253789547323735326861006936501036846701624107043803498768828865558078428777822183105622127906228748263512054318198086279730522066854727674197673556313263937545923211215705872728762874904851734633092350813831957696924263290116673049062537562840087734093705783352413758574503807234057960646360951486994306588920153250635897264539115926183524147259861154581224555557988438971780578796928854593057044320648417297404254596249216498262520220751009628907941967943835949852298971375609115224539294407536144058724159956836537334493277825271986225273294424614397691430661614628848694798719488215699044664664237270768107907163078544162356696544557968794593591137012270629821969099345635615565797701732067349912179999462414451102572585365099381769222054531328030683918094811069839404372551964749284780808613917401769320053486070591850241153617127028153547439315989141954523380314858738578797624973034520556899879012994927946754267742025124763331829140467834852745268879654438287677463153435205523413798041883151090521594412765978673927029484312709482874248706298204046949765182151208881229493245154991154407383474625444742435712520076391035633870265947619955352601540263654069122580907730464969194592205898917893590806754911456301293949314231390902264052912050948440120927159639527468994607776325853208154952858015847143411807397489465464863570895206093423128507721278329178672167693496456928724953765126591004172464627319215949934208781370893952099634171814297221823477389495150481560157160038242409825833506765630293833614051055114997593758594361177503813680474483745133787297387961212702740069831218363121292808257626076086102921590153102391247626606601009803550066686261590853275905723132789735423870710763633719470518224140304259140284187198276243422149278640839701167996331721590628831359696518236740502708497965430169199302353292653620645959247216125168635868994419203628517050208463727480614757712355013676283927657138981395026283229137204714693223567578696269172697612117513205708331033347778458770440817386101181504799330732401174419039943280098375227418421975239141417056516936832008006047341557382365628219163045188557145713778393035804066132225154070079804085945510844374306229331618079260259517373914130981985185968441061206579445900593589656163412702704362659638661879257522160778381186203520520014456914973575750671889820638284420242476519724886321146522284399640862280535545444483962226201509434084199367056542023537053629361862855875951735024852748946747429788261753241695504803520709647140449948101236974195552273026037195324450662350921785415996500246434493109411969039321286079088012727017709783276188827944656552447870205769631845559115568444364789138957130239355056208331213904295597791033946148668179327504141903542461070647602155617598071401967171742766299178454532926275087258892304827870725574605530181482416257228677748898092578783805052082084093761001537071666158713538521675832064803347590440770264576522604225200511554070221024191343903722175391117392383133252077136894048234466287191451488311334917586535877578188285403201710403351496464455143382648294274188719892365297444073017509684378305702797391272745624713061508016816214003942599247550064784799177949484162159670779822602913074329616312814993400532315837470044665499048198816824190669405830422879585357226933424130833409423568388508951808624522077490004969536472732073941056727917969701317105281724695665608445495126090205510462567782292919640994143136550506887462135131450744084018270624383960395770374448750215760011534411810572768875640220176399041723025005086427683032922645750671175696115518616999283302078190069550836583003566132582015134941904325099826437511544470791888886574343696236018939189650196906921498218214365828241972655040297255884045984851684461778491141460937570408581673492974427722423480505688703557147443493094111041397368459850570080978640127556931238278397438740900060827976511130107869178494291743791714882908579813741089979938341947532185219363523305857330070687384775794277345651998063392967552905333980510492844558717255635775715992782875479874069728760073560586179319285639832017169634234060537513011447926762692377636366959916763591684520377369262685273247426805694901670152181179007053096404816962782173307579669242131357474265306663367159720522700773902425939984530407382424409460960758990444002987681921895286676516861888696905203384714722721279017694692265269192200304748054620029965652519941066747137632913468946767275001385002252987273772157216438462370056530794811186042191951358371089883155307641725372354095209486887800106685851908519569581096610173579289235012959960553422185065164799347764029785645217698706993193181939100999966962374611368747711409056262561423814412922602378887563704199434762288432166005375316397866229372344158771804143640249132087228650539488097742567944224814702185672363758620121073040152226722061985293245654222180440589151460193829863939698920644429495112236150096151875601394760867107796004992792172487015840477675218385271164888227990925398028620927111333937743256683228555203483681727175805128832650358054682974930618521368724152445949448750884329544303146107683941663495361637340183963103189810017761543433460606479209648918630890018553604499902913445700376281656171607173453889548230194404462517328768390661412438285442760069703172383299127071455985235950056571835936729065991961507699946343341864587623728652766230269447147995169915115783774360976734691458966920322141060085480408666375262780702169822306809090712874205210735144455560153387031297470509407413964129892330758012323080034897906137108381365994836426988986269913011570123656586115884456776263175681635571843665886524056776286885448485409985292752878071583919559280139207620553217789234660378061386951177736438195395072244581190403294294454573282267896191146050668319465802518907144395076290704647522143997143146549603839930456460432104988612566879421970842078347426570391243342296587846632734586985995020771831245400526020353672841096390821954715505985441890641357517218437565302646721458816385435351606611072397812201054949797127439618602814243907860930845917875473238319124299958982360110554239807883948201596438497951973131029090102494700227933854922247271435737207701085790528848965209697383399059713130040973902493432137803746718024996625079808398670181175580402484009735783468875683555412810914138266052335495708085816733730679755315603788224559542456611465554937678469769417219998115257113021191685628117033717829217752932547109518221513897012502362072417713120292749415402371410554660660420769838944707502730018199890964808278179068898623628498931485919480097110593059560084308132575413455734048941109936931433840580462207463906416561016031422722519707317445466777581647111786498576946284538873901879369966583928683933474238318556052397769048042832386836731002909477422024244356351012756992147006375636934301064877010291542977107435639853591765872963153042286374687374991731030226023847103567868268891982456506288006017772697538095790114704077092717349679649800094124532222060011534324140618759569212073679654241151796867634961729957169856072967751081504593562308944055098822326309478678390578886701823985772995641012575267456749166231329856970829609267157742832563965379374639508078609818351253805580998401607089134575385419508284418075124335263224422912458260587976236079965101303524917254706695819804555630939954268841494347281771249105685427324454648067882140573000021923471022644068020381797423783161150315610707359713178655423721246309873338688707843139808487263846767272463874294497402451097194465450841447243032497298986312193497532274254515202761519164838460817074406516164964538519858795799896251739441961250650375557084772218084138018984539057986093793666611515777515137097846528233020022762441374852607290468809230522402037546486394419572666734397776536052039893597258881099219988590014359364856442503821957392426487185960713642264000659294862416372531969452733662489388182668885808709327944751830786091338429368986191969545825948304339743057223634769635959844740863025065970540920308694138791132768980739009096481794709288657801138351452439829604996236404228986085429394288284666513976363817968105618108711369961964011656865192917901888732284123098459864898874091201959093352375869561645327931658864224851102193194978726991932757042289934283874031211392609716177990102958938215960477932678989911077148640304402417846866019042293115859866968612539394568624294197154568305906379431058071029324515182131473451371095721060688596755825465057505991570334754021189038701384816879198536344589323988696574461420793264664670200644054402142011308992803818395439167164106042686023078070850299340527521067632345719680259625628936498041881432855584920143182978331306724260264762127846155844326104786941523460363823404238184389927365408327194938361497324974503490798565998946383176352149855558731073306145195335387855235377394828872304608723049912263868070860165125255465708083401020177299680359914868596594806344011973441075214770248756088174643137718285454344727649944981052463896266548345998112655344572613300731608121718473285295198586970499150068647440980677834004625263626213465619838304634762668634936668735270586746137003322758341561534550228499584607149300252619450962222601022885814723213247034675712138050694212444057273893760366003390595396348244488742220796978548057131697311132491220965676357988573560061954770141965486264448419367638752257146539751667674357231702184113832788624405829049871948261868924840093131389296239713090998004176228820966282322906609855626913544382516551814296380997239657007968301620249448362280883649998461884830242400265834642818688738554130006253736259449643984681623321033823472866913078230862762860872324679682198393223333864085297622515204794728921901291938161777283787124613192561902950556042200999197421911072079330885400686632104275720758624311800834585403628160421372245364414125408980518630555208308595237443061784689730970207075095107221489896310016916809214356057837749164482657822983421845791688741436412678860505254829559307393356995257370152058923359451627205559207822973881380813790943991930725970140196076254175750908506557289584759021242926337393885189607355807010521860835662588580192701162235403526411734168880989262072562936071218834250132920519618006415368445885073649890245552022322200388616411660206922119432814253406090261130156288286968148719211263582157293796775845351728957871534848969368407054718706384373131124018807022130576329604663464527060439713566707075569950291269841450305573242471990978054068717860028497473499997750742876812939551552170280296656477455152274455292564689278447814847239534847386068721956117904951282242773612459857385042877576631100406949738516164026622983775669206520161011191143186219030184833639156219005238170528384760231608921396792931984121355318354485321096021038455040113816481964934507882091169562438376339792069730688357664853838527474963569695184442305374322564412724858763763229657675227058014300416095132899195890713034908396057953761403169803184751309241221905885500181308680071325650465557357322315017829531167962066568887828101504368112920102866865192590289132653117408472561376142029457876279647628463755274776697736685301953510353142976019177765336330200180485877277155968462570622549110775333919569138337387392811369260971395179683313414311053749697789380207933624795807035305302370257207857534884616634422526644738957490440388372163479158363131611657609607056591312797710121050000997713727731837193613073300138547986632735359764879471956448769146944056150072548788847965821490984121627823034562129389974729448610755551058031077272311279772397162918982885308486169294551461342071142006254925660334049051012132294570815958936745953117000061888782808723829166198690641159131230752107773264978444206312605637968342915013712377903116743642211756822309235068363516770382088392124597996729154602631550493830814101981583946372552103640732086911881072582109510038775119523111177349510472766857698417433581740387952136229359350631286434901995221214331304529699468982102388099874013790807055498435590200043456259751299141864356824012354041442303641018210670303449374865464504123394694943803180109493315798764293363608097076694689284492945627705703660356887988085629594583074922934267185701586663483143914443315089167335201549917770306542901061821383770212765887461244483384003188042801172473329000580601176023853362050606979227013069885522911234495870696537775567258203904185837182614114506887913021343194156992270681138964452127851666320549545271632720257619601065315261981000096499390930994895592915077069091288149276200346419282519441099130542604982083996308985435401025384199024140352728036720915858850797899086646753661867065458275696131279670871912114321663384514949440325081560122224971218670058134214120145044452633124080321054994226969319290272790782305520533056862622253784864607762460273126286242851338260712802891706590536404783607716379000766278922369775152739866010321911238719613319561780398362800939590531362476107997372145407246872435296175899250420675695911145888014172559420562544388609283232602706442919180672492880070188295211413228374231012416396009731035089537070722401186160919546897319104303747600344478393681003595792923100307968525144262166531508309712256320683357037563589040119855209298539269633342398891976728597463290312935337182337944942034892693541308043341746943960663502840341802776658462173917446728011152487430848464865777145492458165927176563088612045624450161375479501451758882736546452101581304690779633811701689778277981322758001111126555399336742741750087080022100397793209417058242950278336095373289455157305141675867404807615056880710339878883774932519234155432845215763860540229516200146449911472583181674644787165504099651640993527468016999992443269152178796481319136702693762904741336179448202295467912669138936737130058560880737018705884874308553100090358967829928180626899256797819370241409816717974336331017616740899136330406932917639371567288085020045829686756439896685268422203754283902658722563115047257285194008467027437830557693955766766332395272577416834135008804379907488802341715457737103338971481825568643931096205243163692750600184919911126506429951494996090593008986951243428996476096968934155292098091415231153955293760583114059851613720983112019152403465966191866266539991142324855841699620033388311317019302406316829874865910668732786144276876250978557264135785045312648717909049600082611725519024204759591350133832210181618024000930544904273399946046002652070364271031000628250520531383783142087094464395269728940014326311655145794546319541596494107554108169836031136889940381343630405370183935370573641987164318583146568019871224737946796209888463505855508774120396974501362582109802130276813781665257128094608450231892764501152936992766091193718800116416559313433452998454023666027741741414547744717780774516043049343389439212020358704847970094050755492324525090133630425107533118396217086161260838578252224023640655166579681849170404775633514552048907619459717153237903435851681512469071035345244979038164789543376943227703580031410663478313279265732068422446097147653263666787418865807065358287923698725342664970542733508936862531214356145408047447423641629520599895609311908614260267517060664535770138591239937693878679580587914890808213771923367081594353734884615459942572183367651319269749491431344643047481555395529345715442736111267026498682098234321745890880713926157659450370874004618203762271583401743395695446584544170188047124634640393061031467674361611492322961210989606495921401725126768942254797777843581116496787159811544032414626549669398338512217981346992831282406899726100948206677567149872493380962086840326112035634110992034938561355119740039675618947887991120035947240000817832151556244261274764270172292870372448605477826609360085397173705465479187172102393597158980156774805513507074388974907417968407870746530128450203672166095454283848310407870062307808969490733860641149256856162148819011971029078690071237416451778620747647605546094029819220550386337492951002597646650762095224611123668966370979656002602647617104413357662017194847151051489865215758125767897217541804317575869781652930217676209816248825305507438470212213530203294321635728290577414264937270782615830522908248727581499043509362825249739671616546612703397857910135365538634796881565328803872501847675970869987916196232270854227715121174201965313364891542359541546050405094449589465243208939354825791165795066588274983445258133257828807841089896183464725243242452596563685932924733849803000651393199249492829172269398398297836155974205332737372962741609229862998553429124159419998779542116078147740741580743798666842067566106935666995299114682112083249096689550708016813386767660665521137402013598734104436443088805118397869596839018889605330671494655849659721642929063986106078622161481077296056516557474368264213677072566551714868648340841660741299803553673735311318055027141764820468781573656197117341532232367152018008909713078297806739678879871340400131598348098804724390508742654305163741510911852076024067821853220567654243652103229344902993479196811123181666207228261177852940550303137715714604572688784046006548962907774421961277557608688087748776013121356565205955461350630168099013072909535629145883051992049969071265585128309441799617063140648254538228750245833727695192217293467722814958637352054336678864637926159052377362513001950861221306428351519306491394414232537539387015942334488717732375092600300440309215754359667946784547799488360375112771309418596049499648943811728278158617738070831419733657540374810146675325259422640547715901247167457302024996710113666285118447756828475365775032070381890889997152543022873324266654086351874048512186625654300877923187634665811628545407738155854234103908316367773934824840535671345997934648090644441039650085086763983244442359484658485963878815585261131103002544031870709692495261345451893841647931591239703085757069346865960887642043771076116736748830645312795470380026405755507201824712236862048767841300046853018917946778061256943049108833314793038085014500052668882817734608193747132683224778528775009248911780604656572983093876751097386063026868143840028524850841265493163698676725129762455950918933267921852252414114241508711203231207973589943898535950035218824221922524561940758579047615269013816231491510214217420886659284849009513971506470188617309332443454336626573313306423085254696952095210333765316954022400292060147080735504116527672648007061228432240300970414837653684390042784163782637682547669362300150925138708127516960297031544590462855983054837217834547047226232412866416527029543917222954454880716634025432483505464301277741111888575808635904268720274228955969171369439332217315146098136896311279198736078043469976621745448358163263561771766608776610252605516196655854570407711099613683014842883307065735152810842786497448317123416040748188335971732088042296250900400672594049102335368643325554880218070383263972160898965844941626842603824311248584253396017170473033868902113154159413899562165491815327072896617918048312606107067118243253934772706812607024101682688450844871375431170557349737410984549562019302314953716109905838566123294765834610785029525476023603145910730209057588242074114669864762824204987871911981925393376010864078478327445234424630866178443186131317445253347818038611273982737155556580179150935368266272290478535333768837282280362386307214600308227382158705545505660246386776144421955618872182279725478427943876717322592968144774180175760914174612949817846915608037689371086632714220168512816464136526179031513911011120326809664217315000166361990598418982816550919027999416845688829200520972976837798192558722371926652536590642194710326312592211241351016565334953867572965969384717637301398947601621764585636268013159122733422813114234885964892093984978600061835630445972696053042596116346964648664700721635593401410707621817274953302340269144916302939368919801674452453029702904619026174782998965785579147897610417814907027464314371128583446765057689114467454550044570966058084995055988566021642684926285076493613080611752568108277099728098488012619715115941222404060842494214016961047641945237110705260163103758941019253883401799375782090519048733478594468204540231474965003149091392274375569271011474331500453285982965784025752035779106966807704726911433474749497544476548842117966195284760275587300810881980695523547068632149359946071091246054580779004415328750069649182392736966814357569607435318316153803618423746737296098742818870691654151461381175904655979671777621906033652162727131170154413749428229250169548296947888059706745963552633129971848734715094216292341624585166467306751657464173201497994053772974811359916289586553975256547118013809095259972673405971911268275078233891108953796048551302067765588285662271933461492556651006853435788557600576010308208493927025337846286661714402848752942000473972336400815123005760667334217868168374430614824636478849964511043093786502475542688777579893838984464831118781691238096574983997844985722903965378248744646946678091001941604670705359435345291464841892642025426946965901213509362590138328029234106566333959669518979051769639169223477312566461885976348947947109148751508281361225567913460279894620395225420895821184131807187842646423887385217131765830201223849317660873430828543081230648459247675790637102061688339654767008184643468394439059371889427936195186426997101992838477289878413186306566184088157130288242163598580697609355344534197716336614865601436003554067525134615459416081044172427949812899788072789593547857195816239567169417931884043492410939365381972151183417382151080947540171823233296012719728156061373843608548594633767049736353410772591137126533564470111025022338960409281746122116084385868448386864368969775553193139654106673370205293697910323591900812381139778417695988117294586222868468653434461099239025504859304079827021543709882514461200485945104032373857464004357109591095304430780686114258555965744086575705865177994034999133410896713234037697846817530706476819035119083790600716961022503588441751386708163715443185569309586827870057966983500351409396124443178374664140195835642181655684262202011005145502198763608107467131560381023400869044948373120083131872938902132101002731089738980780547366869958030457753748951116791935146873005959045316760479593525870517805936926655490575021458064299088943044573088625272112875202733900660621295615154141379598719455003303040494924089458067943772415606757826773492504840708850889775382677184657257823224218025839054649752850018562207904644965751748334573908064695591389145835109743571979090145912460136917971537229851753799640554149953283550939989221011681371925035883457606427193533340447696890812700814247104037025067438656145821147881264820839135527920605308998342040657046701096158755186552326788301562538933065446228245819166696623460555997452402593705420515113493327377785801311437099755942865675167348045516378567893221451273381927447920203787936967600395501802646225502638562269711341823071918181583688564318622769792926897693352156450333164575615264190867769375746468276213097036757736728744197152464435791980012252595514384368230039035446075846002299119524247522088529295166028559549302274163572169537486672619192368862288581986387944052338579194975633763096052615167829620697917438322748774074446835234223836687938658401237121405511319824933243953350650352421781013778568931610774732853829700531775889659926248859675239589213376218958031149543159269382729374406214862447680142525577606868929153050625055532554176974482137916020839520505870177263720508815389514849577375826296686296729234807751701929138416694025491603967983202211572977339726156018141354508900222284716989822281788351550882726504236380663317363972513782028218074832692717791108483296196845037591121114510389852394660719056098348271647486050664914824841592526845735803505456375676071580696897649748220022817480490556550207305033231206119772891593049222405420594383389187738036258397408756894057048548681632412808391989070468668345995678956697724630770715000074785014244120413358042720549165986455720577645598321350590895852108683314908285180747808659978526706163240914169367970169276023451098605825386685806413489040357096792613281794924652495305655836455664875580326681035351987728290564631266042566852013658345442337268684445833274673215544249779767407377833481369376212643557853524003376596836808117709803352063550929772270034958613663203015828950542151585928218676368295544590620852141710323511564159912191778273364502867663573664203515998194883116360584182774843411044755871382764609369055172733486778777571334943226782350378999021618172641361078230644128594457247149323963370007233493271822723977451018726290341875595038791304175224960596783544041320932510867056608334273463267090364457723878164228154869569325102319384328321414002016859705906682163289669646923896866090564272089414137316225659541201397087660041085687680194773527786187161402399600676559206867867263355979690616808637919539104634378680493101931508197644875675092544780740896932411830735607056882934595007920900233979244342542398669268821840688095801547398813969910931966560859853858249445159059768399429811987487974875594320888398518087139780694123058449414828480543827189713163256070515814460296444738890596147759846780710797719347790272530982955471089272477912348537802576826412133453387589176634130425115076250256553401648882564417860910313844777236006498524035379222759163626121037591494565057441771751437854746149882069301780311617379722999849723150481745793073718624033435706229249455356647885319951644678392419770377527653518179335441993894482710139379096245285114653386468126306921156294383488870952739004071273332707780575097765468313814498727355710865298958048938429326699420859468531926310535827743124254983417278104633448074172414194989698982200343848857789211898008137683383549689675897320012866354019818387573364965858539391231656832373565084763629185304218225375549604226345906300169062503962023618085221150459044511257462967379332580427932030239881071263226293402128296222053519258233119437655173801041264772408387034098778242938130671856057870248514162242173385581943923062071893954103275846318455726947945731394106107969625015519704426321527106284186602402446767397937942362280149435104834104976071376762090162049160629418328751480036165558311291643610070213369521661902248919853599242155996019626498386481851303108705728556276044578214657991307868101580470424852730192866598761737827595771022949342349775505536488122349391980288567534503183550318091213617707551126911243226279065002247553781933134746713562664990719712888920333109123672342887018016660261810976878210014121068203978571355371598826939164215367792578600742218551242371063534441743693204007157496044214310129893219273325745914386467395721533086728144968931271949441863909107827618734846087191807220122606761886783666183771005040926583679194458821138259920572649897436919069094428601952110645916903854233804966567300026921234341286783700738143775004841408764620039175067211228886851920220981626262373700296104201306545163467447151249361703097100626046700135856567648748616874332903691170489437030372202373758335704977728680435215390670765933129985790034576097280619440188964787936504792371056944080758393944255356673351755929404051379543428798398139950214271192777150042776836482067683508558340372759813577355672557523648687337021966709967855448423476762064950480127893646247913012986282900808590356617834801114203650814088509617840523842364030520906580911741981735012185603624751227910565407717496468438200257897742086000324474334032512279991071776965272536901175094593763509493187001155247521788985457382628102472472927243377324241441003298221669919113280357140701312473706393215512164062218756721033122495724501770267670637728278934233793541909268490876611845608555349077124885407472985246233183291380873746516127180974410481261713421618874128543127787594698143012333677029306314398301555699244743006189026290322758078760401444956455834610555248045634227936460016185686115335934414082059996334806954168072145312893028509682642828612937337999823126319253042467965125524782990382220729953668704603368561048051692531804789165406693546447937009312118890797351948625380601570918734229379163317266776166551778661173166344303720061953368509731675480008311531049492587821459848489042023321576670737559989984102034967624411134344235112090662919218377190413327236320819732142702675008867147222919944405529739898179738257197013316544479845336247973092798750135747734233433560994221072137272093107530384572224661881224797376875079204403698568495501388117221650816188767248065819950291858580735077142132877195458855110991654970963884155845267944217809984035482674879660207622785782300690299911508551665295340885498295306010365410032270869341226453951297075737444112389728708453717463539412745328169065183515459405415446526036238331388990693614645052740169120470823729324922250465929320249717299716278203941611921937920699859273550342902966639762837450908671453342870430394014698370329216832910796066249264707952668027311917258168260945742366575062875165407025559060948121662025660030857348163627841028796021572562615747869669365102103862089744285067749034526968141779270033745091661321861032202833800231093467428138958942613143517035096810388427331953400604120210390148476697796882483017209102022521810410169444274090108836990187288249662499191951619239681041404818352199823708022470627063930902587047244344349903245960713187348422881596301674499377740262671720520724889384421076370326543233828825045856218486123641256046093410538331464786550628926350468414570299366699154500526648588406500177056883098026363596303109148789683843515188558149732592946721721496484626537452237039348564648910748890835925930309809524243274840626977370646561289793245902898526070981967236888626865396026607374494556612577138071940466381792436567696732578215462874086343747638842621508297810646425389661158498652586499849403107107398273493087561235338325532442432534074539778221320644796693293992954900740701812184475495372485362382731247944338347299340588454575184397807762490730668415543136477380037660106778998615286734281433647248089356953014828342488533708513551765361000207011341890967927686170084517540492152456736156168145151652494886480595473288003961734909479520278913098950049078776596012813308059990021998377581034483242910685801333455363613099692502258497916760677254786690757148289797659373989913353658723522029021918166692087951798374441027956537552073135608106167836188951412305271619417385422924350807321796622289176647952776232590543996875702756617978384330801667025343351067218057183920139193663214799374274886023351727237825104931400611178971906093277602066282938857419488083425615265938921408300930574568015247351280215306723479399144746210972070305125967266720816173428035821900403528555168677606612954100949236777226392158699222794047549336681759045030848773488532406659636679796922150860439126523284657394610554276274101057552442338625549320854897125692938129826355689381130599041311734550847326258343788586798685335837191181190465247587096466579220077783766331385400999205989925032746627355577949952396151974326704061209703530218101481230568167426089713414430825766280091209385320535628287226452210176689902475786728975185933301424561164651324127589510547628536282375341192404442374269077297127372512175931657243273641699875504414189084456654394922813867605882917823846680433379473526344502952448056178278634681315901611967071563347006568837825088915391000193596239063413587644690642799311613496325063918131385125201558816769431167578091822376056667866201156517546947448345305160261196723603855104056882176311040678628798435208473224497154408151363090745844300032384488666520552680219468168277774192355086049946583641399795139906217909278100126521101685440049026094428435782957806998830013977283242299279609455562914114490253988275405552692759141150799601222793937274545075260953633388384356312245070500691107446945439292734875190117953504382004970745642606536907092946674682466963296594257578005967745292993791130885348920815829421086556433720915097864718106059496413388249138229567338303188109300294761158343420078072559081143287341974813289315702544360317258568977078394652404130447951116540745807577637018552375768610500464520546803755484249580465669122221812209078483300493361822113877960524361722916080088983106911898089502989953986883800095160543580922291556386920893021946399502382367645921303417425068166701810978419374386395325237733872578213372966804292767489955267506860235102981856874800302903923370937232430537142023743966419400814383885966819645080619845938573306636215166073784764867998595974209031380831818319749561875980209557669633650214607349460575126550972130143131862556965457075033933585386776024125838497039328985740784869482539487945014403046283185246610892932087527991523645197024475838428483600143325168759442816867783996052016180172013124032643822869505774719249547357515749472682966327334117522236292454830618774845775769818322626698872805157959397279149037405656288229985561241624949368439826549417276307596101268908367932805253178246011595463568819753883140932755592020178600770049816592982974212425770971588607590815867195317692842672163339669933694016677877550998044697011355535442434076147580226344332557160162525498582771621927595708421106120917118077872385847595015937395959285474030679942810695116581602959421094763986747785361764987185925113093286699149240925040900371655353756679140864060425501548891096117424626048127721578239058975833394337778246830915532039352108084461747422023627024518989326160828746267466635904642619883497945117564500161520647671311917026867518862605589730459518061903978995397518108044191947258601541660984583353311921655928491050746933966272854227303666297346341678702145248998879994826580558883018156818951240697185616289467568818245704116787419626160892297874829514971452827414196278423549209819296476213961517679176445070270270576099845752125326583285757999891241942257684531382415727377152196247560017599833291750237505669677197051113720219943406875358221760161889521888378658935771472759596914140147530290115208157734290853156227942510678808737485470793180746981724054688788875307931227807940707806789612302730884428402518579096396506845387481984817856865650371634561443606843235542450862243188834138698038189633636648450189763690892672570264255983402860474387438202521012070788459413881419709295798046741441129325768548369696008251091683197813940361728716844937780626851133277950464812365437555110756561818244288676030926787219691100051801902084383183260451310743603466862548309833543980929941568716464956450438185033284935258445675821067186872401644371536997671695228854984223064168843705453106409012139428452348791042183124760494587812621693556542985985435473369007351605851390020489807712282044069064379311797628591910293121434968633568576188311397635842620203538361054727703867428155720887737864596299841295199669884873603498181426246058305888391922754943873991444314671715765806036261996585279558409962544312985620057446391263793808630416048166068810335742071465109751429904834861476825635248081633266417916126020076313881871966468332152014661916534862088029451288921185998126496685169459519846445363677404658819161017830583600819650147521141077961258586352361547705223559129320262294410024952627475347267803448292546011241328520239055753766200741064235750525037094703212296396021042132435414698545024172618041626320784216080299273947384219904214081482712057087538992058521952777803375578531012829606295398681713065606033480924759464426217553241264887357033630880937300724559649746287671942301487084018253494564653841121081586445764114494572525588487876625393669368511250141106671636458218378867060409098578556495359605908843580767454997399821816109845505257085070028717189286425638421866403719807008088313465763025967829931805525156299033382977162358974963574164630203645377453632855389788136777445473129894811585003099949044954240276250872526804500069542604222234171668844518281822378421264455826814190762272285301906193631943190753413722170261425978376144044592509289508193952714915488217262640475656393751342278156917974737442605836010531910148050817670399570836259085246685600301358177090217820169096691937719122965276391967774997981789861046134191361120307826220534816822495927125447614612695011944880716826968713238890655124939274429866503735346325051214074301864137830957923997599717638736417334954450312583664443429657895858261419640930919359561608035667304787226194699259811926482284785772895701601999007316189586931437432428816086312660528012879870578576870578457292853439802460497845325738292834475722109337604063266753874825836403188506728348829740276105386805585484494208600704114843616615463398400197774613881671377606544473177769769616380811755625892817640028762044975077049326307042993318246238619994239242874216668396111494350191107393027400512525378666357079509728893921952606197388831653752077302589878776851400906449683266640937121684443627604827687392647979076067215253517208340990713266885301567858573247324079735396596105534970452923480651111779397543634607836100887780388413710425039741703934895432978968958640803073524895974986863131444453675009247121837684571182440673830035432330931051322559290875350547804588134588652869483348207938123548066249880739470967389013571817468299570328387669203123551230796736921086955632257188422112423989954459817819145523367742203914183434059074848414635390414313671699415272911200968343266535262840655047890026601954007960166595230989135984800795600461581296676579631330386917056454782520886385346519809550043240863334257227987559074860846303063511050130451671683539697086318007035647883798238330685994922605439003013809135936966618064084231101728869171393634041813293218473607183769769920762039824695647920090394979131560044085843266416466715383807181874538824738952216507273784711455575359976364056446469943308954153218576429713854795004136858606974620882349493517345216009255071835228232503814331629912356578460870238663056034569839718615839197570420337697608517190012897574897127184279218060148583466977309538792531906086223645333346256833221396408234456946400141612035340698576643513747688977560910600146396718657715695150373253228335213564201972850745514706679641761253798547482444565623410596267303990627712414690296802058859222430946722074162866221517897936340512777790815752608721762846169138540699317300703894848228992345132232336290169994045572999519087894638849480943820073581850039546533228161475912547721580520514617981069082962803279457965658228925718522656036067387106512770022852665956060904039626494978682080992004544088658941840823783192169599804945744112291414038742371783369004329359386170238113403920073218024415223703759134884968461350201624117390658155366622828149647869009367750622055036990548986939849238092440264502341231293771610488489371410240416800668094687483996419586510903795693732814193694516595712342673853209064693748039349757496461157817931338818774390863853818989193352398344352563325968139634805440243227980673412672531234752792295823633533526723887672688917321929167930973646018527588106914904051664765114090916190376845369668802085324642997668717442104227852782169298071667314399546986123107574903183633290567239289667005983139523041382709292235394429133368255761830024375868743187033628496045339490015352999024852487449416381361018797500583701637622942502797664405112264038578311689711380906289675416537619530444538061976342641480483992173849806499474833652926575480495172194326786564984350405454819980933342070444758567658242791131366293388365524127486615012675134966670383658663367025275604172954493319222580206168641015191829776948895752226490573735215863096855586419974699804683206528098432085899972310027533133491595650513911174254266858842014771535656538494517616711054854880765880937203106692589098230889796312316164058023900484611644304564405303602316423068906817922980831433229050039049256702219991901196111435904806393055993976005794641422738079604115393564562961770841637519954989752674968745085635647934293091892367064823447621657253949587311021372613122237663960181177209477963567811290927873667813245638037824277882935769051267119763868970851207367613673263962906216025018227946781485460721378220761973252204935585332462833047555949087737029205755668896296538559012736705175591942355352199757784208461372513468112121963006225585268822351329921895335560920521408751033141675982243786304509249899076525024657003621187941603003365727806906322482203701485545074545186908256852134891740015935443431349821454145083356564786286090514151562279765584604555264515329788928223912326452468644393941246449107194632548903704982782548069833991157302365682172157920464188637375033708881440918693896567444992114301668067381752628024784150247830488779034813918661955071381505282089889644670447851833873918374463837663457130745429380208722886159841626101535292345456436397247665590833513507066188186153359801913679444717795855697169853941811729456983436339411474167649140268386649551124049315835260716916577988877798816906160905396761169663679204853592765988927442757666453345620347702336988250828930165464439779767540913271791980629535251255387301916554348439562292373819836363463736710079393786162565817550695307629351119485125044426273378423692204446101577319814852667440360034673235151078990356777044692025137397524110463275347846583131824346147440155932056451312892379253719537718360887387140757768288133116308474139078476498887018806966181155599092254098729624255071533729545066205328751045092363373812609504403848730229768256773107408009470849065421388487463955354535686884710467373583732285448518838933764911814994893228839650933324311530429272355990615603817553698064012560982336654768990832610408546776676750049109407613752536393017709264603192400802789584319930181410275153956119402975479352368540945098050218606291382184962454669065358201512957769500889235592284167186392698917317095961366647152913480373807635663715796925728486208657537943846700227547793490156509081571681133587023479794719531837430147114624206272293752508627620805535169458310502002467610342848614674519470112833537484646188293248897577827363548380609629136035585469548300562401462011581593184207595928505534826551171647076995825757411876363793722191077714419501722963076402353731811679727632635040421776093459662235980409008423377873075186599700853006618630648238735676037393376497408789409741760555338574139814856719966276878975706840642881293867224053319232428700879868159026795767979448052345323055727725943143474409335139214990351697622160686758814011527734770621232612339030277206550244877222155061276004123644543243278032799439366111416546023591826280532439526187288806846564816429100786716264667400220988111150368178699187692315138679821053955727548192025406596230642419411556950222499315725017894181901961452425277611730098545783277568884921462620834081405513834093339281931174680964936520100218284096078373290917748041648743166470675098566238783548003669702137116660391108481144466790051474939183408819386442887937105733065784453359896457412414386208513175297355677795464867696507766610631019416279317525674069314312329614060711545727147313266006495362958337638752060694869555756382940951324537216879497707134225374218980989457611844274426184077177199347725333743979297025119858426125414882677287114868424572635540307194793506956569536034737556083431008510879229570447948095938706500951726065973292728035172409957935424381334003219155104931851098264552165522040841920645862545538884615484885437141443272908040318544669632869781487300089493628923570148100108611190386199493690889561252080752734143425663949846083173765138530119798276907139197489456872644653549776264521625460290428034139999085957680731661181603384475863876740698327203503371065702380983355599246274442489980913362593080846610509197355925507457026925204468551212845065807373511422804594026650202199342819813396048333770484834305311915439609859927090217465866042454447741156283866790376950773537505814353118092580736669398208860439203201257286071806959741798410882071263050213946747595380674279279393187292976144702627939736330683367602730928199252431950302788600123648622114830483696134755117770593230017816128823259825076011229207217106025174437025971254915239141834687668116470384100124573908084022479866828500390802230388130681154133593932986703590351363225149435076962827076237418244599946582954928382587297829389319267285406035196884271740944750132718964204029522518373342611574937158667874844848856250222296413134704785700824247653452701873841814811106592341285674695473731879831945241480154842085608753571591148546495412363663283808477762180328991056761481142239590478702921433471280161296756261318634504093287830759346714300973620344512995893668167678852994190891711787312173663824877975388607356110009831030731825669986377082564588321091326124750157547319024645379579848000372994977668328548650241230165759170955743222627280741114065296087882362978314047202063406389831548898315327650126098768465550473072152738939841131789166146326856196748095951839462088260985858671541508973496825402456133050659815875686609323150962008539327583498640720716641742321738695596654058523810155480942108134901784046705225264877637362794346518613058336912220787519066330329751825719858906944570961880968385771163373162229634115015286336864706006364911779165249243066478897940284875285239195365195136928909046875692120894814687398769918996870851043094603471156972840739301351872977330327593610442769327018305148066897720671773021764593142696499236300623679653040214479228904095443839461444349168444133818052123433561310030699153953497588763689197517266752787764187235434250555536738527491551667607546465710770607485895979494906701692854247926361572270477501015535600634416683119207788561158065880195416257153931360971926768290348108843780098200260559316456045808519395571594964591429089239824740833701326307215002247554833848482636774439775604617615250961721907437011410894223202403734917441145714704219321866966191447278855741562101081091274468748525790167645877277927960038931666850629639675675019739796183344804636693076327861981303124738560213551004006127448605611286167756561478237950705708441857625229083234440265395873869613884353655591308750595783186751452790615076242398236156104357432441803261706647001233364605175900421627021031148432782634807156970428554211510954988815127759869023591723335673395133527319919399952943103108198179114537305374507432785075299682960185187001854658073058529505509918579670913025053313042444476316155289746734406257678248764791569596681713833715401908764076336548109690006872460209469728187693039295732761376640725636067695395298781722052438377530640291920135889382511865269745810249017302046058691520685724399517182167582894490306338914835749766063125099555354161091063233255088963182796014697969403500049341698179791229309174566549406572934420548867818856406399226106355375065002529851056762445714890380168638378570896407578490346790900374045163644127503291331371475014036774710327039222554958061330836102301310293653549543879008351560932504167915513288871905030814510644917422260236250965934595180138981832398859701980522270724864365628225017880937578182219227035115909765510997934890240253478849875140182994196443071532106231803824232364368291236890596681706020657848357186047141897915561960853043085922846953726871676764611512329515709516515050168610106648780857965762418356306826242786517798467223005729953452358274559660892115038460556820313977917278749442049889066800849295414374465053817030280452127096009509471998673062570338334469513875086182253448780794092429523498774114391026414897948699919508769462029584913223631166635979648702488986754115591332620867827096276655854697194172481977849363364798516606925262654897464975044463592298756697894899973945782348328651305293286877565805510290748201541191069082796282694730547606720461320944200146881105001280257883383703161562234711279350327842596374452496128350584983757027858042925610337032142937418731494755527333430590309293693203431714100570892382953817668909389143032686470802524082176108680230984965278020901849355278623959293044587410269414876619721574334402520318266919623115446097098510903971960175027676479666726150555084051491431557459286144370073349388448022972376511105397254147645972162085991455753204486798422767413639109095814540078811888369906841973352561582308322632541565557475874329926671382520169130863959734874727534801455178944326664751834238838141105330955807380327541838470237846876267696069554618894983930640849390015361920403049612539266645668489580865708522946474207622235532578406461376193246458174680427793452398331747482085004560432133310230237372040492679559243434581262423670562446821863123695188068829580976088409436626501278365257649592383486479244740000991604122080314046291014685796454122662974740511645439905974138283279164069988635509158431107343933902532391620310097246537636470740578427836713083112173651731730572814927947992612663466948379929582694977680034885700534597749359724075605436760658240785147279026605794453341892496756292848032583060672484495470716273706575097070212009393346786616917404055341992920915941877661444692962099705884076446710962539093932403360179361707412827120700684777361856998606091694977223869812307730533012251378112130606221024649994331294929083060476628495158659402864114668798196034451360955699661319068511157253703444122939151974333274457169837804209252663289637011994777206831560050632670579205555364429356778028200651448747436008724803164650220431563860271436858982686661779510364230005153424506460524014507002972244858426081789055030863243473324151957952432998179770019704274932687996524984624687929684091972292831418185161299983923894321632883969089344964771011217818294645840814303818774959783639705797135082795626164509110315474297281266478425410241657695995778455637016321909223627945387885281486299987703736433568493309462472242304937475832965401048560702640138770395908984972553825911020821462135844710923149621872844867169795730833098963006296700860673518509276927566358732289915474593391098954524166343569782771184807294410786725867602372734851789929059268278198589969726318667683780914524048315262163016298929118411226747395861115221935493773339878226518757752002527651572061943799575538878234795120180758447571781737478453633707408078356982304309300413599343052321696203575967858413892565408048016510940330504726402816827923053595233259329120574417830927212676123841775597503883329322009560758061997559569439891486940007523856304795736698832086988525881184461541181376258875038943927711235970860046737986772026274763223093907390350417394258365222840283576258766991626615440943909036814446471994221334389545069377442972021301739231809263045851657457242236321714428777091235531474531873823475807248467526693548071800530811754373457696426162323007314643926775011106120106392927204882702714119957032311135071991927534011548137294844842880616018725200775332071471093523162652211094570790977446804348057247328537712661738920620981241189458134036524415290811047422617691333250169834928131102932405842462327748565419210468800560941033731189413248974220882876279111878159880329515999110158923138912057852469858167114604741911560187347465828915261706581475271326005039050787155468184898453098752257897101131452030617712647174257481721227194292830474912637086441381074988262885123440929541979509898665462948348753185755616886728420444117104061029920858523411303268155791996556210692627253317611272254130275094519191781491289849100830427816476193009672247122764627140056226166451394917652670355914528869611908940433156182103564114772521189990991899314789888366223579148781705422526905576428351079424434789858138022630082763710506641606020739757728775961234458724682933632307399237920228677889600167407566781669929503699334396760819538325306027868822236523830932338738410236132918939515987841657346108359080605925506667259839317347227402251435260476047192660204879756461907034331877282598776887218852906218104135932312404287959475075803570757093887370970916922501482418482129861067922103525316479542330279188481840366962792698364921568095901430601888137367777037542607708250658462039188722015099111982786677619572354491020236902318709901029267568916584716993444295660383910055775728969111441974878604608196583617464872208587023629694737138687847198498476320999806362658552341414592183590670088129090468434547725874052173046416153203520783032717829005174480929294543599541221218963654166610963895882911420801101707866215477758476497892166976073940135957149963594851754110366881857782146202322682914472609274621877824489096721144453891011256037384609992755649992800630673978954937086691302969752748371937428122427353612931036648214558453456379039937283052758102605194705685544250268490859709941207890778550859244169807403214341238886769676160606004752222185532632053944123485303104992114556418275930064853018546086190397186742350373831226911533973348494245790328869762158758074382529325335708036852534657361053911597533110982157266237107182140868994947528414275473943518078024329540908698229994047886300929915052333789883687192497158011307522527203866004866890446189209070616780323699104901177190469151439092141220559268050328518412817169301735468286744149722968727001198519370315954007596513083577132774132845556932693204276189111784180775404470279701086615198394052493474956328828653240326126489662084368253208159107443943427685225177236014283576025201494962966396799879416967020328370881885029946827355393319137819771589521165910138274483266670041875202954961952917322418145238238307180128390445291224192722593824831756468654771360312738884281133946125682542402928295091997472313291199654859813515016356458511400065085187779849475647198073278720180048753053455036423060419214754358577777868577082176808186246955721012051260835075415058528375986817267986235445180479360511699587621905677173700276099726797073380451030089561721369403839446710296268941114964976580469985935028565317113463552847021240938450089209262965546571365176799100802045509066189690030788089402876034712485033697421728278618784464149112636107856742755905499812517435915136800067962891179919341987089071953133252882161914144970132607930618694603283863511611137078352421716948583370342029949685022389337770637714674130293089804552598553926381533430927368232834174703575731946620944882814725047435477996043722962049783164158007740487413976482101946928592562102019983681696428214800923572180105192595800404460647381170893032252809643695805171389929080890701648061569179195742930024757919162390431719952340564426967998122507703954850988985420706602932724712986618593416714199832745341179913271699787092396104957956851216267506646280631366117012028229768239602054134355696018525050642918426997179589147199500750564335402707565160094024952057306876737155221862340752914589189229428317894962241620534652612091601416376880307997915495531211221174879060153239929167158488772341963758624837250316730801281152890458182287300387059604765818842572421537559301042549640174564534256740820165352381114386969534835555826738182270738108429258436389806014182139354261080526203120114281130407341132792313092134040493139347716482549348169362271655335786783188488838191544268268769450423712559516479680440275710899251085208748486219311507377005953823831969705769520787065299448249015657392627098993855993590833857752287439368650785480524578373695611701585538820738463836575622788256341590947958650871613783958455087595981006942571936888702404786108134314470740940178386019132912473948364139171283422177633283979050568231061592651279660602256424908235321038436719266114059676121663609663774292774724246930812291376613386643919906600507159467297908317737592897769886986505113382927776078605645216297984402922114811093584462890315309116518291557885653596860139543370086397879379977262925830134231374035615440957009010324846586356882406268768918165762566402664345014671658891156333868350513377089826938721877133924243895372217962855380511461076250253566271264038291701204750122601825929075207051153899943172824047681835422135016182752438240344590377178064695854199976039670548324134040587146625136147796631900412942981403841789330426004735847960712912669268554898851093055548359822071456230833051434126423989158935723794395808917643872241497805474532525395018791483678826593139664786589653832148948139544532670830169770262380023985481859244666699317857903372696393714689154809617421037143506507477542020061526060278188278310227891818941119430663032403392364326653711090121243779102130801678038000400870019559550796834136409205429103702965170377647552976955509391956093772355281673408725469822810991372458535178072128351753740563754420348760648421644312605869122875966181384331045858675107177772256461524304102961166908114590670109626733662595484146878208070841170046143573961978114611622819310566282984803049036314433233287452266841381443959393537708103521908959154866750945695662707297174653947438397754369666182839440772244412933993847533881625740009832288246190467257003081430156085791070779821938244712976844746168344792795472689901061118318935279471509046086436154468755693157305306252009027045342476879291747384926794750734587326384805420857607197428298015160641280498567226666636426745225304944872616156372606593518988038675826219431899539039638877849810795132824228492053664902814319703251187257797247049445467615779391099752864778397966955893920338704732106001196059427030682030930878491430987031095642804178069436230184084998522902242337281994578252225432954506859534807290689515632743190796611157666301620012654849149691297352595147261730317635211062195036661756175459117434237207095215774171025209471866312172945201869939571726722507955469480633369485084659337705596539880173026646150734795510942328785469570238040990900047948611210837952729335033414610222423815544579198117500289421555401398665243135007200445148373175328378532600962825978373774067531099878698955529092104866406473996745053545858530658162167567020562818607071404889838706967634154506321865359640890018474279028674065656713682318132398359749775556977498475071118229163822419199776774417931615584774186006317990327455377714630639184622694398077098086032093390376063535764144315924265587015373407801696630525197490161263220314744247420515809204210973671912738064502848622700132253812914424124769944385282341753208196921343657673777523874101547586077826141788768730999685644900081650789539506500888693394078690538271464085498821545818917342564001221458115978324286941125996327832091499327875957035027205220865175639667125976882284994942489059615268063191577193981874679821341365510272815145730492681751120745210763563088629250132948785315835131054418562459374410308275859799358849795299572545348575245776546345589001435750485979275502270695587410556082318475222821541067887714638649606052247267435039499168675794053722670151651526519305848686799611132272346231745299487156799980581329201054207888106768628640296832869654411831881873119192119789043404828857732700339737291002257979573640021922198587316827400902453149762666125369763291390773854869202758367152911832182254840899345303463947267412150578775121690662933736771391691923015397696535708033112140347941214901759485809479457100582809613445118019721117244856658059919453854187492036395716995763000983549330823246418952032742070942996349248825948580219142451530234299029903630035728584733241148653245544886578063317770298873996975206510353716286716635521280982825098706098768814027919022509912278980414458413394537353955600792431628086164417426061444840400904139578137352955517992595109049576190161571121417736923866507515070596282112623161748304968604165359418058978747288323041437571948608305614645572710313753473617768560610140035503728326933249559965921611916989583196133576947031858220086106814539766479106910222068795157461073459437953694524524300027422842453747351133527017617003214262051599313056546542670884868804798071077989306689510725874489266524172498001952852214973825186637649635328240140078204687660299238418904672611547666631516589574094240129666074611569208129372346781429187793516558400726465862052792654891974717265793038446047234928680820349996802843343623871929366988878522681836860995060890049587135565080516279945922028546212645509857247199000210677158138006973506873181039743039132432567514552967681720408285896718427925335840373803006785209790079325241291518734306571685687147406174887892198693905728067154974581514328124634624787398826970266410614665870917111150062196047496207022579674065481445954840758857099092174051672958600623502229069730429524170008939094206627766343754742512927904034619768330224000495241322782029063630387033458955536435090221321556855605140912010821987892671793129547614888253622411731251567049723777654918414509176426773930594211990083698097132773719253437740492722423920161006241109180619143860409479533426870752432401750034018319587960946889082784309540676373092518585234183678878969420363125971509227669760887205303066188441907145867630709813703956091014566318692388298100824445177037082631110315906738064102142386812487962348158333182086920908807482527215114635544736546792748496033903520858485355017459491820924096042144058693405530102767276265630177533240426447116479620822709409128649361298536254154450962320868608150184448881205939997413293438907129848625204659618747110707509070958190053507051592028122726555930757970332960653684299759235510558136087655689746929808057035637982280807470409480895877926510787540243523393501391504552554892573128146234557391388633407976709225552114274693177727228154551276991919642695952967327824787154920225155617650837536269193363448371867250844739370854915657413755140471067684728705315264076301117757770473333245226638210325456039390583804753343524269664436360845567468461318245409708899196849806686424319385276050813983190368742503452886365622725587890002472427994004389153916730627325909625213453660258319223005798559341238963390937325265133193930100651692614686402234290467217789588084138283708388614916846324644876544004439482364263419960864243207948949937414920372058989541693434173726962135547706706080515445679984135480608610372319420293807864763894911254881070505773832015466304176909253855962925345009211931671374042185944634545445283027904097142155299465871588136488643744951972340764056264608365985103049359167243065460504730672376635691947670894984875772443851898367109250326691689424717319720973966777055319088636102778874477732626287928239549316609421468919095117751722083430876958728230278746193599702587765099032576978857480058109114587294036961494777978487341973009481018048538746601909778513012906182227714733164830272428126664514197958096386590193745361126595161979829471073106642530964052889493507985032581835661610614022729360609538325237044817976764351111241193267658627658154913067460230414621737916198826002551116168783967324747433545725927018342456199591035970315472369787028604309842064698060391226854500049865758058861274612455057948975189334972723301988597405888519601122350118628021194928255508707238387307907251570385793977793679380088271760420742716959583398857464836733550702603977890500998539645610150954698776364902103264264862068480591115101758019445766584686518173127328980074102960480462417813460145697970903216857051883655603047785729212288233478301070106956006349246604105750412247338379462046093422292280473937219949139889702030844839944627949014072113613165074453468508652178902066929232826344384032203057550449713993040472840777942567124024865717992670725911275244988958032374669033146807050021550427661067346473568338034507278309328101135711334837478564891970250593799722356813783220527542034359187071873977425273669586886697161572531987601978123583064675204509007477653598749791369023857244000277670948932993740900382524509644665429326338988100054034090587887484023554418086942920333577248860634282325093767493304804272369898555242616904435968780618502638765159676770687553023926923280022586344898398223231759120461378483987556147267112115224545861650454724765747501213659721667050722027018398062541148618783488498405191812277200987907352521707711845900944823583583604025610744325324977989634933255201062432736868288981782347592404004602577918716497048543791514295444385186726528872233223459549460125463850444117682478077551109655016712983784279385770945254925173340838798069682277434971335776701837813494803062684009253933500760936136590162671061674844588191214564248331962228330493895293397873225109249419758717993923694885192427989407641281793535669171659012991360263177514774788764468564827483220657785781444044537514480824196858283881707670389283075776316299754734871120084104684553490281589616994750676985295144506961892628296065402151701753561461101693149571657908601898646917117215647318087787010502767305873762240544533796910770600157871433936165142417056989624526609737149464012431273073413809469905560861768517734659538985171232295174949724386886165144365207376137324227863175097551591147121302300722851933729052562446773984141617665610929863022858219529886615933186575295303827153745444079827051193089089106952462643845065987982180666953222303020323942509595213189328280578118251241288860097483967144192368678649749773494868096343440503206965364098865153186511097445711333879720562314345233197085972816980443863615545997796030095681998318934364369340196688281400017679964335742422371596514030350591165785026370346087076575876576177003452186898392116461462405443010484449514775721182820059172806365842425629068351403882553711073547393547968389514766258295354815600676983614612726464364954731610563364171644095308887688915956396555057626511418758808518933394441322760003138433695139850864632162102093094444200126457601060852860151887082090964042688683060638862216271126367209845831676042838420490537907684896169934561145718836952694545255581900942512241753251167394689697677962589076713224286234912964662044062091555919673396508271587073798587005781767953078126061943134060746797367738134153775217177920658673561523780280603962581607887657127930518929167874975298372400932150379910946581734946812876066914639945250046972873495870832547625310579935474346910122036746917738653837205994077539654300230721448712488804330022460753885600568909114094400460374613269327068486092910389609405709493968987941833651183194401311033881252019709804107535207516141711328761312513704204138463453829927683632286728781309952135784810668993073531373417006739627682084576662217544323236318982707826811155649881617995221177923459928958082809509618053651944983758742292245722126046914188351741573035083316553078123682218496298498556005230779316335966645075859329118431775330691589698274579406672872254470713584864641258726230808037760886320998839008865756683373131272413753553527002309175714558931999476289272555463057589519181684459178514918776801707320217551251557171794384359452827267315870607296168591159789361901313613820248577215186972381507004666602281349902526786455981213930169749641999112753206721246329476654067001241637416190046558522799071140236557240040338279506222737870828421804005819694539696825990275116837083939219126062504089171672515891056230908621726905817103537378096909839433888329137361517857910685083748149482747638866597425134697330838002803541944382357374336496073530436440525866878145477463405215289265507923366091518043535668594970513274270390074539482224871931565079838941244254366973912735658077849177074500382810680306215548320745300386207500127925247547764227441425411379906597176469733443165475788235834735313506702610398259945706079438045284357484106828392658538242036026699303515997396342546531639778981975489256513693666403529597158044654746301934353044819466672156543698311257747869939065947560044524657036168827781314165014971099787157234824134834490300911769667734597676468434010518326835391065913218855288460311553647001956448585375652631511889718051983499264864240779838989266622477097158047725689166125809791065429069543218969758690276325776600149326313233967215643088979201566636847052117257636176672076876286112109451666726568103094303534981357316001695598464167292332437553877589988411027365230134341157146600977673516903024626329656964397693730667479006785249195601137286533012567126729017491420196985066831849019937555342285909878166207872653531315257123039171198494072934814725752028049867455332253388166823246642896337595997232903133444899311550937995375062273018207525736225996826280143422262205430548143507342742929007450788320649653679946882188989946481350405363097880059977148611743690902831434636109169090937125450243803259624892445867102425537426802478228309968776152290889925685629755867507214843146563062725624622041891237908303520310189665840480815406670719260904726841293423911343665376946409033623461353579270321209361568283566060988530899946735460391887503506002720860066671539603756300126258957806873620093258584517105895592987518547904594267158977614163176028950325994771264974049799568497744309880391544185576884039879319919747973870343119626202919408573686931127006675755744129089205131246242243498017275515638997860119220993258369367976827246632401848485915734622487790267619510179155395295472246070183880696272062110073381216519051158459896717820506879582400024118436887348470870933759708008309745450480051729303246408327284238680175760797037190457734667900872286442534003644966177224390157005632475134516410039170478688785329594572378038321847300320497599691602460015653177608498161664715514300007502231114178499594940344382739130453735841297298473145787515473656639054889271964881702834995844856601615669690726210735809894216075469121480011565060106165337591329222542974547781673934501451348354396894261677811708531794327068236755031694239481878234702267884955889498638792245610143111930131153144061064982370437939840336394207912014387836723316092605986523529006880579239203840657343169818592859927087864867777966773397314612564312394892321063838795114594663552728311729634457535697046322879065413618602940196229192332932434419628270228652524652400765140908404830012961461720314563564267617218504011392635530608497782433841324703783438716750541353109809355749171171607813326061750966691359350294963173288285689213320847488255037858688585173344693544548731205034314631749619701097697374641746197469100501328293505943412014078174386671145162916652194545678429735809586629195486132582525409228297628607703141590914098169559330751065963180636354725402693543671844286721663923444907143294506607166342034612348743677522483960136424517239198484567164840191953340942511312377300763726988200507289089216147307985904767110131127783338267705879884002490368547321873655171878191049886758590111121715842562199651166576985959493404797136846561739922669102028348080597225002521849485563689447486577034568041497631587020756833620426970981745612235528279415644629536158699443698497120139417973478160980469847584869651366973827023228921034904692412580007746676504237947568852888431867235664073277173502833106647164942496414582108160651343903190673802972604370447367612918798498731514531408098509646632052949885507070845037478692444609810510857241347114951510165509545373930877627729363049463447281902706812294017065413671169455710082288767947574995243747801735771116734547992539059984333717896195680124547462930207375818423958750659027290529207432655839315761436038430991146786981056577529632552311585138630517416648236497789787558379824684548420152639569681159865960167812577500241748447358034894263594670404128851761873962785653625343764288028721557282972443541320776847370240608143136593240703207271983837111744050098790774999237597535023826064027889802754644345969375525229534512177418169256208631814465338595163893659678152858363369003088401299943986942086169487894540052822195902483983577301352248667360080280769469222250942125623302920047088806651149656163226199509875445778836479967099890480673984600454658756590445642462638803000545258898928043055320774176370004818341589930558442095797160025186509703608236078259014897859810823175529308964053256382531396024004842459248363134279872581841055259208708064207783428933192153934096257837422421140419117860757609905785028328084740582548556977117847120191844236550894544678681291816425904133224550141755387912185446427535557018326615419355090519078330375289476330021532314679304234978979513600147386181867617087206453563692585388957152077451589337225369398623725981268969103524783876840472469837472539094338829843186344092642411122179564299530510977501993961569968776597405193411204360365833826347619645074711867674065315471839431457418146006919345023222072256094971577700703758024982843212254339471785142636827493060685061696705945097455304364836474775771847188682452587697267410520039245915356279712085086148738066015636987459082856506948883138003915801168044706193601114378968435479007783788052667066215247580245647581923205863596587609992421782504507293869370060957413738480221367311058278857794772138103407785844428775346480787591917032842812108510853706524344627627350103979764554949100885383659987754920279355984779466028683394650577682313928007410704700667248657157469445823619526276944641115166039549872502739958246277393950338262014226464768157429748201339971840850003969534780315261369994575322398490187800138567836805293662477153667799659218660071292696597088565283745734468289036096192915981790160438513643498782720578020668599586440173118287009621314672815825779402106446576712475071141513943577722134950410021039568762485708602182561565793994585497031138401546958707610458782216012577366709840384581625815097420827930882196199702937537149064652699344546706622755148212314782843360069632217951088088807222721136424613928158418417621608969206514830695933871807342767803273713925805311752761753553729848835451071454109477476604637650922706648396596215746345960566176921766874055384873828052250015358189985779675640397320452141628969994072033699361264348311346432417578223680150842934079312524371904112328128528573519983588951271957686078133550468341131874410465510239310664073459586225882098458393484231143267877154586413091885356927533306247267527668031273065485446572133267086257190116785421870175173687668181580883553465628638296083701410108479729689786825863848100488222505636089140540257458281748342492909160845120653368924793423646133408732323486677800790335587572135356235006455715709628135982727702331728921549401406704145906822149164301884553492672711648498385326423311976696075164542092967929762423671650132540249083080432099797019761885047065427307000847426099941703767896244666177615981733320073886432725105248224286514306518642885940256856106575540736802922133946404960785738385502268034339959795876717646842576619324029339403585128029636535330712477764838026977566299657573881407145155258685110387976151248454811973368500172867070041235582002434198317167431094759179026502111485341184424678428730374289825046497342349972261936270805256567079300584783255069873891238541462265154659221165626847838592067233143341098009445013373397713362093399117858036266730363249878977246070773420946397174214743083867364017732095325095396608499786105928255123808657112505029132655467914560513657946695034980291477097323616343815610630804372664573489539253004569791067078399009717424717008528504104388211768427517554018121233757903490922204330071323130648470918268863604229073916726979592254895955239311450007456664763824322015295935448817866808445270951367786468035050600467085330938515879743593394895019124965202559522349135123539913879029192546224037325038501564515305784906143891117295818240501520949700748554450310035122461987746348833673710502928023322500087389569045373697870207417246736068558389761710534218766544730759567796186560401899494536202808665295360216119027055822041316199588252754157974309855987653122723458737855323000598421773517646409875748511061236062847511165905899555296887399788043024179710349743502179775396858468684790097971733573950663618300997266495170165627149679370719453657977441663002763178837414407968283602500101464908706444268138664501060446793326174939283365858455134352195595044353780957215374109064156570242646213933695947567389609128822495810336169881475149090809542260138072453395664487802773757379405572895448026101223680573192190307669706120008005132246678048514348987898743308996076327982100223433786576679386326877317756672107807288247550621314975078373409638800687166037299170383005177126994986806969208549630602947749954597218025362174181390360454458475141730403569855503781334012924156363370406786612471661255531661007442922414950686634121146903962911464920753880923447128402983763727074061959225198151516403144006804235900905234441718136463383669176246183472669272838682145191872470026969087275620515133153947150794464059318040983075100788466693870637772120635028165890764713580277447330773312010864257652394604337252096502369611877607195009934293897688131909998676688747483855292846976029976923572492580327043261927720632747725881642806737663486563477415914999138115423203748976885016197452526202040761847326647782408138479386110366245870590498255732537059392058852110912648343507507234395644885240485458830743617970726703487661317667361156472001849870956866557514052457830532365991609544691082084551004196029039505509102781387555098516064691390970370144905628470386448121563548728336691846641485172219992754615215252161218613450611558053559528361009364958020385356360996796498960817191859722852413831098914383695078378393299509110830353339892385129701926003844044818060608762883524473556196178478849252425693260651666756970127537125080206344262212371678093307093578979388635219338247392139119093962683601765545410594709531381157284162448207122260640434462409453839019981697044128771588234781767303651238204278195372863543414287204552399353531684791195211510857063281619598500799036799946330504542195795418192995707418886166657635883931725437785967367204743838262586083216353064492408422001231480172260195873269783283438508930577148820969252148984789788219136290374817011136852117862496133243102729759875783493133602259625692455031228986186144498732048481075100178013415350610285234092820380722507745679124266248049216453787633228759272151250830838496622529007814891376075202192756923632611781997350067685037367405730534167368984243928978608104274095879658216097086641270174096165186998209936360838345025297391272064094799799883348323151358910484668987260539722191908333511238327479640635754943023882582454477903656078199203298680633608307024463811555123394351218810763221111072112110620128460265394071715981904179922126880253894534880677484000879891465242642227919674919434558338190531724481212245089259755175231099155984871233569559362029095538223340987868862284786492932439032968282978852427853095421258975706438516857109302743365817331064877443638569802630639569164809027384976969163993918373254462014572059623030583731777301792030103236889086675917306975717689661229172108774658147753254755966817956001371446138153801623489081178965379113849945975855869225619503132639258811156222600591779093252441585557025141545511849972701687193397579927053329746063231255820913840009352000971833662751103654459294479217576261033929967352173308445069069190040052714652862570938457674672481714074873293484978875160808844395902027459276347018118104348677363312242372246485677843435929863517353988548292257369384698818998425666913820654291712971003666781625355180437732015707497929278089095206527292621608773780588928272718214606837489035011943303700535879861845036323100667312529906038814605311664282230926966264511926267562975758024354585824135686125025307126686780663601422127970287729820457715548026519894679176249130473284616460640799159718894634580317196701971298874286697979138969450586264951765610019052062929433866072065137241842542264445899384516144261027413569048843283045786880393536766811057111223591247458191377259409844946348363686827152782396566117909351058457853440582515733920512011415034378726182503803386463078526248235932202247429758606291734541367909111632556390824201306505045694366892655080021448086899065951323375075757108645730661398322900464328902877101140025805345441444087160666292015938156817262398659092367638205758124245169920877432463453955562413623894331804780412879001388097209356871763551133409692258553945813982758959401525450941429483034323492212525266550461426615957069329794474790025117188542622261078502639931882703410347032711113913961221510447822729189078243310119298465560945451306167349522651674245524458892468727473598478831397125458998573865216342515698034590431280147795162577022934961048070345914191237703373336304187180315075793496629505692687943282914034843974363106899037904216597778179719821631885603771369976706526952427073622440347845355163218020050847572853906056259071083884683583666282774586787112006951937782262041729861153229349835959816727029486590192481255453743340006046762011127661435302502556853718908797704461552996354788540828778664877888274590893776876385696855720263233912502796350512312495544044145624323570374913460092116932487664992913543965873721832518602377342047184700535705614488295828132559777724066182502741125890300908294129496743728164085481212479403507871377865400537447406615932078318359399381849063696276262947859249306794284185197975520741291112926158359536797062204113061052362830761932170290721403654707889393424763792828314357787410934816213412736719274553199034502849458171791084757164676287286745960862317693398221210579980549386904286973283330828618424501348819761362512353365939509360963458717903350946363129583403274196865525562505981146061680001419084091473966674559490896725585937448005066610842097610360734050685948808213228267397254646566013865676019306737464389980446261257243269255745746248236850535463251629908493859733258773262531148214982735310031945094277771283083048213428950740214762698436575817549795862415200436482552474946131722329148288673552892694143266298257070682840123924884722675121906597969074029028414641459920572866123518201018897743802657953574582177944718697424192548014441673368802106288727408729337953662691214720262626302330095584463285173856343337808310189804984238565336242289433649563029537616685007757269121640842504592653698881013324528437502054999824015500963440118460615017275172556974082504586178433958105431504454607482251199796439909818685590697669332719503956032318389858584093334301999242254822864882197260741557366112695837890959462262681584223516603146607010146883272378816516273196670635799397039175756599752351015451151688701587480832193729493036293464301949803154431422222255131697215550935865763068861839511005155900316496158522846244842751811938734875282454046612516410247835591392513626065572027497110254798971231325535301887993127058707420775635585215449462795220265067950321175739321494299266115256402672711754567549693539894412303729355947007217312445493341654735394745810458475359992490300176895950030056969216749319851716245557998691050640315971248125208477350545767780207275163470836582614085413056756003872220139761164925904940577447830555434223354341381817119559675459964090472498713374163873107139074595493432447338877690047391453382753223450257387815711241384353365617496263170570104027185211866305124737186597946959888824040507529791233525701241261654684209005235649318848716826796140751013301059052229938304993704961093989938096956388193857573157435041742116472655014729442085055212664453677988519186489577496269101790456915922666284873212687504420662529367571277258463520664644083436502220982261423756793369008061727039718505995700008309875241228867273269706519950012442457054590740387198320409056508347574966865903630084567398318820580437380111213316209660946933127575059296390787198194046749681249839771864497487409415578764745390898325172764583461095809808328788607828711712496808522501027997615288688700358318484765798323246905790625607536119436983598189654737392934556917809908013096794390902775582588655143554213266625799004273853041522654261857665803840481686785842167401056319221126017630872034535074138017035635080600624965249801289772301598241586327836566384172585290077771594476590332877905232246579780114185752714277658632033305570676723609178259978228939899846526862744299511761908960859523487170754974524512504607717415098806418793528112027311852806721741167830632777772379775200411094363190120672022658306079380147136315299743260920305669422920943444080788600086563463347251690009919841361131780233030658417823205111008180534130565887173611884944206249771547716649545858094309463252206495748330472423215526127561863383276885027624419572695639617056246943465859783582761150068098387635078271500332001761035301490178609063690970905418399162281064168670083533637979964324685583124028978969882624021462775362190045082040862750495422744749700588492189207738596790135891645978701099863329683978921134584627354198904612782805192751841636198108529045486255099699234100969533991206624154448786100136176687607849135872632318502756544954330761836346931245298717427878353849655073695467893484364257228150324353401619249916029271023274409998495212718403229044732041896066434544731852421957990659650939866043448835058477492349592909777620387882352998958042633001501162298698258476349780094549487739137541236880761798311213915779912048843813417385124283800986576221034009720267452500451092156134264806063391648842208312014565467023309556687588217503267579628237828209758313033296242435286199682390374720430320204633701417995804196625760087659631342140630005803965671723882322265259940018545919440802906552804180861690105818002927652079221102657173356869893931368224452244296913140702086538821840930917600515579704056585370727991090647959779880346765601353597480402517479053459502707538745730239635882382858199402732366085665938557277050400085303482362049786863513006191005075194321490876064134335111405884425739314529847145293743932691051034030989541593105953504112815488263206601191147909759517295721308095552272927375923578454982044691923577421043746719992600379501867539055673089720923394304293067490143368599369638330928514387915096817724630354714533313774028446415402002249043178869455237065696020476037405451903879208149348593688528838870546420631442067782231586836726546469432590791845472216105005234602777826320933386942762548827378258665441170294363184151418433888164909740203909772542464836161790359529947364943905578382210126336375387331466881207092789209877309970199789517837391453351335037949917881083391823673060510497249400072501528543779766621929909860798582834827448857206872523220332262653785955070600911177771477610356084325384792263971235961570325602182735798684543042683387148871870475499414203299127946791680976206761860538585838768047861770796904937933322655382182891961696988142123162719198488207310144551854878233634368333426331632164541098483655222807807371825381012487950842845416841065957908160267885313372652611645425423793891953128693311037908535951739769723671973731206581084276192258750833585577941389513366935358910518839877855600505921097039562821215588803999050928164756067204672481232784510283498427857191685465830235212571377116423789828074875900614712843779633468060739758988606002796215608036500335168464313826883376184394523658082074505345313351060367735075997364239397192307792894759870540591884298351344158656034688774114085219110019332203672448191689067320581259768285495497237544272265539851622731172292060282762163513697180348923274407027721864254838346618152773331567307673218994428412633142906037235330151101965063321112773651945364976281047599669783586050273413957679730414776470907965974844401901034929007178741799067702815155621459409864503606452305301376396120968730440193163054354017444636166704510171426536758257545324328376647479780915673519091522837163322570186972468798771700752147943171063137619801282920499203833205820320100580910270236282691365010095399726145470087750684769526256185637744153991837441257396480003675044326085434420487121237339521232233368156071507931234527821655806855810301669566515292527896060354650220032574409346599654770440045517938910393862885481586621798888052385213029788319748140906283868465450318291585091028686016175546540779147328274333784443486871802839855539347456030559808453694076005436836162679190679370128962644808648082367702499244607990181826945880107689992232877320859640500793036565184223094813493646433312697130280468776488910952623143540822602349322348159259863960190798516517233089773300312018052128262639035310780762086598712962767868888494758919611772770925439395205696792254433189166451998798773099464705795982879638355563818673799047727385747511916067384349201990508535314331643337145915356017611155103012829916340543509749379645379518179924850034070428068216298722815071937992009676052602824201244931928399877351133282337693865422264476417532666945126184492659967346094626110004718650864846012503279051659129873234252682382105259662793570628946688585034840729252346657683519298833388388174946618461127197588509090957008868873600563084296171204022919328969154877785159595394960173795794032779427146860109851296079996160047132953305633391857890020186562479611053187024880986802762370271521880220714992378563763332697968538325910849349420039090129934704530223586175263968368421019032651813036222368630318511645510592514082771552761152521893999982656307252378304223732251994524359282894260848866732029524514746158546420857271696241481253173868814556790555735007310537192844869639505101704860927533822556818124668220599915975272398841962560993829203209445356639088991017646881255084813284014408376317385644393821914942679873147254991761797329586886279162439789162279128858637751172696523869046958094703166780763763098459041786589615413227623857223589647992529727572230031743142296247277349501555652353410146226836769254320935821059925808301675073428466523646778802667879763516900330727674995481837452568544300036782369331043385856754898248260828041369922077070077595011183034889682680950058991683237262635514086931102721542441265184106204216181986598055653865524437306651997337454877666437064096937324411205342083537119061992586929317260227575840142203328165544468688725773978256932474174591815720237159800809391064983481548945901342629092914277069296021830204885089895996490119929324787213011876172337709426197048850224734821646128837299133088856597470884143547784054047507272613299875054546924585513767756032397224478315948553930784848095047153613348812997424454550071372732706577841831371199405943274949401827244449105101493428090891192542270972879300022167170066104618149577049789557882393103491884669030552304246702124281460475257369010079158364131964614443665587498649864882808463055550895017863887047450319850867602580269305332706545224378160510505678560058035360873389905291966654728908002538412196195078960916224030282356175527018486018827921038455239290878315055232884178726594267170735686925258266027684872722868129452719006257872981792058860594166407604947149635617453557018297151377660941326017093048010809182960653445888649781847837067793631737492451630371544531587218488870927096219062626089735915756607074774028572400726234633302020648431378421504030819860427379560189189247035349000423264441395245243806055157830424914688558468348913326858073349658236074528915085703636736344487230645728371106077505642006536527067563344014003354181589304530879327840481786646234468699375085301215974808171553790701422605196402287234386844412617188085083786845217841146549679504663903211820564997228306391596112719349501051584129516854849351898399064737147614358936350526075319307552245811118069111168925343017222073884899941723317829760474616327879450435233118698710618065213859922263489333031635248591536657407398259159775908135737241564095368073581907053346281440506470373426431953798834361943510005113312137920225718115393191678649701361928838410321405010812374776547962144779190948700545580914354203681788425566537563557279562478585503775041542589288048398473765561733082388377930033493112000323061743925360932147869861589048457086544085843526660220105054761725673625792600146040166448197216226110100103394570365920080865940801138912009546096200114399004230121154375689455870878787715649644939738601761824249034905023542523943764376584721269284987446171120514642801741660599616835153337158802421273872600467347554537425239531535193083837942557974707264200616309003368904537469365917151519146683376061880054845444689681378938026088414288216341720332831406022129000405159300403464072109902573797522918498602134392167378253451062091473737153223940372086171107212562073019442549956225102843941984758590000349891819164665759490048461642583807824069151246102929268607593903618768428280316938878516629441229258458023080671591610851139485209404991736824668854283710676843855010292243868449936868394091175525586269072109365005531800740940838683976623443988606266999901256441980421053105846368857651162134832710881023582464625624071540746357380842709169355184116398936858062115905724746111749819228321925039457656061607653650772871934501254010566562282187536447369198926166206509165942210720491107702214518355117887600813450950970990128916078723246009176707364145543751756982495467485022178040676469588302832025259495576832067114707015481544164744115159222068529558205619768169024574411034904951462995639455688468407319218727218828629779528001387821435303648608083717324592848078884270713973309266000533944264824642146085358667042812136373166887271806988292794380754495112606564267125807799368986207336963704476312776978824113997262587406982967579329708483327072191727495539291041811826207188181548980172801339536016861279488135796377678470354803566428525745283435216382532121691124300589673593422457936640765709227089621606168081540342533892319763720827968621661167941968886096705460559314585140381377313962879082886946914101618941318542468361311813342541418741193722946619813612010688639816420857247100935826338800773363537191949009728679723613500702988556775008374908716076721165996492029549070097022252515277394763873462160218436060786486748896552988316847802947998043960686061736815994195385472479413073611077649584511575227801039332155021432560086624433680528063377748507372025495213920548166589399272090351193090463915792461944312115023993389535535414930517299179703266189429644026353869432545718027122016698398209895439100545014914619207330934169495702910143121465525607280121685530628413575113466460974536340739873271495628433994748239975582312349641416922971743403758697214263675329075907785600034987338771505622225425496297488402656464346706533504547449405917127376593098658892948325923152656434395768442826444993047564921370339421750110616100396656705198258212180362821323243946277749478393473432090779235965125855171448372031890735499548954059113749985359933533653174266340556850765945176963568640293704717042562147839703607307691497088876715010547900636320378862449135437115327685147501026066101732009799746408176621898636028238544136337020619966796571120515848264604355623003273458710885668669703896261642148652249424055159103560541249525025276264561070626417527254378344320836693463935317215823674450727247360859778693208727707669332987476619906260945912543477640318466547892025229688053603992704359609145837867428961238979720656100174153961047986979595737766257871203331700509852357468049256456531359833377812920303760419091665759221778064930049404208867633202134948854126138407632683674366165127166035780084921517136715395567819624993858458545041272010573656587250814475870106398549644634512953876743905701249787307960058980169992408606649553138281901105375537856891926064612041225340702316534975228325818651098256015508250433602022722388844179068070750890155159395029230312143476951703407375192559944043604064049865468328678002581235930777600570265142034051025717433600186909659632913559910573231746011247610305793070748491146204377344028173207361890126019957425359590066933108422963537279291292579331907010887396892966206640991305379159467695481100665769038103391843584821419913521338015085994879194128014279428625349870743176325850089000916649316350217536383013334889234462007036388102440373747943666632283027595893506429715632258305204122550055673611456832756409996561656346723193291455306775374076652670800797190973230373222593558490321235594734534940811341993794546164177440493605218015014980264544725242226375312507833201811758238354986732085041767166891537565602113700651143077707287158849848912679998426138556173696931905298243464200255767093344566612689306749001486281739413969493687482135084144163405243964763032945621009828333757684851504665999841719932206874111206060615151055691704842978336965859678807146415306869900829851138839158540858841017316012242468495692694508241056104427303576411362812508640912118971092773697720234180996372806381402596763383775013058704080382484276994923312217476766413212653545177381913741125800500029763391457688097676732903219951835153487731748128387978634066617177157402809709607879428580078862109635493867871834999143137741060115310428545168684041119220569880035796620060211669039390050467234597667969718232175331282505068837854343289097090202830019161111495540536819424450769546995459560361564130653447882565974685458465785439936065552740872377948190428731553863594899914264730595008244024894732820138566346653996731632876470203498837285421600033821213113010987906158510878902992332182603675489592887191468250341957875338364544474260929445897563510840000086310373558663063169513097971224941466324115383041839600489255833219342205968334242491401248226766266781275176784347801126873280166290542061996709001673440631097833941901048769087170743211738025869797399653176404558536611841962709445777593441792126264643031482784450129928316828834190537968472533298519578999773112840571122127712295113005279274409523572011049228797948891433734242614248641460121372268981288391322620698551218673893472666230057828541616029819399264445075959406761121564952282830460847110484909380170025765019268411718346194025728189111997792504676264076708866380863051533101477327170083440158397983411770486975924038921730765818345407340289158906737888119260923369387683742270802385233456264366209583108091892388099959901140782852625149796114731744131499836957435944619898667746629548735893752638886531839898255544893817244292806364935501476330588265153473211119060833062742120864232690640980553281044236252324610239637716251130298927454918866779534986108469346847798277774348884147257400234057026978601754961598623366534375114638973326031605546315202830781807637529791345042788041159592915800078074828947484154237535907726644524289844151435252039023232063989121160910449438126457157047790871750479826057498478395875539760714910273541761621401511947388038121026386245838349281810581251836163060741678439814304562834190336184990257236753693126280788840683078923636319760707559948269884347917093216736207565128178217423350762294405149169228673753786142065806823950732395681823786534883192377846288201118103217092051949282481550237290019082844126570230140388023527079021146362743275966227012850757066306238802312985416613676647833149737708859839417819135661132270327512534583981200662639766841870178994355441019933129435969110624738146126689288599194029494928262560821611485335393602089413824033212366112480263800730056662662791422218210191891891137252361759492948367872470044912077598421334409877774981657981107678739513501586280857826437596277152786162804220084096376641156045964491676133622793086926247574877855701917812284352456010529166892070591043348347195200501494681092441600787298656116991716398506592589946999086165718516340071764527204734046632540088544103328076485691044125608528930158765448526095913288827553031121153542643288280564545902861847145141585958878948798723262224223592439406476972620408770652388691391514072530974921386009437228882689955070883021276480819465090544739880538490201290841797342550762034552227737493092715523691640343291095399590284043689367616477236411536469528187253188812626562292383790238696300977906061203608167129057515881000175366248355520686595398977375935154955946080609947073938163679115603924497716506342254138785787934670120549192448026142691823187349170177775495939843507895111653951905468027094630081624205757706058182068120962537960085042175186299836158685503113657377583136640735926785176225595141740067823216805027267949229393516121864896452529772712831295607521675030203349468800278018674637210800058761065708482810599944986688252449953345164487448134578213599461403101940968249205393944851748017572469597330558284197420016785592168519606494154065545111095567826105278418425510076547312561428854422824988932731004134340491856956906330348760385983497493217856023664215243671696402484903207720243577683049963424851462868442252497748429639073501540808848198130458046484898133862809556445969873329831802071794305852278445330873778266103607211141606805215187573866536604724947090342718399679609613850424044872752837698809153209811725216611330507362076068447107661322802670753210507310106397632245677917650568355276313963177837003501011293401441095754947079187327345784351240556117356529441373601423877579394461984748329324723070212975476377163256218722952836687760334369292139728213600227767132352139612898438345468965667815608213139870425454397312203855820085141308724629585688848291359449736100524500686980055578726862159236914548861588948675689074413273764629807113168115891092732038063671230394422109176799490399815555158258248991316288965145260165545425261109799119914822778559118291990058637669104312559632560941997203035669559882824030153240083800654389049141831192339454100124494702697389856326731004787553896931478248767284436381092467576820984093122908079699944981198551200805823020478761752140887073207230935847552315814506316523586572678835175306361521914507993374837827105509446651383275285163468587376792560910718374953182874198966731907247641649898977453429731416297188211251585249122500672489681564598324697125675093931527405486518945032149398191862103654434486060309880576309134960300170907569103729937924369865416836934155433666414028597543927694721438594441389950530240736998304063546219579767396214605032649355544028725633784527784100397057904453176152075908113469774820648271857406872730891069227944556818849400255857465921056545387966131944133742207902312676229437135979076350128281332487296891673680911324108878448665446476767766278333217849426564608128261641131788648641468294136947547762270187216824846590521729651805118053789637688728910397050269121418501508847457419156494204421644447523228642386663144349278419203335231430336511553559179264441780181307483519639678714861471620825655018822972424940127053270391628008822120305276302311314407178170380494327873523308546046404393573139758681768933179136143165908621507808794646657568825349505920467478070614520244539468360793164239684198423434767150600817406431437401775186328928053021746580035550640420076292128699908859668737120463930999880495131200747187448796833694858249469496321307432195886102516753745108844284336307696464921136015580754986616603959531663202311144607402069321517650889874529426251069866546271167703824840890640339909179432597284259055627730073499244618312184373940056321153114760205795729139244573424299968844961270367077574332602870509484993836844702829331352668333982684519398110497910409699896599597194443253407094498538977575800598380200019134068803415090448382669046875037970949687463640531230740962172431118632061419927520682876802633465943277223600455039034298393031127886132837230650102568099730436450625403890412501522444291085154572328315477810446861010547241201114721398802651948994036616644187502301465682691048168184732977457128157060393582197934954250679276792704010821961772844911758010616930258904432609197558579055265207547066909002983769449238011911313917407813957507326867577976970215925610967356183280334149809842334502008577661209678889485438683825992384017607036993602525287104105400957437890434621564953279000538613688580427087835354953168273451600096957911278218878094180943899541623244482577310004377974922700963205088303193606269934389588924455481447621459819875262204364839251679092418130470150962742386930335203939635416378351423374975680900896221075756024847220447437032955187892270474969122833013477449780395141372377872037820174395861392194136132570380524564847576304035813504237710175110606003758348158586496650792655793893198056376886472689557995148227132071148221191190799138572010601081339418910385772768329937687700575158353470328769547751354283733348218870081809182267494237737929310246766486379606496275613643238696624760076132601671907473116770396816628408791515735133637309860215914795539646914808232444065697513560327320464003821162724099497701009419403872902703705000602238857407108698298511421831399896799749002730153627858502442021463137173698794983558888422185687402467284223541555920971849261044006871385559558345539148644282057932185050193533598698150655271904205086883144951317339752825457761998533872533924358594092781454416950489814128714122021407313906114690428849132922050443038548800879556384022066269475427155429476127691265409001204108034382365651528699795812039856905995214079110914059215313141473544712625396465406458911013152042698133244440484812167751066503916887645375229160217845012395491978099539580310713702707963202208889540682039954973147058069828983244101409061910151420926510423906440992372703187260173247908224274181941797449278514133348000021725395083494885551914835590111821305486810102239133614023401796735735654858673749290240063109374113042682649418533168269331504173884096292414511520031665582298911784307257233492572449635632298025690424493352054306359393476451547822510479000512371040814409424043762468157228131369499723706282633915038330981114657628443738350094212776038454818257302060995843213960396482314018569639694600501365280267656760511754104476314431165388385810556439814315146343191118822578231457748654219700125411368936137856672939590065262067615605875311350780256873135067519069784572632178431050185302273929910185812840621102028974028945439840910852058339396351638279518813337225827621522461589587169970659703559562710809704589141165848708063329219623567073372489270132036508633128319458251420337157376518194046649834683580523090145403892036717167214058163121794162102572616395680148337848750371530946562027168834512296487202285177599440300860142285248385631505995698473498826572745997267005392441658277628772589782153465907234734774411907734095744848501318430421379561013579486497458305140665045047558808227309977403480161233767848608706554404827257662711919190424586639583061721383297171129400130128233028312226051554396170105676930855518733509736672648343314098323813173611194183331003053267350661414209677551081684264555538135762933391734614033487008124718715267547980780389014725597956183820813387831885030427682544133190858935652403302255239207848302043027107291960569153685200269140462015227892358025758472855006277773179850472205377132113754024501759606708861974777300770771970550417181114394644177449140745439683157239479035361298957271918281508689351018497496406239210577586650263569138226753084633847420075086607175276831051557492430379388139855815059685258587864677549122221043741580378956634620937691185346411638244436065683541659117329344687444595936850329897624559903521669583541586930326581576701338051692720163772371375921429922142541891575049545218769269001952390858304560938182311453749811247982319106547914979014522349778964544108505660634550459681177924532599015754894418767745989669602803295686285837483639698709070126076176096370464385688233614458460524238174702204669570481590567277774538706389197903462318030548701434805023398545453629502429760710667050996109363457703933404499862206637484538026495648288171821429886585653654077852684907671441965106695905656919237010860307245154778059994900057776036971011410463279913861320193984713476116683088563455395069174053622400936649569973484919082322670309411487579760397504530389113650264773111919827008583811202179639962518357283246681142014911567036446346664312522294130990550447397969399240855264860465859912479790761863748308277427066246062515529330394888061214034401714531346219150963938988709239470652730506687608770326882667397036624570375204504196019434656661778368986770976851693176400520159162976675930190793338156318321710209138416611744578133939125762787792877849811050881521210903796985909276366562334896985477421918010256363327474985521703065324352648435326782236119540375827629118761132025646560183996616141725091913763045653498008817472156936464023969396483011393852936300729946249612781619701406491593558514539083103248637443995947410816610724505447060864829234892629374826045511148642962429201054133370130694977579836374794234149840065344357844239149120957637778947392837245855319419494196843433175608248375217903256122306428334387648620783697628228637043195658112732646342724548976864639335669368428205175051918748231447483535821684946193677905847932947291838274931212237695326742395735310611008744507512341536175708044627500364105475785343798388732131937181801754401491721925093619520721148601080066378286407492730566555863774562128242060328925473116874767308179701402373510597281091376930161673374122312459260270399518287358673103219624149705358247873223773747771454187082619910542589479860115880287641802333498790593715873982094117309400589599231337664868420770193126799067582225876699068274147529420523616718521788175365644522117909392335770237097454478982447076253797203923927274104002021293153072228055232557754143160039596643905723690128024175612863040605115054107468915304602891360921707262051496337894278101553490012169196865300470324895364587117651579092592434430984452194766738229259277507161346909280130203017433876514519912056237731084427372194668060254627260904937976858141039913716499704918665714088646272457946403306085898986158501883092192034392828400536474971213415004774474803276036773788634219969248100985415445725226982311563321665494405152780813424156408233947227206228431029483922182116546793235816297909962647674412491273873100181545118313763679539969605035740033357977576101542933658962201990694953732864123345701996621607024689851085855704881088827947290556129023701628504408877644192331508439667216463950555465981771284496769890260026059467524632895651378418052337591335805609096644569152487215008642377633996279816255312710624786394741699907005256257400075857403028779772479569848032606956142757741954692216364474032170629742974954824863976117945883371087068335410186455415452581886487862247546349041683407149910912770930321617749736283501847170369881147930397760935676958820244826213807151874257318709654348487191233934376113251607721049351910751258956251304546629492906326748491292769826074938746922078196191034241839274005841523588866965309810788240921384736854626360824794279780020527032626334183735462652472632768576474389849646348295974491709101993790573683940126532567844834924394682361632744860946161311347589560179845904783069061481477001294290489456501763286068587967768279392669691733359037120267019067485311935892853825956761417272166553556933174473191392903673734479809366350817840276753497792680056924493401395562161604260456816730177544035211278933382244823828718091863056455333819879730354282280353043859846982680866761426439197188248208123015239395402160642241971622138338611859391368833638627989218103236462001403781832097689605019682105433174938537718305050151311491299355901406388275733899169930509573516416108217290249221871999278342543472503658732175260969259778715801833830015461108912718377187646862794436521966146107550071233159276541657777838590834753006305046558398490025024102128302796494725269983745697187297158710814283352823930284242403083794463534837934328824411614152014333852182484791340190098634859354632192863773049725665693269040629269644195731326896207047522359755147412835783034144864218096722394918836330458699518916184503777538598721993961536759022942691767102821769101817875088356049623523014753982018695531965458162486788777901748520591750126506513731763738082435494594478050136111870192113139792156468528543347635172018422210729574319769033453477061229654411936398288693785609256137173669097286182596119129324629985696538002098758859943531625511743908966902586502301945444282310969505434302328545509635280391687097575740993340853387784966122468073170068103679742709559609186114445217007505950375531129020202448629951657799088835875323746487441764608440369092565786977512850536271219772946450899087548671884016136611464464444798076655920788513087724903559060941611611319629621457558807139837744839669890078680503782689490717476962421880726829471689450881766792832657591034429335731506557197020970799888246113683191436667281123884468013130822771435062489347262461639059034336499594385829231979146261931680724469748672784769474483587980343016034330718320062049785978381077628578976695235833076509936610802821551697771807175762057094204907194256978394564789753703952743247598107787252517450515076403650942035738150250968668851018723494356817597215846987153993992966439692757751030315055876626902416936737416519865061690591861907145540844523942115609115317789374077517645046005862577569880151682595343301120552844983125000691446427942478492706880554151383798830960434161701084995729048291507055349737346527862736028887421806447229432296610304224842972482270509614056519939381218499869396643740097258630068367403863250741199623672838655816158393590671973777765344332430421347438141502609817994313241697973106299602546172837343213958968821862095797508233479751613881533090293633096229871224967372695379909722753130149578940250465710746653893160610010919860598779105733350264849393638759586382493380849832686326727738312570998276088543623319047425920702861717949432213365115663683268905588983067089223019292215535865372538422543787497979035178132961181941971210439374762398545277750577087067523541955984635078905280975937473583748583512710153835979367397329153032103000330947572122622477268191823868322076993216597932124145461430459934197200751600118913533102748529506485926111304913613155524321368946621640518977398050885897360252467701086066762790900798201844818098885790588406740756006334616923199353888525714667656390298187000761765820133795155172135073758931840134945188999111923731663097309071614637712100929597404819241779586888814120714448393354326589332308256506624674647386268019434335160627222981601046775110294382945986828015721532805597102478189437024984224300720917362946931412267926647063524128263878430365789938629359131893891797408453249839659727413886237459196323477121565534686181342919713772686870273222487342813215762266792043701645705378246206793967932315666327269185825960160399667465167266117176757616757862306382511623385111479220455291308480420319994590427461909336137631800272636924940941319657352598287524669709381625306214849225434454508624629864831626813584831938812322137770009729882361563509631768846606513707915138617840608343899517581239006482549138294936433370531172406916092069579217872888765176155719271982974372770955032498117682680466249113047113751265345145280609521371411925238325121791880842953153174834477299508117776004595041276703215874062160243992144200568257678404386575610412511042768289496220581914431449678293523721811913350317031396888763066363459244560729062331667982533396686894970439290361220273394268058318940103456495124410039177748839427954364367568761160800314161233409804022095244065155263446607872146926219457205384013625755266558220673318270936495044513817741530663658895039801125281277109458537329281449050930117539284323193394509475409161639785600217714326798455608469130746353478413895118010612255369996082406800545732627631690789801847407376448442530531490219152759319292914064548169948275209846507312163324040752479613069914940668964831840970680682753856768334297855149218992716182410731063073098804855599184801089088013291486144183170652263225930274110146651147325363310075042225356553728216997377587827941141721882964561030190718659536931565493120313391481826056944943647036730544834862892655187113799345900900615050053475412163460385536674062322334412650573178749413725459968925187106572161322846892063172423283515177842440747846631496220749249817666749775257073396795293377586889740215814652450657899338860638602825806552151346920986534224554842324288144089088440151571296674864503046291569590016908366741992217452501399210135205455049237079485145519539169296719964447315688187143391514331505869343388713421369435477022224832233338559957392418784753948184436322199453412598227296366410652047433475075217680558418093297546885748175412875017081059653805924097002496587442552573287435751033997938294552885600466481441113432529181082863722088225712666512504781222665284368294559186548732585670467194443870728950053541757397587588251059487103503618402950477816001432140858115376756283028910723210687672600745791004796881810440458885903352468620355607010995011276798752917621678763660291952874067171417003803302985148633447626713865041800283583626291557181562692705175339574429196654180517135564792182878755142439502085765363819355380359808144003897602513284023658763980383195824242213577852993233552270344689932700512922932091142341801195688913976691852080391359293494255441911924931550032378487828543959583536145472603239612424493803631710234731894954929663313640098093116627950763489553017386379620344428576094364516519691613356711514120583979744693777057701947296661896699000115826045855985940815761580325598694133444345208394785235988901132393239613032607526087352054551879815112520452116407924578321918163410671328389689605851450228356120782816042223203846727585758540385260094783477283549156965858091243420862687650775708027147465910076249952110608264313484429095861286323111212854455682335042432587479303771095538181631071688175679488854307523266512543815755820772403458451664685372234983669869531402851228288449321846707687806502592898716900094881357867971564924636810717263262675840368704148258409870138750853022302059708605456081957512295189302289517624726101219262533106263992953061151901389989136198956257682342921702580382929153939238582916911411255125825412858627918143565959450657486850488098940064546810321333030400355664951808471532278205197209470675392930974975938745480232608320637088455033894582901834037322924602592837513010217386574399471529651312202685203753722904107552493265754480238775977518705578201288198201151455403252673004086700357413148457429335690024180396361472894479627290099689331468404838976433474487322187512420510353316240675174603382439922051291307181125329454288030114618245898617831496351529575362039568835616169526137877602668698705721298065569038931981709877038071702604047608878883298256628331821389169512989950947387727567537566814771342775425028159445501528354714658292463459588977220596688838838013925735208910497944644016377559722640479553921000118211723006452675484288805754336197921853043042714230283662911968722675665453777745383236921585020780480543143997264371339589133363697561612865908086056771729648842053377755818282017427432988764122674644115306387074161987662288137725858580493723422776440387827438796913175222891189473490927837919584203465396945372453168853368573659151300064192172828813890479271146069049127754763108782684801894747884615816787672579046628323157043530218522762625265952597555133681187988239075603433147850580214617270491490798875343561383175521194393655755330752056902313383426518598132486798867104445556504552381790038839297220421218012984199324617352139199417502182950855267261254657883997204503581431873060097559975614033994574024327349859766881911353177967727417312142219352080160050116101101008177434073394952373707193651410595406777770048272586289980203147382778695739529504111377985381981705501949790619261221840601358434444110103362746665435520842751904552710502269186105738994472539374235149096468769101562335182502748959381746313157780319976878412303726929725921028226064007812071661733247454159917778847288380395892363103972197540127152001811207943931137476043206739052146655887239878299165116379126806155260257596616543676143357407385005621960064915670224729024860033585380324475203221850599360322717901339265613097033362263296133234758617305771140407648364598170320804899643737415791800119632234580727557360399155712109290379411380076596499012453106825787685989984461290143966236888502384046247948197407497352536959852817604254862149515957560257323854712149468879702603275991185969103600736137637939335161064140247688183823629018050771057012938510305582059785435586111578101528946988142596195061364263202215916619140035631655470403055549616628093831536048158668786631075456223230626920514998497169119009360943174607367563203922218066196566636300897494796064204570251772844623783783360649603380429594482704561457405369808755033227640088189920592417152402996587321607605619633068639975864332914765569706546049659111914204993523902049277980053977426913778369592057576442060134950659151003526806637448524569334504834801809670432896373848967627445966325473246396105935222913520082395231351134355622942538362769504909159923827907883711812446849323785504838892545710652921198493471903213691634176023628297470621860025784239868700697180202575161820439855348097171626478607016563719152616183379408447458244747221092103272839907853605120760873802482035073128426348518063083963014676418589937035482312636141852704921763185745358005050666653047338768884967617788762316934734997523934476327570110336600270296732742622772563109049414836443369792984623462406011117960634999504068147388839044463003046636356236282512239101260973089842497223581672427185782307299158776820408142794255435124913244318058797546366604610141270110685417762221910383324987250714030677836472351726686664334512530669977999670229561605748362832459277155578543270908778305118206399580674219063276882001038732915831757066559462189825083754417155071122540274386404718305417610662287416609328857476723525551545599511720045674296823438864315125284076489571909397315416975369723843374571426207820410865778531907550102849748657117209092241545914015202666206362040850400805572761431923599095188058503036606216852346788358288220206331409791197915772005622914718147563184235728405158174235065388910098253860638362357887502990318378052723333415003046945926094315631719357181023876575538608615860639245281725399106939869637963147774689174872648036531669408272841899390228278346113784702956912698552264600551187541883624628312189221921085081888858670799311228126160604029820567666387589980036260021879968751799303998264199951239938582900184161391853284461818963321758798789111669486881398861014996103668225209909899201036765674262920583456801868677333182033504051781887421849551678234630451580831468835736383312545333462698085170334661078245060298547131684820324812018823754432325054081123863820538390505827591356169282080146516143774190499663368544142783074205545417055065428916002494166073439226122691653352346516390395000171901437682425794713739544471439745502644403531649718507392606665853776403117536670961701705815380937215757960924198759095936550999498782446925469362551983041079738971092715628184383026291571375425126655121583440205241535176159109216411079039517639009721262929776444607755720264486022551074813586802968112926551009001711408119158825453988531744253515221764397542049622209807777170224011556649224489848169183575057359408575146067622615913392635174358876656727963790815570406571511414103707908325454278880223639240671963025632912437978611313225088429775139671985980095878717708341909698200419382026232745264273653096271164364128369599699757113265945022206047603984592146434286181812985177408184597525769012142108110016118988402791844735651148798113468670871001761427379824286237150461817943319419552623002700768453217483195201824761591142553795848854876601438081355403779594970368145263323558537157879026696772481554117348620971790160778673449826480055839393510970160807174355097530587774329787181070108175565350368903269698603724620074458042794955402524198693479299538821264138261209266923575153585188824061549709459655157584908146363311275761957910935227395922231984444480452244896343578009272185394170260085178602211569592705921592046888802085709874365977922549308142590190971285646259986328464468758911885930585427755183760753747772943171581615113978134572737461973364641941240300918604484094722679669474696128248171304860000790927102860144638121336849500932144232174524141890529232631254540521548353293120047517567758076709778598645557258755478445976310915100743709700561986835692141886611148963212308532291232123516690196176353953484724739261734198207474108507477061971504762094191722882734833579573969957240688169369450693407008888326770229030862726468101031827764532379830775787533659574114732364834137313873147056544077354213953863538115425805962598801258587323987998429585484301768585277834206145836146539524584495294984249669383492081771962102832087209383766286145001685207632680806870100114651456581824271852203860328806399753039135518484124923742860211736498663264255147760775635207298455163106566667064131859250379191752106292036601967687766818813414368895257628934251982128450864588794998005083370890403511898420672239341816045347480949055599045806683767207663189725781202732842703846380346266325128564954860582534410789128976460801769863019434080940399440301552445078500674601463134511496124091371492584868101471219934169382890210649330389086355705277963958874378902430295023917275432849976277457655753356854818457121063630285832501339906756039750644001861541839691126031042234046776284543789461069229583650365153456682820755900609826614891756120521884207352130507901846968872297727498276111020026920854545477327510807073862809412469443646815178528651879067977548033900361174766967970223097093977510308990988062800362342917267768713017532059067418486967162708846139871875459248663292430004593492464933781565045816416621608240529327707265919587378775608866933333919657873869494997798760565360038771916323595703181556545144650051330899182971793701997930635312776730007798114439029774631733992726920229127324539406776463244003759473582596179172788125811222695393900755302807520103567626709325375766485430654150016261217883092196478576696634126079730006478424586651149770595709402298140871375488852663459542485002255712915027912974219454744344561071608308662986131995523452216698947390395941911343536150112979458527042159735548832142940835742506795912933885297869370037928552896480788358090815366466778356635203426919160264891087302388694069223060897544755703076486723265064252471073758735114041946476393549006982056377202577976550499898330850161190903738680521166860918664849545240825119988562158540653777432745206502144052407092111559709492832710179527577774077254081520702797643755089536519483203162631522583720987992447039384750072900440080329541723418490211796111031426693156841775089314430313961035819536013099380230150330940626618216217500134889055695760285412334613009346561354869555057978724261006327581393794015711653891369746190915480162417369348812652871277361749030822493493494293646751982239029758096190398863796995681688210277934066810210791265976687377746370124744386112152368357963810887230962097702561910490762799259386189181721005567259767021228798336713132158041518409368909547508478722978224358315421433119920803234522614601335845753427650978348438115218324552546710610082258826568271516599245842399561133151772161505790583057514227712285537212919775349896095023981046658957080824753506501748276648565307242269558223161276960665010431846852578903854754856983551556766546171950862747761178379630298760890552140947099473362492582616598335280215859919810040569227893450586374756713992493081814192662204645964602540641472180834578904016531725488718337291632941697874085095395026859093018560189271672389059722385385222678603192673098760546396482023143713035877445955378759857033920634307885325532136139867848717295246787648181124790373412912302206987459579274348829382223384696364098051467433864731503913915696756637586379211262246927954150899258964783794630195103439916524504140035489103145359779418941095904280787497036589250327596571080769259826077197015253321560050075150111080290856963632439461138205856700476796109353208647993044604639660929695282886656124262347121285795530915179766117213426221991886197376107437824462657251747831184197371336266643801730294194937515104213103227429455050221282322931745174964851843487927242009635989969151253427339818157476212878073983410101227036161776544479230841705700052169924357845020895500156108662465106516560372697303574302981259712034744899173350696738695189947310436041692416592732921195047490411385563482982730556408935826938842136040069146502090112916751973064678377766074157014532345508222058874028246410366069027345022383297192214417930927774272179691162045219844324391331944945138663418048928003923411340845340095192110640589050454929625547531962123347055097722706438143194830317730895530406890611021459907193920438456353936196990256910612615959327345222454752939153851041324693828600954187617214900729863396356356969342451962066717070919416876585150714898683715743857466892692589129951102531804285167542614666832372088986062167899537046003013848462007310580870741842090176268056670983692679847596801824248519184719271773126107700087074211818000040385505814146275896195757170708690955946335518801046978014381819614587928127045961132464441713682946044891856732234964831951509606019223751384166697482213707357167174807940017076661197202645875981494605452367266286643624732267481550622152026332254359673881584993088225523759375221282356458099976897362113861253231067508036740432299078565062475522919695030337201634125418095304771774901041486821287960475154611391915350013842803571880074475689701702539130482693639227732753323782153612751345663592433366593183072419261764559779946079391580522620098170377950436385765758074572041621772353319750351659018563732651612760742853974913574180693145897819017026446746267020597699023151582807798163511712133330733557512196887959834647470742429589968681075912687658703355692982945880370948907081334746041883242178930650623734311361442997159299373112542318933437187609895344698229335190521580301627407713174661271528602926414041058510108360665838966116110783965127216605795393981667176985211983697521840205970669262897768661725781098342255965383133397614253528074579377070710414533367594484608203922769194528575759444504039428518150193748183411252215970565480801354679198716282818836473850261247307790660295573260281052286737892485106521898754397582976460808743282339354647290176067463683047511192769160019966196427566420279393548838908954758125984616235226592585476674339858822854380750321035120935463181452170079948759023608775240836430454287085910226291331395894770105615642243233161661962946314336529940700377203484326881268587469743860804643155530391987594996913894403511792881466199832442506090861736162267951233889934982396141948312547538569492822451122500386426168244369231989387662750674041636187866813748921412358659028089797925020779930474343213133266745840947430147019227525379650279557434513467764505366274358832689763504245172007365012633866840016492885604527228587909223202801970126531984358502624481362333479213576680235184911034841490268745108414804234857169977823695918091413778757486559733461086706415898718475534005320047188991864850149202526419927209185029028869025217211997578234492545577083719454411209653479449277858614930719991561903457029205598838473747714310344073934119583163201540665632538812858617361651234416941914594450523685351338812620060471747668488796479442980485119825046595539700298794100371763238789358814362340804391881071604215101574151346411317320404811051416879182159402629983909229535091734389268405408870055439609432969986648110329103964664030057457250851362636839871284276062115297458552683106756585774609450982117384973602735050815321095711111258641309741466801987918562773225335978317331416018515803398061512435245982568673054580678657952889288565278058132796721973495984000791267015627397535677470037622894525160739560776855794214019686019003258099557720942108146179164526234597814777751144560252584021698783133950904019622152683442875285472319241035330733982704155952067682943663673743583987542626494428888762693849616688370479291955453792098102911539332544542897021407481786905766742729810011510958549628922396121705604409157645738329739094708972248798606260799840057031265054447565302887448029153161467181939263265869396463726758023667309936513091346735939104839772678865369767950184163310736556797794197670264895323235802998899515487117503766762710983281455868606071371853108132118861642800639056246002015704507903825162942634890995854351520262397070464022394441398698219296629903865101222103428346629883681581603573946319016355106456316953569019164854596014120589874428732814508215532976994928275707542416613512314803657618203565363114748096091055558279016496915467727976473480623171536884221850665667522864235838247184243180647353842352607887689436697642437290526826260869379311862911502301841966299596971098466427016395303477312619569269144814873255191003039478415071047281283085392199186139608432925985463283650578456247723086016180964347869487969509084941728408684738746044658389498585186819554689627793704653581601949207087283986413007782951397759686882736357814442018845278356431562231774165615783981054209726802464319433023039988586140555377563453255356918179826872118109651799260837881211224132801868197743640423878993183812346395047978289940894110262060767174944608813506160290621226329721659545850800439429432858659816822635749325340694120883417100311859466997386068821455648895082768706064364052407698813346441342294723840763791954617649792541167357427319245956201031950435642657088916819615523232000508359036112335683669544851896107415531568532905548666324016074892026907942387464238943566517677102420909514148354327622568779896074707150107436876837995674521748005681699361184834446396651577301351961019812962020087197478077848013184137437960841697018370960625162328310578997873834488720977907559870859764761815078104641139030590802924712449591657762107740247302994398557345994357086726636353210107599675371552063314439348827149032738562727142087781219674999388924534536855934460880357338637461177433387350612411488374808873134896186057402435358639295236985270901917452825633328911607554680704228992527580169995158927801952092618749802092569086769896248285881963961202833771306749728843980053618390532444222214818851631851104807827213225354632118437578945350436237396504497829705321471591951793160411452605850824215899054360495538055140506339343792560630825581380503460156970250564283628488911916767497541576223411287348232247804130979118579828656895994855699162946646289834948524279129410533392913396924578814030223433943226153408618351651255197182969818210819834141001761019626126019415955703417414223527614289319332229403639979433660586625268100580221611660140812835306224237970611684315738738306146309074430623157873542153971901679705626074297985589945183304140317520730269710677906244280142906138311094563895627892981192120932076534773369126311449958487388797110534746332384932086651267918892129187667485906750070192151215061283085724564143882447456618867138357384548728571163334297980169940940042960310829000354905081859191336706399379698433395357059627866121731782278870125929063515445315563081611085354918354021741388629260195965919861355751535366781323416601217062995444188537238471453344283733401397759570332229755968376877906873062107766873963629539996864210593094247302994792433551489992873617992257522667533313153316598252101762414203693860116040472539496207717711330962157494371698102796850172659216138509291424337623822529354263224975228347909750852611488626861531818210435263385699001261102625945372743019071061247268373553206110396776696014268596852561882714711865740509140549461952440719457400241872418381162129382333884258809918837351043860590696612874403945936710519173680086013090133927535070180538183477197749256292561501248867082022862149216765761862704453041312679323591367824299157525429435409297504100920389501774954555500581270375866400479880552949597864046466068103073830744834682722555079451013763007146708169231832864128497187564352817555031790337265162844808999260970314425373858470423281124107447579183330822429514953005949806105876899037584501107565730520814307350807827635026955646966788454492767727824748830420652439573060526145457053926755885615411083027381781825193152641349316352825264044126223702241120912704607549667862982600935782549630176386881679169685068464835253344071167116640493950943473941955767845789637186747284070770960961681522052794777708706897217871171509562700431807251147955936306060912592843038478084890894115796762205302827433122865588342793696878909402535762825238010014424008145796576195268512110794877015469305501759398506068822726608944071088411788736449867840551157403077482186149368375090778652948801804220729192655033214700961143439706892581841375782097635731757157006761914330375941559667100839763994020377248854059273855642655163027146234423917745462161534551824054287016186169644812265051336602287641612282084489597495487924508923672512097014204514323679231551977838277677221319783488911345844926675799630984131707153177233665305230258244770885325344939941880738120109860117671367853494106844582484868763915269551995522182835137579049507386578398289980228012997309012355754433146572271780116281462948867724699494610426082289708459524139494675634057428648407506876604157452182295518771004459093277187093584539983609904206870709277140927891715869806428710721801390781486348292858093664453783769431555800733189825571732652342198190043767368897919445374532065672183493152715383180779083587234488910819348636483183018086600752548161852363057693267120917610959588497312902054920578883606976957204019279981230276372122936720142513920092211466683543629657140127020016439647225468902024768022299943389141618828566653787740969074800866130514184173950606557276327623912488155272659765210669392919354118246987372597287318114856831963474623186347293821532456819814726765601129032222529067597028160834561226517075975193775399891379236737630459457888828389608029838996831863129713248941139445908592831122579093512927109051778082517109744491817283668585936423373082724432917534829310718903690967701821603692093763546774569864794746486200874876516434185727809283373166532335642557911714112620602304143935349673087125149292125425691556092299638868637603452275922737746531317947822410750835312049842553524657274948359246916887538786504372062004267785322221827530250386522908150065413428247736659197326261438094123515813157842453476956275795341212374313406966643720910561861702636925142788641575276904395819438473167404112293633558288839910604725862540537001266891884298124331635435512793090611566940244607695791773794182857982112845126586984787520021343480893410123992356472897472068659970289340388023207862682554627071969676688057855392957268409331217182445742833186223994572350941252035092468507573611531695763895069532336428999973199054868680265285760071073629734258173710032028360512496966292781111431588720709519947966970649815621206051319759044074838012848035334216185990999616387697050838675370361695677306336811482190502305952873135336681241218290527052762926214826572985230009961714723028228075819087133600272125259529173800093199765775499880864990641436684655586839385940657720398341315252954813771311170170452670869956846071272270128824287722295775118367532578017214862188396129687491682846193777510995015620153670749147977008896768216376500690991371968679753154918970511083241547250722428619621819579255686391313626278817327551697758974573419624886359289227571109712208720791340345772440963214807184106961210914587364746920231516473551888994547868838555201826244392316305623348337373833860481930176854143902726399521721578438586048659082245793939725462997119604221332612495711243485710336545177307167092751490608839105606739941303403350765649615372288654533125167090958095079524110353066361215989476820885002112877573394866452847666485046659579987203485243976765745545801515583857741975825728132413377558554538792771605270622070556275779026109342739605786471133431605962708031876079772810742294907311423373690353847960560239263081236089977323833168219880657589188334591800555471586285752667462764902632020062835630170829394596087739212862223979597154759728283341939884910416046599305043080952877024852831883315946119987845317711180238493325336661974311402583405340116747736853098884901048757433381799580299166838914161152776869863812298219143642959284342427854600304102203060147064881673459457958188215078916010248432034552223516041401607871253336639250988103504108697356513210555872968879460351296883012013591885102771894963410726273844928346274540204992192478214148561096328215208561899787565791043930003500647015233864593960948384970554463931164032271631561759714282597383177812399023697516375861904157612118475615206378370945240112490792811343717467361960862228701431005548688032271644644579866348412530963742856975785437636090973447691722291860503641065628445810765398012378168309101513025466946224744527005709274948722967499971992888743544448183642566450802951319311612734284016203798709926067294629788311529279354730690259183514786579422282934027795178626631710653170135424305160504361562841029646782717160236385199757345747265246342918841078070085801912761434890359066276140281626670533206784903158882299070163907434147776449746028507802899625474504293520924031713690939088251201011569151393120192952032407172632219004508687666180442731108457140055153910970147782116470939502484384478795528951849487933801107165852131818673183186191002439306297099312390355667013511181776753266057630823707286901279961653276752529535982927952435034873560102784449837313966453032324533206708765721437102223349100376869453533609014410529660589425466633358704236307395379709476806290759488273239817387907325109514311702590548472390813500934958976533184758664609963379103984261535144314487934492686155625379631793178472725603982346625221195839608901151332492261490403456825890109105485100262171051139154418931273072243198509010521016204571336665903823265159865488789904666870362594799086548957551108568397015416457767739484561244061849541233724138032256234678093274604830455318803955639327983958761875574519553515740251986455561479602418616997706313722492808020621947856230589637087469992208511389103757002357319405919179547464614257770195744698410185383548750516756704866318148567975958219026656061608392236307872303887565946174771354512596384762493642537740998613545185575417920473105371012365703079233020710179477742755191016876151048263401239330192893020828271735728135694071441104346561321025778913849566244134979792368324092305894244246298251765604384968606010010662276338557905025536068465632515705554820668994031859615819145577201848545717294840865349010681702329025358318787223572432967689741619382186532545244622367262527533292887233363211918872317784077237795576213058169129646514757799339733456431757547164166238810869870241060755274810996458275412868556462901648267458675254211853832501354183843588468110742553017765428414994381782381273785947004651464277218871019811354867063301437347181379064996075436803660484888223171171653976444544028383843780613844236091921647498694564968856225620638311101383245617682824391089260692206100214773691926961004034307050979415538175102271581778839269825869460968632395187894478347462973714406472594971445424844756667713638854892559948084900336329504789225926747849094092244474189436400842683412247420550208912888323690003745018305962547231409932473365788671982287363583668903344435326113933581499977415507154291090253491918661009819482951708655088932863144143330947871293691098366089652051261043191054239534294164467875943910639440673665603318686782159342278005623813984326955236304527455403764536590412495802894509342316035087154717298406314026952649900094726468548297105662559199897231087141242946255883739726257482550920006435555962303621785659699027724606742069731933498724626833138898122505681645338759289152058477431618631883696234988276985655742997534069097857605264944461345000787224634951310574132362677022669167792902878488440783349743886820901756781079408936811061511793735764558977455210718848085835339018085355569885135725884527900628604892104478775838459119595235177280852257551612975907918266408834520947138666685884666718241435681311783206501647568791509220015813395954674683014319884660194729119702846344534996947421470395453917445157044467376507348195861584758568798125433279215639200351368005165723640240592088001604420514909230283486567639720436783914869765529310990204926375438254030343878548436803667198480396612846079966124644132008634104867981929718706127121953471632279320233887819323152534114804424404031224363677153023396592895965940514060929625098914385266340030176697179136148625935023338512258091800438026390466263500399782155489112374150497012517987069515480903766002842497382730474737810793863024546410445573241519205765501937077456289798993811617799813439854004445961979577847180213772725010636064648619179609286954425439968534144779385725821408590316750673129920957428864505073255553389087543033156583157551699840036029889895413771483372922862831314094169171827025944258245319687985650007831057760721357020686242050301386261091141062117935176862110133203625827768737416312218163876851488363446968388649706489010417061960863100202939021035801909911287111758113375427305351979932159581409743807522248596371014674946307877818900277100953847749106173616679821624574820824563477342885190706266352571517403681899503405308184722442152234032503377241739002186995929082317326721039508100191728797185946219204341434140103048549204770410057778062274392807428123496504826744308910904089050504886964515933593056222196980821955062317323187299618350518754908515439451406956006056798405620887598291751786231165142956252916901843879971521880386369232747984324057688508258342107487551224520164109328624460229213100812626050417834414324861653876713870749015087778290796950353563742850806897402528196856288307994607367013075356458041944649439301985837104058452352055124056611039111536923602467436970155867927982034283574345671143274878135054727118897315796008393692923982098588394256648358008958804243384250160339007916356644135989137763251573639005761237983252530686000756446339645774639757866011109902511040821915859503078256303575082574018593324565429566501092205825787453929033165524768735527035790762102019752028551459644833536807523899523077081453047781339365303758871670630055326642772351791887599065764436264204431017635608612562255926642341360948129942424580097921329108213186593545483463988494456298607737367067652593285123272608598661342297630007871037582140338219059276522214695421453182746092557304053368852799711732977237334563345167473413782779463676358072453411239659175136446940908043234426766788937159776981559076067136158730969423707581086591957443713061990058441003182296341326467494079701341628362824776851286250925977443775528062601506877894416003643573408104186767272441243041835871252029625348364962926023599651962449698196388933943373931913856153628393080532764369031569921843050554140996871989103626354250799370405799290188182310714229200698614604581996523722182926714169914321721562817324977863072516857096313001847965568246298947401861864116140129390884698543516798732970622120715727718233308504507786621924283141864495271302639591912777492656708201689430142239329330455369263076022530424727914412001492059111961649268510081686764213590341745239708301945893076018647261540234891623540610449372892192629590787305553860482678395533265775543404858668496678783862684702599624306776344515891550724269803648560198744906488241952565351294112328080592819880960549587618425424384921977389144256770425899880671408644282488603716763909870784196330597231074607567359641323628085233739683899240959511809194817234212683600450338259430336280604462647695123963395611482776150821039736625331329036605197882426862928443665488584231597917504840131789455532608803230944341867469508484588311888801150806592639312941544981663047541959885957876259262532745708943118793968967211018320430996625480834048609275857288791866454188663509667749689853290106073286618188609495429363710525061338024402070454074963936322308880052141302408942321841200235672973781961612551225258959744104224154348659535277565271625363208509562043366274414906145936216419659104597626187657274254436033931833982161974524581390224171058104621683952834007049596575312614914032894098708810076975664835631401082299730405783173527517710274044694010661726901341564010496176929520974433572946350677133279346711105439388797494872661264981064105726620261635188834110955570637247703350989422449584880927624445559709885366114934270253218262075172420013139924421207714898205410350865825106391734855224535079927751620176436455483989125441485341155751187250936525213302921349203699784973632136945399247135517826433004260404796394021298340900771183594739279201213914454128304845241887612546117572232033489814652562013381230500404428277461107563573817265215108838780602456950558899851390863699115278280854112692267799481412611907433495495066542457497995720372904074606872741760479850881219026658421664807574660347176077415548635414166120093684799415472043111682915471580839395827652895082154494850316342316852487665295109495494004345926283809036416472988491311193568217688604660019746681451842987034849379297269275127045428032801477615509536133334552809033247672722905861084284316090852040674565100367495984250573367524942000623796677778052363074286200406026124166321571808575312429581119853401366684679424408739129934125925372885503622560644608746119174311075498305698167446403635703246877686475560911073009322484882445415953037656111439959556624475884168815104649453268832050397077175551909984366480230451715161134508456151329997292993694143810166361586642722884897807425495117969376894383503689917687517763051630654168555586273047549652977000877200998656226333134655551038136485187649417671207630244369294872601217450577622840228386152019365516880183604022694428670123363832282896157295985637203106417597033659376207292945996588031187011008297292024141955615676095452820033126803804193561779556087892272051479106481897402169507031123701640027750818338922632842471557634438724210698764737419619452312164810230357089461272748098791636126031427138688086533710593016369281804501589763526755563764292835143212181541790002324749682530512161654947873355946923588378167090616550011277080560151100788458478252729215779640962809207831798380972116589589737122470026265989209733432547646412940998613157621414321821028339819042053418400976978344130022780097361368586548465960409933689872057299769468285846600484725795347165138494371680083155970987329764183542798587170785699396515039029122698774356283488764945864187881116416401056813086814595442270763824989177045665131038494521117902424365389956112810884842705786276975398183972074784077030304170884624179118279304367473087671600925498000454043526948522299142239722620719120004659978474466120315454321926827452888413612638909589120053800838652794722181039716708618611897830385196607259687321540268865431926532730597179567105703026257779508815525202652710841062800883716154382192827830311653602644046873065317473915327162069854718297306919271997530505777279683978168246748873969942570424758757293572829604012188416438518103098815567058313667917850899802203413373196955630979483027880751861691046804839490023524860750645953975338594371093450810116407501053193973985138641799696835774601110801552915178935810832484451382962400342456832782868192244744949678601817457618065685996177156325218919645168049774628088776929110211651600201947762829047970825423899969317302043221641009311131942607255615719628456041513129600936742754673666297742162467000925141771354168185123225495838085399055053954148296785340199805579697121277133415959825301634415052816440240580181007373304990166413829447780761960950710014096236188115987169127619841377574535843707574652784825839849012722646013502468722131763240746420046436255891428185488283913820136582497363098060800907758840199781600049632273564681232694056502247866414520049040527151215243601542267385258471770142794984844085794240335777130741953233853567823728914630549500898451094135632082265306889698465644693900295304512491852296533100411174169763859481312123013260268836703662136288183720857636825645857162293861457933668714416674418504847473408787789752936734909747921429242042277843075878249617246104461048614347495269527856285923755622679609517665988300681793521208789124862866734897386321761762220384725807416576259874699533815596535822105818705777380200819017454320658172155063923277362344394707190267894986691622551059482297524090923145391871200068808758358921312358739551296467410850002776846931885489239835592145827842856287844690370815430869738835941974904244349713008400833610494759544921177719229836672654067655077296100338413053557706474587151572477414781819308228670606662613412193014649944170307014007805517831965157744779219004875099747636504969524009711957755166049495925582430771014286490650543492652624407256964885149061843963804388450839112471038597531179796117099609593636333747834073204314785723568327056056449170290819323839946556739797943928971568870817598893590938123899146200301564588245197182597121010895155711438857195553691136278861421406327989831379093092906614706093791347090621369135204729938906958501203152642378052481494096367951268945651171312401643678379661246415777894960673061590670267056773771944249012696238051026980535159524114987353155871289719774630482062067304071984086407852309642234390033343149746738703442206537734454964589216620702703746755522404746007674584662406844211003882750052944075264460794080196358292287338816727273895971290157444240060279446208371636870957578691149989297535318781681123618261314240998098000502078172196465269675344300191199969647556685945451661879026081778586818731946537248289527275251018657770873351969822837942091568428435843079436231003538437272394824169764480651079656398755900597068645734049549940995158021389984005615583309961569900475871957671019053886900763472839529313909777753470436263233892296810667476177894574747083999978217984753100694474391178519690476625492936825327016808175275498138133096111230545815594666839619101489400104725542930858540931867574017847157275165922956081310267019508064121378364269242980507906942835868708744352173149200078411792437868004218378042226217257100514687327624605071490575136394739069090593152253167586635555942617558746968530633157191721757801510211817499833861250277622856800166744579810227020623104899529462237326834515607821661122188750098700397614544987672938029648445655196295606401181050709924426377879990581692951356032388540819653214513215273528160197218172457171365868613454951245134119424179138730322800747397737421813078847032812884756053282358167137718417133932255731787345587090347561953800414668941802882947888547960973954130732360550890446660759303479854843689358195086416375422668912749128758949578821838540907232520617221848364242074072065495184938515790149651481593951015047821542973612007809003603404306854368219220933568897940805150941186750527452478663198577968710759204348240974288958848526763437631174688831033330943508934409483472874064561127139638570262005320612514011346726050903343385551142136150960978056510918680563447122089905400493942585775633253463082663045093288366980555095603691697444981864136352068693970758469823555617483207561206190732365948745708156383255103527099747694708203325081003948600047311484546222604404263410874062742486330893771312909538746093821650767047091911564108356024099820835229435448657531045957730681409098022869106164481924828280475629459846438111138859291326892019089351772721581667382148428670621557260817890054254855268168960388526465266478593403455248258686657001662749908543657960339349184507976327531934268232391942724955027763057395861904482365214826428811701691625549220993546515440987194287528884435517009695773915168432030820012593202796791783969217255994314091920071750213036066058964856754872415759162134435624847850062408614587631581402807124628061985430446271467832975143370442031717167073257656665926089115206134571174564819779125182130451979327216178626756472946252350673310536271134568475879118771850336001242357772854444840624627254811705376628504326990795183408945918878106340412600759988827773570365809561130728000847924991727169889541158634241832480249286957917507499241925405078853913383613401251069488544638888136041784704107662267324963055720254829614594362115020568450245121755498685198868707721772586905501743692302955794696635126402433406765861037478038902116503556218433811868352824308518082766368898964667440978093505537524111867967974413908420514722857700780046582653526132498465485268389606677001055668160283844158550307627762849261559472453210628327544020425733310806397577828091850296355829994335315500887536200365665362657058468360277864696909259980242318789683369590397348501561193184056981626043714112476060146943942901267720264653128055206102365468308215286544703409274797890844718698087610740692681393694155026146268650743333729528569433615362627075652297150858327005010364056545811158610551660034147338984609330139465352196041326747455319834547445326893512721736249905163692260812438117217371982803895495479084652122389337323886489614217008396071273925398560775178849172884418896361301882584063245159112774101777728227057647277118276177472447685139654573679506333692625277960866642508218695403785765771467804185451447961092834239680417645005357565359653239106286143564423499068251431312582788300580148754337778461427850217563357823987522428273734251081547764535614957092112271561933985031666823460089218934005931688376791606384395308684131732691510964915174959031433463425747936438604585574791461982373889998898009421254448338705355738488314118234294248385211971927116768102277294809454241043063804836011000310743283793693375218117303607043858600951769343082299336325354724099468284521211944092215296962928197348848451509333282995186177586752761083829238063510606455604848291279692130164298087659589909739123196922781567137272276647201719236871257397575755166254720427753240019679719853731587863951213254189971809065053524325483880074499680012066960611446400179033014556607438146395395448917990631439567761418169488184225511811436996712255638536556487855556354306903013473986507548308417882905828260356479713073443603971468431986555060994131247503096213621383729301798450703773388909009930984071613646513159883502298132213386551138225197475217036464500666802360190184059924543863070398908868295978298363018354129991324496363995784887001337493455845208885451254709751085307866519389610340051309135408351924858152480242097124238011072656567984659868250660281081534147072579366959168873724237266503447405655827534439390198321144607032730089039466185772153504180712289845447202309715021025678564094281834118704596250350192559669110951407892046076420065488850447725196952111796187298321533110390185517813564567205095399009713514049171049080062430128867584559561844765850589447960155512302522450431425090006467764594601428541187510920699707822507164532981899547365793814307442002997657792196584000092102042878600950018946896294999252412442495332389170682703318346739973312685982754644958630410534970879282505988920661866685199092981634790866687736908634784951981222477404691723292467627237377485795954764332937382113116039103222096859020222458778726735449220319117016776089470521686224434630182259529203042107891367995618254660438386452906690276846646473280746208118104952313699989911269073231576489983214318015587745235708390658123334896684831126159780363890565945307048943353056511378323364842106655653808131996269324515605119835557019338369302235886797268991522674351994985642332881181058131840769794911142806127715261225062275828188544726308718636597260344325348579895138830543071875068029135532960056996582402292345760417941657736408986425802980586331231358163511453368386789298092860223108545133044837770333920037428726801823710674134563280972845004309135736905940230962351313747781300474772929077860328367598650589315524927356096757039304142241375471076456320339545179996126478168163335600601006446919266878432202761702760973333496646241931121867236860131325200703970979073712016353544041073548883265779036667616945901552738769330007986249772119185972711912041440430488541674141645349416725069619648241369129641456132211427619393039766265056939749036460357015571407089105176175183808170788753454312277399526843935908752061556931990797905088981498606122579450175705140202968879298514791503360416539767851297358030107053748626531341961708707596136743196392361172897624845777172975460311511726841162635900849260681103799560604399133332966291455531180716202650248303181321787354710345420668130117639509802264433655183518537759449781318342847751845219725013894672350964323196182553884560412089878429422928150272829688593435903974810689655713107224846683606739491933901750323439114965923332975787403826286503687531583121018834819418528753499140923028170901621881662676597388570849509647129734870523087696565297510641121713415737766640415240545732019198694959695379305175023491248419253378276913468059110230608391171414053932480553862440517046833001968280074461323053751082251645118325099750559024720132239906002695507401942100901698986724711423332172331734862634574891836157532660327827621989014673551308688348514145434390199231308728967114834001106963074050607557501749009002278996189592342193181582012309398238961072821329360081978091972394865193129738930214400071072691406216353271530008740323902639281411446965450029661743108249770398209789436887410543146035728689895958268114535650996062807772000261093211698459911233701379744909794934778778502322440031241397931263444898762768006115130706390909521853650082389365753077159130356221810411723382551981160789769088723468462564464227431358375754321776420972754101510322516657491651912949858468901514856149786567383368341873883154875010689556398492812582897510591398812807434675514541816696106035433207633480308554544816375882219933157011230125344740562634860865488903541030329268292053206794980696601127183112326039875368697868172447514897649699562366626558071237397927551535140798155773529893810551621736840320574871857085792078741166017399078150268368286222438760249517663966492837257901693848396601632338507905754971032604000023142765474922205966928902590882417895516497385871204099605481019706635508637614201704734326370492690675825805266053631140987889077654549634393840442039494638363134884248576326580558007006776137937766979210009193351210125950824164471473566769554335272981052732522488729452110063031161182473310495132088429913885795446203958726946625229471924240051028442344214876955464773023036873672429438021485868739817595182497448432597871917660924745618248235761445253004859910942906381730374358204697890591881277103874025701155562385035996943327845260063564971647538541140927028683435102688702722805957259144329864794792549689278258783197556101714503092586631302341390240406730209495801892876752967235268822411448313407741748101865547176369124768790201895075950655770034094973308632443711991068459367908356600058535871076513661378046839465828760985103311712295493936043611783242729878237150904463302785122831348310354944839193071215236316101118964378959183471752263020347137654276578064721219411921740502261496456357163167816110766440963425761965474911498110803790891096592502731943143481795283912675059025988408909609780493075716348162346841125745197979050331968484594389311556472347126478342918707996898944754253236514361410109875621030265220281691081201523775474605088007710812145398876464184038195063836252278927557022549164876701489857193412587756868303218503867484094289775652870865470912374588159957715650589693314989081076432671707240430225447269175286683257423073743474013105911895507728156924932507161844387187455452751444230875335380931157726629199683701968661162978297292229601346721083117033117209842743539445770772225016646330714625256956357577668508611075437675078158730012767647661140884046434193041370362055609720847224304715197463770560266860430272361023205677893100633637092646058939669889374739380661097464647277748205634625115943109086656482846986993161328085219055452462757102129508247796402772520672998559790969568368585546690320851210770664146252393045787873676137482611290928547119919069667166901714180569856167276396111842969918312589428887368526176623050275577250785040718464779836786330744308881267711077857690791432987837828104914993905915279399909408778859189893784008974301795063079159556711951777451112852915722576630399688856851928637161180032217264762504785058430011080120731740154473677977694073134068587425136286730158211533982135867481057597596135952287029315986652037786233303326016675266008307809104222314868026680432225288380494136708439463974349422653680685146355668144841084608543234053809068777422827910284930641884396185012227478927172969865210528373191375844410545605940262030003574585198856618447937090506745886945017538007548608731209772843308890925867679358762806468654104203520541099726605239276386526786935180052142607824425991581924891886447169267730372923864915938394032894445739903214519559811058618878174025063637320028063835264565769562470313673745661266716020808845637696526162892612357918001024925528244222641201048674672339969333641981921348800538608197898754657442519883687378118048495021515743394450682050002332985527014625139411888023643589921121795833863006591135799575755644867468056425773746611593910365383988949036299023590806424240723646718202342882357753736164089198634482739896022416817136236183258288603520273810106092626318182222336201082831899622364120068357886085582443885290803648196957839921721956548276509337151680620152341664750214312360150088254384590574242522495175560681324951158218257287553403612867966797330155650083719995789057009336432053602384645720644166516398956290404467178286320362391367586951800408826265530606442749138467370357068064161469817783171555643330248627233918748368118945025399129967602963325030460694444148078847137021769908777268888380510336344487699438816892942687172546279270074013290854545389444659771113217670915734116076099038214942150247625867811135383076286462931697108446355306802066226257309478462706605034368924791610105231829647710518701008728023248560855053181793540222507447057795440600448308033409046526525886588082623361676319965685126088096204753146401674218865434612679600879026954199857970907050282247462790245864914414960639511599527579023563112152021736077770338109829834421189757653400528550358014144011897084478950527103023094206125151154369763507388381365607401033448397950888992320493002422451300868072315905517677361074736625370288588576699819725120766533981187233635650877274838494457135311272005569372852416777614556998834007853842793771853857424765511342224375917374469217712338367385407357899265187713399448429439938279270100522623592864682648270517384180082543298181513863725422359854595923991009630803846272399678296240459989346617956517950901476291819617671481346166303909431682393693441775468253084127161123644129037545142427946548109849121996201083764738103336074164116948171593924893596542841202979043045642425958941655173073675178718637735522348926598219473140479601193077638352851128034380095664326154175234152849250003897022506250839789731738305335836600616915014275878557230901919685984874374552752200980297828914183436177348458588639628462208823692526526602588631419712711506357798040529043451866338349841909252108831583058386334474439881911967982891576266591876715472190251125020572109359545888488298789764763159194305801261907088452584155178813618589048174379317499430319335766484657185513004144961121943927910592967973171593017158067878133885754093945089237416201802657291206502916556982009278300546976865261465200059392760719597218754134356211197489500553589969463821854963434085414251246056202267048094287351648206840736111069055584757218526152527609153369505105473334909040076321469919996179779870514438799267786177150900794428555125689129004901498730142805794049153931889661188560909596050103640179750695580316230022572007032442835152894643448359427100070628905873054333480391874138062027773484071609803655654844555818083101049630630759415664856501499185019069604744854675184852263226875545405627973607476715494255048167196360415387619293098168402302197985770277056236751588724593087100313856346194973778982334736742753761900808024669807993401602599735904201722946394243126289563242901062164356010159916691719739813569527564498902454987343714400023022699567790857497590334659216717330241934217669191735177145644345955834673972993162904184927690154831803707884964028709539211516859292918607186706561595299883838644445050745907510332177044062814123163356641174348841118073212986453318519990194490822246968585102679929110842877757975459209338913392217931884512019686433495640214451524145184140964684213487470204032596292739724539442809157652587241073314165252753256578779639627434058351147007708174025344525026715620939534969643308833584062314306347032762370365361874619622709282577609269025152538130115291861818776751483232471794325451986180527792565716362217105339995133221415469397324071941363762604148086786726654287197097112879998316091652696047206178008108860902450640130542329889098072882602136154509479715048379190219922922022456387148228331447754202701953405170696806045129188408307297800608070904772929904357633787479144540870740346798979211793683685780920659698773006019751054095055681101970798794727605612943766954645306407916392920041693841326281544929103312779387720322122158397602283203552301130113033445322199891465711415816462549115395474532771977668772962163346882256815401735222519966874645008720395918925177931865876581512295478777791925979600723020677267506041528966436541634006167361390563944536947236541540258621259707919932750529595828834937157997525901706431710344019942289705306697549088476422266069215443896935997392436242731681148493392282602804542385016607070597750140791025827305453330093656759137936071701774009814953364339444424534407303484075474764906070221050714873166603595223864531083109570300170358972260036908114078604095558027872326877445446652945636417653993815079716842437989268089971122960732225113389808744661369254503559670620716425572531330890102440354198718079793600947729980493261210733773871127544168505603034563007466691606335133030994703034411486337494867570980593393078282123898195433631048411042357690067432872480775503518246381557629141581195490748989814779784569127992050851895856216279582656211197723045582720864440401048399839136681366780064813338747301135212821515729486461122467604895995129288022642027216447170328097372455150185484817517187701600873173962018361689399518748064718287776742454159328827986281604346494776268291043548263061331517440959196646614738489689999432988724679103345040469770676778866843351617541481615542558281574510848561508711195368327350472340156682740462314277549664705824567205291706043851619025266894197081459235025971330119073962523605249966723273586493629967091840292000230317771914313402248519158056460499895236233670991346630824473658091024780865676045362236101035487065141106418437651581161224844184481130549727978749030324183518344456541492510816888710237474122950727069025618042879403601962001693470165760150995843397593321676383528161116548185387470298673037568579745192695539038723772497265700424822060577907145753557104458563525772704107090087063324946885932304452167408793143902819014037020886126898568476312809166031572880161590589218188204687568168446427819006481749111015525779217949037143964237364103578419236796980359178427434957498603320427952959841089072067145801673482073671507599059551622729903622736129580824921439641291678210470350421054926385706566981026694201299296684396741820500245026629735927872489783337627252522947373031122913284428828443810958050501640299508507397517127739745491517993353800503131704905182893863567330101545860218135379977420199309270912117813946316071202947302470857867323477366040895707672843722392422018317953682553865921893003217482505764548806465942484248646835781495968044862578547412858200795561330770720830575219534654025113692908968376101027657992037570300177627834285034718839730059900078903635984107523831465434879078715997639219871813323134778804993233034820060180642034818883226156333802056200155618774605013943529611323269438033147332176430635030144460490298803549353430163155678347374105657814331446880244617256662381716685620860063695211457012187500578944758230403804506912013909209614824006177838997231495684701440284980965828618800998877444000037135651204192248650823501110103636177379798548828544443524569232491094052618424232712839200104302779343449276975984768086957418770067650443242142359189440520907886513988329273327809267861401146002079623240273987196304074137193659974948143185821696678917428817738977953782282065220104262311888688124831124106916014305364978405602453430549816704643926182877191224068213657368169556651491276636696410423357406052859625669322779403113720783589986634174657420345051313649474900401139195111699434701543361941178974878403436376420405339785590029808949351624762819166070169133363213583034371777631707023742294532923761800536220110531672778406108754356552655108028695341858000552134357909382015849762176539144229476448597431093951786297680781467959083742952384196150569291300933123840574488089339905402151999108028968822663821878611958450084031135595710107663423826873726786880159644307453380382670174873543873936239735847896146933000360998957557043092847796457812488993076301668751407314424768056431771262561452107179757551676833504420797330692487804619540979491073988421464299951694525437630728151223203190040798472600565865689061581338234231662282225728189800965773074043132008279990806587320669793493243537750253499069905138705642033298964786010872538352644498607671089236021479273794655074691107977681418051246262889230939781516274071006369981029004847356507801275336786338445180965756580863968518889211665644451365502659281792662075997648849307658631140893566359655235492804223375972871798743150889566649037641227985509886525494707005057495554854763266183845688491039815445619907335737236788786304982312949487029032335668737375382824225912842210939984751396480195686239385153687561391238162774055419387675011997996539794315122610874567101151855266242290153692813811433817395739265815582741152586153806306152578636879043415842319404485848854059293423854398535523355928268781830204292390678705754505166021090283029216207311731429653575126988157895233108702446096901389710528341653886055389441947248516655235756375190927526047672450571545564195268699512170268372486861219632161093540123812106236165810098836240474027680749043155421288816546055870901414099997353353443932714142380900736151788125136903163343030378953481438365813533213956244347142256686466670210082562513725127812893938569055105011401491775190883930796206040515822913217800785552777639225810608035677124578072046756896639725469039826068247255622468391286318374714650072289231140985000876570530886901438916188776424808827850967915620807950917759478157301550189128936078153582005425022434735122572104012540176257020560429015606204172199071289553858756387917720565036652091348652298712308583581507670115617947914141706430197007924213814860113929602669077265200316059292923683628844215256629291182333377584637680077853255512132808317574010098138054789707716000750318969709880494628319484225068109036714908622517159872144515302577412839084707849169429423345990904764575779851153587145525732098497543659477380324241268962440699884786779875053702428565175384865059287644226743047257816722345526133515611324577570676168459592227272925552221570974782144923793391545692924187860305326128618876694768257898215379399300132877573656133164145434005035550333546262494535186146602447751814836265660210048262306921984166997437092250395330642466630900869807736675680116400993342563133069747658089927834546517702052657752095301524727913213389165814887641821634205146922693879465100257818210302188971628043159341620071503043744071496984053609062060013078747211614721863069559321508768319082247228359512596105843212039099663523844363848130431021770272740108581517694121919982253186009654196305519047803147661389321634927390733126673937795820459963868633142148413058356566935131037976106388392270764905811933850980714036425683568376609241091476124965811019458591971494290939385751884179557538105028912186350627805886350808282755639627439782526325610768208221168316139850697116601367818388982293133076071165804175955652852767754780764905141581455768218240287591582251668348312116636658426969665025048036616107293224091981373012542300457574602661705262091555446682850097386976796807629377566611571055867973716418173579555734882164443569988874636867481689650930810349113340440732562898805818812067908375991279634850521043118836191460702217413389786621655994035031252593292598141080739260190242149666870721692305473337287798400795634177659622971307201227728516734374041584891209717239463085672217868789428136154898519460923992959062453589887698759304222207116716274246861391304633020076776697102459922148198557954801160685871228283880345056741448199712198623389098098086675589901042655416891003882844333656433364099627455452568257816556943373603303038874530005896702198266307932834101913414831274143636233277638429704144462989348107881192412139819496913693680011754902409002626886642336882177664962048736382135589057351449478902015150984545274878520976209603838339571452332664292150838957380618292541415650483529741634362125916381828792905368173735177411214030998517403954576341187356427557151027714217326338373361664808941032502868119361737149761053870487298956803432335046699791025334353583236854526945864312304103175416832030334157074884505756185072388890972093176793461937733666400362660828881291619598548185500666260207197693420831436385532155885596546998384198827521303651281682149421999068736842863407222705130152469314039006700759185130478397374668179262042207381314358707812549677162423979980552807882756229587220257520609613632426155483615624884422451730345038297005411163514604132724238898215299917474770138039669284787762130997483207233395853387450674515625666025093892929093304611315362807481949537638230092634551090352601804649986509174867836264955002973382443513524645379198183019319616453571018982979898615224836033877200610273182993533892148392972998700979321858804199698866986501439740350823725133853454894756699665715126301575187847048516641283151653992533063044219045115056939826260331848669011517641126628463588358932693065365278332136463511759586689080874073384042323842973537738136252839212766815338456246638073436791661594283164524582021869850395814695087815760093522698298421684174624842965729284397760399438746520141145686770670619066651966813529828083672191642694031339026421696904762913990291362891798878226754892328478532246355159081365317918213085939901325776672022836926281045444958884609511234280002586538848841053156480274596187082485558426607570137992056649348992966548957127379996144883428110768433936081406752759535300451003075710777682784741759430587050831701027314976759188837461517254768675400586686570799970113771898162419478429513074106026877786229949745780440658412617224448475130761637874897765512498367594024225664264275982969037805914581397884179327524040419746631394912508955568545262824126402143683302225518202407643492745544890638822011239296997699158732735661333636186054142023970810150167780453959221198889056245825006551880351906935030287440032398046236762370509857297871240310124704220645501087305871266172478241578506092586766378317116289140372135643971729889607784416519319242810366095117501211387174077418776218447380064023794720745097001065831311179999244950026598841473753646523872876857937921642800832103917658034515746261592180033432768911202123657399326756386429235452781704956447021982098119026092006089696879113990025184269038308796577449626620431720295794357596732678600854810815402723803370704943506577692973327565570346362392992200437419316970488564297955698781015724156548265355907457739318185394456172170492800331656731108618198648231707429469060078312210725647542311459994979404990163907246205174847489050421569436357222320740260992619310793051219784327280001705084664274682203534271856793961492740887013928862080675321503619190716307909417593760602007729338838958462096201300987591868914299315369415929393879189366371919840228555750738137986180768757645159937417473421123756308055713773642509163068772605002963238178082162149525754866205407803300386710022142995172608189213422688897023535692481830567040598870539295032513415121794156635519489822748578728387833029149230611059746779583515224078862224122887595963020295019753630650693472424329646442904765801348084867050049820009320474702177488745693111032687034949737883494135564921085507984142632708497341373673377276430986905433929329168910433213136760095728549441764361899505076362414280328964931781578734838432347760855234288479404173937337427510484150346766162343456728475198227945115505362581506244024679970453549420604670408691132061298799364283696498148894226971711657934845941411861434133822026915997449208659149425269736464666546299811304528383177421929783258156522430392856465303818819139163535290158815027272117853799271839231771963006238079233657084122623176297732661687969560166597078799044752186728853097734713659201336246087158203214775985995978705661154490421794832118743477009898519006417549737222294408820892534979880412526714299213987499258116145520149089934555879531490744952170352857926996016162078245713959872500650935769592273139938102392636627716093381894212882582776788752794801794236172652591434081766371217157614870140596142590750501251378884989773518958385925080439143577751926062112029273729737308533606421879730682812879284533213947599653444664706696324417806697491491416936302100866579419698246778802101292677486246013207042170406493105055009519345702292023538677689033344262553151764817750816697902318146723366716881767217751741130568571971819647004896309631516458246959248291330129686319432750768690709015928160620166459850858452803186723559898344664133996424708084223900080019520078618366578491543940318642403865450877924087753219934472511466955729208230663357745082703910204294437141227041667901657392734917007520630984440985677928635083753380707743807324054146521131054668042567506524464917216102694469753316019604696306938300148001756618810504380132757117564742833537156035044981273105548946335828565329166211372769272697470773792196837282400169693404507086925927263310494905890533738905909938718162760970724568936721431759280384522735299474720262317022434168044584805542453172704562717852716898763031829968394464425755042243153469879751440928009866005498257483328624030530485122652125015199376081537254881725860645427292457673407759655743335414985183350627038427379237725737810505087316175050076436899870436321650827202092030419123364404440190380963788744949044616057000386253286792327217566049755807077032622088410380085677290915377707502037719174178298489421897427596879571608542184217543924293170480481065286462717505222191211115991296041597399994127548402559879729110509813209761360253908337361192893419837863628605066071409980192367011431596356686492666329498316666795437934610637913838528466778135763173852424846476704652845349241251593871974122525078032743752908091769018084542605042780056761182600437856882608434020394640746276753915318843728952764528737520742937163358853349173164188449568762266478864426721667298255459387761087485741539227817427174574204462665933235537984701311997058445929963900415582315585773877707576240629169978645725190833374421800154950751509979647981701903553204731946531539996709264755485802905885226949260422094620985613886436070489044726535483547951766339885841942282679443215915319624612062305302774337209916417093651287746515241342138852731432269056040167647955984210208826019174122545310227835121445024759342768444614773207441547294159954958389538575371466502439710606645913672311182327263372736928044646039408561574761285717267071066958119949045502066582584526637858398840425960207391150759612488840778461859158794939212741760583292910948311833494399337537534300032477395434427374309110502682870604900036774194701957424537493622450382156847626420241348720769666304916048966180458435575141306576844783058841352216218546808883240421967871850405416660221698322642835965453338531435154489098028342804178660902398683709685578341157702022130333564116058072117160410463540239905347219216834535985506575028452321071663683825009270910202202590709129235933287240212957319020493132482205091527856634130082853851641570776950010023888715110191081514358314942081852241153903402725022474736291417684845597597585735949993057908041422319815615266608666918156154552772022114988083822706405738362925020924046991370192647817451503712231045811525309808248867366383089815272144799128447196902802362755289858341704381488988414045603315548527755543460205713063533035896097521405796228665625169097535060896434232587338443317278956309578261086692855430688099710432435197335580006250489741854620840566426429756470412662049708117391460630063723780527206603371326149749620692464205997862525610300549842983689270801333338129461424753202865054732313071199093646541244384100713543513884589201702132253820027783983785094774670680538596066747413313346763067862515907288009444659418469854915499817193092208230143365157693913305104827926002356747899904006773340147455185598398204642628903607627515762847553146973973218931681952415687585907634670804858604562254168663358851224693898315685146206896230968163978117418253749289154381053154530096063055757372249956304104520855086006012139648224282472581959569443038560515083009428268388262943841572440626244245682733274238682320450642328216556223055071925624523063802743754661147133358586099397832266977084631936720924538964659780415906762184499806307840310015462142781925144859424284314292081837515169822068698316894184155132286252561940004761132497821741600149629660059075138046953276127816485943815656334040070982823974542052423028532583038036381102273860089417144762521600060127132546547750514994474921935181029006577070225644789402528408374999473567104263057392300034276788775014728145307681674362429273809890839485951416509506228165279597441900794604271962976726030250116640469293267281836113203311642976012638722158319994750605287268324785558547575914583313214095509122351185080948128499418205379678271599417618450670145475245891259688217587136115107159500053388467479794428897349880293126642403558735359932168934980728014109392948713694218164612433463000084112895873850848967216140396225253567310036595839790026467529058402441573650172156685631431545133552481826370125778600495566437278340541538046966699690575610609692294679924623375809686192885173957314204903707621635241183551102703059422067212631668091819585347631045643897444024233737136649116796829628199419623814950539879325544514847327483284334461330000391743416577857121723313074418019607264307257548055137433327301005325638768972860185226771326261541828404648176986636013652936593356826056173209355127395219735649083327608305648014520592262345576157690161383012770118945756679650204727010342242086040567573083906949629442926462348671477344766002864943354957640471709748347679265597731458974678658038123132698528336028237707241261369995678303933071347296763878311380892314464554482225846272457264693619318017906590007436023147508786845277811617860108883644110846397090225313977614895229249466378433806364364416646700704583879598927013893671056309886030181980316503817905404186713181285043793589810709754279142118612540773269561706949209351431976509982272887373147842406635047211748543057668601022338333215818057143253539395128825802181152648058901721098046431241362010921799561572906861057630431602534818664803049737303985238513414150556422584544385893175655365262142354584203040720304342969995497550475339468795464237430947756545780936881127441195465386068958909796841786551310138004091111787506977299500387975554647513736864074463952142988162431352576954642265492097342759443342021126461995617872253162086149227470735430477392778536886512233498881609228576012025956246220611392599832714474920652538699115679794424121200125026813253462170276440032254050643633702377443544366901346968971015014784270680828560139840041909798523369456707275204222362729164647227138494749552942215344191382907188095341752157284540021970180823186493493551057748627647478029385059349846734553353086293392079150361611255871979248651865198440447177688198486491131153586850624647023554557477347989664227873452895838986878237870214594086856566579086673972545419588383769112793609980090241252877372971925189662706317914151520664227052701751972662587204929312148385192641143318102047237709768878369032744248809832875911445923233446642896041168660084241043653674394648929029668241612915079331630866154895264456490325378721024997724273921717974504241441116616258487786014126175075588029745126379523628507204780016189483593454399416673259565561141187725139853529650023688073621940430736913960956326691024105166989505908936561765629500255319234626363453798711847867105485179489504586260997302815221978220743305157219089301172435255928646873448210838848763995851363030821103948530683674828930376760781552737412835168505462335236885329460708341100450905577341110540392036580343266810739943420074715760434944189169130122541159701009268025191380184132274491625056186627356715027472507924031076159856727140616975228757229428746636932538146344770444918752560227509557393579305298834257735716614272077413349657251616506295790731075880547884904437726947426249585512570891490955548222124673551752513120657635054712773853942452349149258697214491470084406947957972902092147075368402613636928217655644464719752418338482657464540862410057628337338645043849061345578191802734029489396231946983780813600810705853899941600177913646784816482199828708639951132738233670877583588582092203437092550324783154885400999979175688394495916526520278961738788033474378254979223532864693486932620166782812218459052936108299212240381517902945920435998035328648974184220184799948481278416889812266909997496701809420689846669459957724080474408570972221938442082634233914719570966480563171449808873667345259742643492079209128689107999904960774693130581489632726811306073421352426008003561520910247233821840059994805079237120431296677787537517727472941974502905926801494393076477880887108373509411638542714230329390060924756933337450025273226304881327640378320849292200843335799332660635182803899697559143259929469753037890809616266634602005517074258936625709860238975249628071113308004396723134038542157505597351509112374510962791027069622678120027031611843645121712724955382430773715300826580131389326473525246242050551317700546897041782169800994466118550894362411242491143387759659405453950978449526898105415306616272846731296611258689476453638559637722520652671348441546132517080710658858426000774502432767070675071896424789687382695653449496745846044409471880004463488766372040974507467936374116285509791730369658476583766732297781337209076263232206459860308400193044895126501964386493760514990201884246987569069391280639550436822349699743587876075060989593093301171570702046112717438670074179646942069379849200092412879210212632656399422294363528368998257939174900668284170383713873027588359990634619414192132899658069710610769801568865874776116313084070741280152681654888176280213188952786783457230690101500038543676613536721123354384743264004303908463673739279774780467183216695489361350081103254595795048139424410568773930253342397485224979003261610458401619249314650461795611096755408718100131326794022777756238269085321904670741500985262725747468041716018277329784459721035221899448342655953873685730896885457391369182438079007129392572388138521328011579932483303100751673979802619352742292367324521113907431733307456870433439395616418115208171655431138743303778064644358709049018697671037749177586797904980622939946212422482285398419041484642949431251562194422964058774961562926681629026122794621914377268850449596589441045015357621873388970762008910176897394578140568904306646265645418996702826897173544368748391833797176542949512072556509610216906073597215050289197770819086481747436810952331185543284342865989797131419784318717677950496015335319597565864118876331528241588714586374550352363641948906471449329840296839465861462387433492730976081482115256207970968577330138402788226273967880201591194676834054423365378347912173127375827518656555524082811824109440540479075621494619356190817818493051553383785874495165512116640407988847090471735173788082744787675665073491175902005504610035878479619321415353689447667655243006954228419032917333908599162407737230662364591814300559086747478080339862354212071582052578877888388049267000432118815460015130372704751099484035935425555537553747240751889727102470031072838849777809405265249166993900999878243441035539565190944567553922834512320633733398428911890866487303870578472897990722124679449806822776442658622805993021452492117190273530675213994191357152267822024270556426793171697254746711910950592221917493723137594788705390259836109975185634323079913093125974738710258589424345353740295175961405170679368930276990229880866872639637153170360584900532007560497333672798848440191039277149117000185184224298990706396559617744199304902142628912561420234314998142870567216816879691723326239945952476314771646554100523539882537419190163332810686425291020123858448562642497612313887925724888099723546482992595426553402205022305462127148128630982475044936288039871527098796857753810173785562015042193664684837702092186331688322472823389874125284166611633939522278485807810605332259252465568763939011415725118158940480436082415352877826020682213682317739879212213340371623821596440403932377051134596827162646142924581860729039420735054438967899208230716058587280150603730640549898627568843972344762103962584027993978457768596822346915854323617733945400608589583336835335424218651680850292033717400796560977805761043183705329811757993622026234301235332368802788682026194388360293940487487074000486178157861916927006645959079370199122758517096528439353654789256695402867729409200402846429456174091997871073653441230895655639821012717548464129696496331268952754559604921916165054994287780490501088528437229746458812339257059831388730262552308622477879598952806880027060907469443902041477964449456986641531356219056992950618063238871390292465808227600535159393410635047707058308334439859275985729690246210653549307418814193380568041660965741230162106722202100259449981376674317128308255066448845156270745159463029134166234864187848694659878225401188291855957122372279793070193183080462540454401571621187115149962900867210621691318708959058276639412257661737934762386907312612612681489977832949230614293255450186243306410352565441169350346413116974244716165368506707038367906107178161536437578335008112952134681921017255374947181563412261106403901155468802604000234651488962748494145629351366975008539230110063958631113901912820217534953067073279498508156141188909759048679589611914694463199463730260350324660941076047898666642817697669339454462755011008560171898805830599451655557916620982273150168736283731514659243944333539773195846744650744699232961015639494644193247442530808729549918475201914186312553525752052063329397896048496803184486071879215542477414982302450457587604994492789241946663504277143631338645994808751896383507869601123050030710744992770542242370097099109656635366394257318149068616325672921365543539086137009566025597288275897949016517911829063941210562160009495271066803342826150419182473658429528496873794115718786823489771404826508882764747914137898959146442821809811796175144417032721993761921597598163999854366633375397046918350075609470876843689314599221897474212775476971303641583917128950806296207262702167645555209093538672893743821561377522716663409875533389518202974969663430030881817689750924471167928439021369180420987589969403165721139686405303182142522721091310296500773452495642538505566229788735870898476741396963773017464223161781053367773358389630060281689899912510205442920023251713749767660681588870608031610909906721833219959469648045274466710612190258718857829886776537483300183033508690096708454090989809307656028446386751891245061951176207084062656961640024705005738603100967604519984631336680815908185324440157430207836301535997313304234891328099527055672611627333503676159055053029161052561383590117039681494472306190347761146387409849248564166301718653037866632044127749636446185080277179233604343588748698175673170828585408317000699972398641390870068563149970322163763232104966636963344390962045774342661039279236026947477800050404390367643207704338326889479825273432921444684046365951911151469125173679046573264450859396004550623900348549895886581181159748893107960440567801992251984118201910926407815973684542547530692653315809973224880501034904092391425312208596708528020369388638717385358328170421528164901692707923449785892113938078617125790372774107188812808961171824899794623862151200604484882854085422926315465906624324668535341524721508602445446885187654842236192925933071281288903786594025287291630065682409489501694426394613322882206985967860588053633805295476822087020132988199504859189140429497000738043064546421105482286339055259418062539329804261816984987617333305502070456905677371495760576030501024865619300390120150228710215798778517915962690591361301232659470063783809541430052366523151777211910847423578350598538611966670784929163570407182018427042800315930984067980535872427178170191843068399868880947818450219742490273070962097425140727784844286519098322370205799824144144667548852684761082605518477200507250422585126835312488594824792820537029905239863697331103877386394150254835315242132867117193742276712350294788748011861028548460546710542442187298183292848202322952008229784724030508090759425115357973315696359113991680142294063881756005192866749884246305614636912077092009803337115552939271878650251702856989463804552288823486717499739972392467529149023003158810400301411415806595227277244671180861543897723789407203219351529045741805520761497804834937926410530449440617435540361979267849357054942509764398102011058683381479690189556717052549144859767118836304814754074774863165743199914693766532249306943718142637912624691807540487687868819474400218083086199719904231136477592504643064504385480255368460604382112008947793004159171064630313378353896271667555691204529016732454702777141963669549024622222812647274492560418051647228553478398880608859101206550841950880192886157185801066392033050122502830328011547049037271465577184425272366455270921897107763335475928302543324518707167854044136663596071571054016676812262765994893571747058464854963064372183437867566747947020352606374114407710190320045551335477331227574202757392546114842648267229989764686424147432726922689647959082416510658317710751387484503386569322533434164858457800913304655138928861067862298759542372949123402715524761479144842068948160386807137070260820374193589874303499301710549913681269864768598181949723724993700069654337428961684970979088066954269845863066265439795683137360357965457029414522958378481510106066228866935976679776617214444190442478533708234850962185406191235839194418819264204977448371203937739398564590094969677133238151961863293845234200437377586308573276489252281572874851767723913885834553237822830289143785506377448267165747653649477609624470726469395023135342060431023723852218653123948547249554985863027000238621996350030213258500043365288508746360918318170870432215175566648432040494044039472348329182014975492005306397265638062623249542009226066329471305505751905297092316568259884416095888141975379439571013075319202092211882229059623878271186146002344785904066141016556449295349636276699576045193751471898123147915069088376888088240305999600506138932705402907106310115018975792715196637723553723881233216417257126170889372480140095424482641689524046833006037156308280304086343589052163579365957549136169489208300218238341580298408012572859350072903747712352966351725355201411897536410679401770482135124457681839935621853518738888530849632349866400014972637199974727865728641952987934033881509670812493029043927051780686498817047613527722862079956079915859078650982858583055084453710258456772368201941582946067053126303046649829894439690644994020239752324245695910356646476016240470502997341219822621087260600193728008765294874590449255374990550160273657425898135763717484740723031886763032740422013022973067950498334539504853317819351515213285456295330765678328847068724086810405034415055849269694825195522379251687756232111186587973016479821845189311532862763925525318255856718566163227173372570424002943307217909957498414968934380108878416580572822855375104902849792461859222070715851542635645592672199320754653518016691358433786463677308287270005503773692961236943550166951366668993355510638512767201428956968820350168628285411062193316100044301205101256667323948881975549719229824872269075154678700501724292094530520188635577008579960388271847741670067499178597282007031836448554815919190346905636815689222432548458363239657719714971464970291224708744633345883248268956124791595998429752051782859635135589089223001346421372265420062900369363121285099013834099911232953361600431470529125298198586875083663561903250317990758828436543227022720778527858655768689273547188864825283134003356887576007204561155825932914493033622529412888107882727194975040444740591469517785701584643346686181628555573092421708800317461048904618352218902210686892372143446945647719116380778612675076298173722532768487961063312190827686621074315433659302850574747022936651600949022155189952561353154623722563586628438022666002301470132146555014900379605883258892753090790856221539958871467286706242979891672859820343405065059122339526330258283213153398068450376434241144447516173017308358406296618136035484261668873011010709165163448459594935696288409227171925911491003301779310100346146332422211407265290106015926934140533455626063842014884351459928461825002066168370773508359994516871009189977504033495285880163618743714096177174254543118048151217349669636854175169803142344854951650143983327181649339598295548276076594875844669357745326847913456189948216558713755488765101941852531063924455030139588154566123860213680955721127594366229996870664374184264919211897166456303174692306110747465959859653917819273981231254337739427049974142883497362529825777576291528691580805205631803895286968923617926772555388825984419028638806313743477897997023586800864853461129588627100013384647353422009205764961790229591909822055851833498190540353114442474307705727038152228334620040620626542949547347541137420344844919110411155436042886802216325641795722083300872009277158005617486620050488190648617045116307316226117129163280446813650798808826575420190506717042689524369325373077146386613039036707652077870751314880133441831631540684886296995546927415575144053960677172159641611337570492158814603069044364525667365939424635167046522469625023435569192725094137835639852310959279420681581947400801295963065511616686033767505685636285456806183515372514875906967583528621328181452214252597514936392126183512115704353779664151494090560184584815547157086780063837688779648817456120920273281378144146581578393691558274903555631619656844296990654182602860791003143790055608180785847879942333966615467046476500313566715680833654314929771658937139470216283998002067433822427857361600878035720219435752379065015811242463140475064214706660188137720426080249534146649050572896975027033469697947504165452731258111855576062158933161104727298416485117669594008540072397658943642132398477808477872309367514358919573880111208062122601370873322694728895597637790047131127408832927378948086573516436002195384483091874306968098278743530700714490061609332431849189275992043444754741739672698727483054020201720963126610799966663250218293779765442729165321613961076748340942927500014990515568131716267684475962125767671174509890121198184472383297629926925909656506358891749738962802054823624495798548443745313086558327249104604819556750399935837619477647800359868941485077444355181629001864060239912192450332245485589877457503012335500026281964827651300719248432777669845737683756946881635816382702713854726601965172470410063097564875400171767435338464380994142125894617996890293969373043339327202464005944756442485288999384837234614884131390794931276715940564746339732465848897456038500914166597137895400015812272022668182098385185159492216333801956013085668196343379942921970327023659812789572211790654291416591991489507070321439585199948891314119807003421566213645494820522267212055781504332301053829942169882752445783986441987006498371986446659490443772812044199932931162351372919894722702400886768328092640259924761341699037353132723541755345486388279451366118156598037701575584899415397662528061404609648337287734438624378910060933991665946022567953268102738561986092550159881140526462981122066670567058132740064486900228036265666909625981351723186790598286181881041862191013590624509373206276400763972057691949780974789739839206842160988870430296991493183329494461872878194563640701572890869586547933917820177948330344865763124574128652097454319362425965049032807972268032579689536805200682932045955909637919525232906903842820527506624771098413351743252713123440696139245585341936571581286697431369242522292351887547225228873022661070450321407903709645554037596934159273036312374163853651126854722864611242780674378850179024606037304623831757884091892829626405135564303384807110115328166504382799409745878036809879946733639368665333069271418268523347715571873777955027318309412622116614234346311690256543648694076575339172863443149943921331670919175373593182792516163813185207071253083228327763785551538756158743691450187804015505763536910547034183191438407522546668717475223439262179881286489663006381230281237220395605282768450816381429343406750551178159584085964486983435563491946961181938235333822815113569878201403647959102233926781141867985014646799209803225304107081253922959284374924354152724731753239454975618642645343246166487428219828118467364078137469939613272884224550871247600810356486981077726864279160496046368669670064927101943892128864804032836057510855331924350821485622943028767588026156958984775654887003692579944239621057674632143015116228383765100108676796603116504838910972524819911979153638435072020475361903572019946786802858824748178316229299419905063259996433283805303213167608283501454752223901369783259762181771163481924164963004969767513151476927529021070858116249580300757264203590371795243854393121305362209227057601839154969724359534380050521896751314031147845505513514721643190034401802396989821800642344622996069795914180270550600422561899654658941839447018551957207091006144131440019972326789711870998062920569679893273379819095471176394338668857431884373709078728460733009895552538375522513631635990740359479771980338520192280311929024681242939400110114744917597500517483814647290204428805163757248048783561958152401050708478633583929487240715903277555799603129725153198875696746116967193779901637758633691208482945535632417650028806199694186292374102257706092673264639570216045333795947309570389362138881670907728853148780155790095051994350373397609777536972335449553585634230306725511652197000307945151318425797205375653979253052487323798388933689900589535037855280328009458074524963714275294408791170152623435160223204852012744803359195773632959245064927780884225253322897225486067169688792819931486886653824428386861372270593910730650096361065806898172267649045926011247253033960473800575444393842191825603331630458886735191233505489431117860493318555561323754970568732919203418387308523822431945925797153592233809482136958907378017084936692893848854618539109537466971662607289673064767526942337702876192346646552863677364042662779223296758536869117695021972660336929808154721837384052964506165440982385027311060728369657703783515422230598035744367756964826149245488944102321662649474762835096866633676076435366030822174631478954398107930766186409160768203945839654895744387046036844001996876111545654783493072011116779050480500517140159199692083471747612767376020281001543040626233933986163016167920283703760567004301659980520692428190675228018884261956584346620711471159824809485746509832016104719658753687502820595151658933702993735114959595732451287465579479853855541926988165334515462387390103499327477857775608888737548892679508212865038315060251814315951603038322209248760407890833636894763701705386526303034789277067382033410220378897697862183232663528311739078866759867632350103753699174556529142716600796612765899237631789389625829733044118462233373288912363126916643567666452618418761154261714698245676282500482280567166291317738063816570214305397051272275038890160344004604817265144308150140929527400768677177947668867902520996571785865582751701366445140460020009157719199024381733637803569921745559246238412554970356624993970445835381443892104178483338104516355578437064438423019212995401487147448632296001120574790495382064473690983476748677438056134272518721945084374492724355268784662070576174670487818177404804568653121291101959460006602411202312658724889242615418572980883205050493671879720452537187236414058858925453545051821471478086738650667016577607542450830157214690118579109668962278895659394430331677186959784072286101956764713451226558719477432844897711986777066719629008422141041386326767747648293063095435755243108271618255802360358895887438646642856464015357728587935612756596547747428175335978438780660922178057119624567484941777894945404425056797132310968456337077617859454207056034117406410360970427614487353083656982007304557311634909862374100080031850690103774809627944155053587251711061391768305545330327520634360678680878442455318323234263415543941415848132663623338030183872385032101073638199777495817873342503067682565369721467800711007303776732064534640376343061208936119138240649630585462658161202144506656859257647116688345205653649311881451462351790805548094211779424450147208641703469477056020295971420424033563303035121681870503568613362688896018951062352373812895346312703188531817464470864049956326833426228415934285973587885287293746886921365905257461068035020898235583273973483715663126903080682573399461586716142788673345450781404565753487775969674288229406721332260557334478923689652408659181336737171442909163340680791967188023942040007867230299566290674794226020672650110947117308499941710111227009005870741308081147472030840194198214790714524910579216159776146945803205373484599318898746383200905523991581426324443042115713136276136245477780224799833098822605314884942054255669905993605381455207586215534542477425262201736440232967908542378107029249169322387718389334412647825714690352253024436166344950763125674902711007600991977846267403536513277440780212991878289726332480759997538503617391762113595412742490328667120207243575488043305599644702402696047462798035764974621424603441295997049217746459096922849388989613937731682057815411617761269108352853974459276421631105552649086793474431521563091879588908015416974611787162213851959868084117118221012429185892905133333727719628807679644359970608683259056648964476933391181953665698143630022112783165349585204948928877873848925073301737298649596322362068336096009113716490564991361863506890523899565557885175324628165062298304839856056355212795070798659988836500470275264361616095694960175264291639026184098070048386590661067496297072558847074929338657486243047158546228364730028053940379263762993279965557696662389923911709317632269190086802344879750853698763146370174194363595681316817327383344342905840789898388828949467712797214199056721849740950580256726008736722629050519544137873080830483373859188757712406780968938922572263746522253632863910056654407275715058633631374250924320428947726879231413182856129493180417858004340868715586362350302564616696304998911959712627345019436408172692889570464796989843036025679070515780088822612420881894219924371322345209208960649871047381839102309410410728095713315592315175684844003801282977363935854532757351842226570428229626596890349614711601310528970648398320433716999868315219955246966514588349107076463995273125839120104231443988271735534566510919322191868244966101125511044054884690657702041458207257640883876388183600303940543141739480729517265398413981089929861394907766738481726221456695517767875452257423926225761599787750804384987035453438898455121848939604436430793695673588064041654887729320439105016414381779513397932388471851127635610764518014532606318703546476073607770888581027593806897590975431590288511265715993238895344960647314130090928007895028410055050499009224198018830965941409902929285207775220449983492618528793758837298840616394177086421787210795791679386162686348639536912626715380007795688890947502561397698377367419602998858544491497208751844703254254071446041774579303934690809088485668251093797148519615733588142198803532858408987546934863276881067001553196415549508908443760617838588673917355929490930007422005471478480958015086116852966388892854705229715233862666609008398108720874824570778358893295713089624629875797928136991673325966590535564439483604332404586466640791580915605907592449601057831198966123327827949199364845009879675506546931181424931243658037385276946199428884316425420045853724360963189449662741380551266356804462462344385117735020077327193704336136771359508215189910804872291313650810242835110088211910002605153266920774998577406745226594065150474652685293671336057215216982132125318448762192505681006789765293089938250050410156386861600798726952141362905166271039541209209869695972227944604342432783657705742493144577268694551344603693747659492338715432665714213794652680750129588678480184993016769463639392449877694562628559386690915385767223250439777558554411103420082711962367209594373501303108800600495202030246086082732080994795118394254487625958975962054373872299858630425153388522571481735635836565992763212860825091992636580557293722934777709582723166585282939464484896547458188189844182917390020289884329905112891561533002668090932295449031217556805463006193383712545266786752887312487932824519254339990378518109554839259314443904354294140523608231905476252625352067346679342407217675884380050734097755983544967978441632695396727134830078034746550572519102738994250699265742641578598638104119493213110464519840680921489497557845909941396894433582937995237172650190180727234475559400143574650391472446538935949085162445560891770107244299625496711955661202332708436916975838348985722682246805976195632758250810312730484062920289226375132182656813054210151190123968591903618859675100736479800506895543246607047356433099001524429045483996918237782267803094437127747741478766398786692899578412316336762943087796212313962252826200248577420953000935548517297212634736567760004825311261749056091621336649374817499714271623902965194790553609356789297145730137276883672046536623586008419069533062066392202107299234079328933667578793868705411695416667585992715195689751054558538711867428006749881392637256977143410788226945219795298303533714454383748222515957164618852139767140566709323526200294984743621210235068053841429401579420069403418613867943871019651163759893686101977419267862784836358180473579947348633224150024336322726135309192576873385730872291731694486454909868962178969946197123355704236300393150211229085200330894868440467386307109080847473133198716154165666443047840724436252975699533294087837123783679695041999256855080154461161806940171783244979692313739525149669862571818382580148768619763951907021281453437657092954324098700115235267404739457161191389740070024443737207913382156763333169779563366121481046523295705633930353532695243238510509746465076821257409807418502257630810555064719112181169812497166059211284351790749563990924389546725530295859137618221729217198700158879366639145815375328603856820701526981298693132141344278694700662300080508346477798126078096518220185819081948496003106167002194839761029509420889122834146819052650087893422877659137972125921015807120487253139198687777078029083195115380167854937068014737440509942440707746403654087659812917006298971154041792585851195169995835708408145865466874130176503080982094317980964147644393595571628303111741385002032605203677713628499494249532610425080417519381393008335163713573464447324045026565444484535316257597166076104656940682303662446280666282911405789637490866658498166083800291381727805722331997082377116790809384990678189187512712911866137544938791775466036397098543300777825023137055752353991275359135488669486448687877248606471284153764771907304887318712173377929597355838548092188803177393074081456908463887419559516508008576831365451203208750478811123197398352461219897073534798321641791940125452860556592639622193299540859356948355176037141213734894442623370354719046483334122451373334359804057110228147333609955951389144528634605409451023802409725355909578716529650862779905477207113093256635454319602753756258128514592748194222825514859228144406526232479360833624728066850048702353531071508267054022986042761412729702819277099357834572294807693798107574979595956904716912274443654216794277811949780354718041000533186495451100033733264096370420997869956862217412408131688961010000079566511002248822702913725497010694047434292184837832879940927068748743496460911378565939724933511845749209957375720774949579255992879499630064850458291903388345882082542482529902950298248887989751580817555429515474400764547589060061452978485209810924988024778391901086817344863634731543918989920542274474366079766739994982781150755572589229388302876916540821371883122436345368953770732567666813669876149445563415302501279648350747873039087325115840390213463536181548842979824130267114000461384213731772962659331645458134626763696924550464182800608554949543232124526918486825664740412946550939568694989255517702257256438984754125439957041510638813269503908770289581853248269607450231810505700024196386443724452065411965507282706393963292984240598784178285924006830116099806140967321315915650896197219488694673923395819862758648015852199295585546552575253865697623127664456577802696844305439195712461213189146709190888982060769245799124980755349264685373613281815200199841430749360311738640760151650053333748566586677601147796936398740750586842731283608682192986401172142449706181557450572429210834267137771072929878870414872959277299104112373470845482222205107013726368094296271077219977325805017492538829829036608240442832870036506698866562319274153465581986001295152100973278991355833120380831441539719295797827995953114077537105959655426352624611126939883059115008926486684100325860277825503329153243124789320852475610099490051277361884036740602892471606088045293698326848093241242899791013873781832186365322991555166346334560710408519616191970718249457246570973849321524146685239181520808578801346522447797347797590520659223994894980012291619336661150736234310804175447445204343493396933832214363875263456433929397818639795754657370842838423364267844893963578871053386201991181065622221887128797458942883633459805313253100111249785489507272780785704659497042266466697170720312311548201543189609098808217738560925015888478067537263858250471849026005193442066158618484818470246220562958833189821505542097322532109389536464997233957534485272931198815659508490972556921250657356383966863897182784438418308340720621472178574682226388100560516723807406563711181951027055075319672041303959829659080215295165242911526768864890534497917449449943111264820916210323637933337174439846443663620553564367429511836128811867059959021920779688265699712731002468263537803488459024679819304258016906715475952498396258004913316978717103651350657311922725291109045283009490164306019477621255082807807972527196429835992084407567074619965445642066286743723281941687499980931920015597683371520629668443188461412801022100139114853933248227097219841767592506680936228456572084281370355249253133253668097957764346291885395574202667165702178391286691604243973210328512901561728471929393332057468847463206351722680746431554714829146066806294827167735458340607582444841742532506572941772942979675009429713988377475841229642627876611857797323524852526847471440867275574921616881583814054672245150153330872707000393561175676855557234230132241479957872555120980314949216080138280362109667657274099686929567954520410372102436653805340048774007795627409495124339222148943210941645366287878199679167314851991038059561216460552483641453530742748941776248091045380572495887164442827295196062654750101483848917787684770857793080384437250199901951447473118519536440378859337996749928708211072993311378267883655295839651954949229573437051264927915941548543954996542399015631327059494372881802413497434242484214629847039206364666389596458905941278665593062224883016051184807765589682712261937170496503578281883551873548690217708549675076513477877842034039448344162880365555096022614934262803818305057460124936859439569229905654260221247905208538442029049348790106313993478297128871672428264284055234074776544936842282569463617194277850192987006294727728894301421235158562172505080986851995183245885443393440470915591395733292295729236945066903170625220224529412017370081163917893852212543378958139653759333137491989556566645746648515496975152972666580088244846303578832311878138323230260786273787814880714844383337726694876191417316872445101568294999985918994496968967324418365528443572702480738224998300970916141933393620578541496312751456460009694774411363663327168174453562418660269893179265071447458842647279803570037207371897547754291315043599668890201543803763255390920476135985806664486971212861725744303891451530935504311900359801914698098387748314017218500316211526189175983141907099362240418287336474759401093951321273372461127196862614590459825375586415426249441081325044644934563658670445086488363572713638115208771208779500622089141278833569449736512113235432556005081213839015597768828694452815478061485112261343142315939963691391440527711861800108897940478465820110051650083186967537866850370660093888260771156533625523744728057221745922345790851453370265695345813782426797876033240818021520218723439185751073321242080974010023322924850439287607451555576287483599705151037313551210602466633618025286156901193032519592036075235988646646575909132216533074679378494139141230855050392557803946720164008520423641851369237044007054295469781125686647835428164141178119978267404309386364023919833492205483368498668652829781341985312341704755790991558377303482981067706758009139018913204414184288879002879693575420208988173880512451384548660226954192012323872118829539779544031123888079522314343406534925811859372160098772146386803904522297488752550670904073953762226171378833064629815551913115318071174162074935774413565054762637660878630488950767709336785460358724778984238749500990022392322225615276532232957013407306094112197544518930243387435242162299904969680682999838569344613126913423902194653881529234433985619467549542522964545901097028815124848138843808082386814256523818140157085056858337420461949432955209275864080034904592055302268283934833999995955718628724366253881007423605061940514045239198963725581556747606491565147066067527020915051239959729519514824042396403608652141832328288468276237768304043015590088705654974134294973354046929496119511258821805018406044951248146123738351768096152660118907281576900980284374367023095225381636358591343569314803205207267915355253690415078111873003734221054302104979787025186272590149075808619278214462158936044167881870134058059944239438122890892310722279346345011834538405076721892953969585156832516566354994654413576695515417007106049464967780379976426080506696569138719734813451164023664156310829923584507440928389483767407910056664848797732418241743824955087196029722429998389922748533152840901463605509662517416798799754709317581980152332048238613860775423548211648721807166201724178021000036815977247242352103510269836170042313292433467824245096935306907193224240154190965432989564067108307870413482958302699651189732010058396652957087939293613611063033366908243188867129312419772410864147971445771654828464828113284406111102264445396790698952171050694704292880871803931404738079536730481475325313830686884617543102790313528855836447567600843039414586730895843982148779145234270111734150744487590830978165282218937637529065504024676311534741972035730668900769150009382268127245457632146200011209109368266956223017961710981019043343073313366245777685441248885282311456317398022233264389964711026674312313565457271389504346103309802776589281678896830156364643415058554862264003127980573525705503211880533088519355595838637162659156672871092840081353379941958887025946049298566891249173399973970001064901511944519613499856822203573611964017284004339833260277314626441307796196463016803760952361920544917551844551915327073996392843384680640862694482131651530592719291038341309070796981593700128077912419434118231181108996474597989669705525382781517563516191980695521780811360775324804938880312908595922374261098351666323476726358805189484689196601960184186458192840875498111516134228275117749912753236958399794850077768856875232934480591413584761386558689501184741739011381523461538968613365768897833507907615644538232566995480642165001443171530915579403943647146195947635371798031284438842434095466669584821776903715928505466080980471181454664004265470824086446373706755830159341154250667200515417675854639450137749680899282254981377829875446064833684178075948749111123200169752759219907652361193626091416560590979986288911353101941629017160488708709057037277556046298484770754745636109140394571247072915412777260315856761759773893887056182855004271599565745582841489956098995129372106514688769784399508513616690173380303179378185367472668496246516078675619706127624863504253190653282744880436984391945319892846576113217010007393607235181905796313091255617255276550881991328045844278043368255932809890176728546330884380755659408185399578180035127218229714795539221214657794156715344947530698969861382566077422720166183193655097756467106642061491487678738886462798845391816649645307864949789160051815334793885545806234781838395930482679480544954127403038950908275309184742617568187757329438885048812387418451787124341344205425816188684269769303746395818114033009513584524452386963244361494469220443381980425541844377923662168737785957869153425837692485185638740918373967033776762476323809321621976341242883543088420399121968743363919348733468445756382973231450315364545247982271082765799208458232044774413529114124520027527944854652212632214807501751423225844323049689630082018582788435632581272234191461057946974463035872619427052067832941572771266507052564384666573154596996318161645958656654460514318323672965901255436560010924940476486515259355443281785119570531711645355825809758672706781448803103342498370072534597114177787339547860201043483798712662831588823841936464773985340156256026330203106896079742017234785648806654734605022800363624993067871906828041749866215046837874026875185873191476988537380429430550539003213251929297413711424823541050655495750487481996128146546229032964958222036410030409398874695550109388772148296503193484940983853264571940632773672239103318330065258798382701044906349067968664560470638729900795946068307225688248915767899105271933844455908012980205423219172112561967663336880528140200549462051939186260625265882078958765846682913322847648039579011896163603156972651145335665567559144853508840680026996471260548786211098442419019774718306444228437752783115959296240344351560962900263896549374399932556313072784701319007671745171277771464139084358821584050667013554356637451164237803722873731156230081860379465839375489878755166791332909505629002141066796248342004372533638191186315037464370093889660126601097206991936445157726180306869161778823345229964237038983154024120193874493294354586682068866032246979119231750253244668150454753492522949965611118364750309648956607825069411100941167516401623497660482895531861978298823287475745843100583312071565299316800225413099207842971715385935513255430725431273808386143023923743304752798102034104863814748051157379331851276031796482671076000246719977378723963196291596750020740940497722605847668745650760798153733944953345151539320256237456654820504369727949909208119637630825625282435937709768036453106796820105259504058800891711991991422051702413489368991731686645317800983301975440128646001815822128694715089655329371755016529486847889828768281399815719594797263839415168702810114071180239103511479936744149938308794619273075154767194604989318008404500049782415337427520264894073323480318845643412196048509081745960523589997517745622598974882285891396103018017987419847672024803709941843329670142645792757779617070050346377656188769139308212748527231715591766197050820830059130040672314234959870669554802650548301702692308876120213708883570123649139378256879045930963540412318541436546834288269643312286165385677392769803476967558253782868912506813049949725757304844726473203514099645837064131315118706714523590397506451920848028312603412599275551777408711762822880436760621689253071440143383798134146452810332135055997411471906746425844906003957277217569844877579497656005289632744077858461911228831141062205632636735944334022121294854574096894363306500797861300713274207045504893896862581632468628085814664124207886496073452289204368809844420406410195025901995912809835869734664726042809990560484798419514404808306840518101905417053683719379883145158031014505939153637585917314962849289308280324850712152510364870551852540638061628850227314547814138315918122500682050714251517134770633218984331816968224150621889414460884001201129011678399455418627359076898561222636521656275814449894605293636254721979720773879542812649853466110359211745507378211244356640098597308274774856513786792676308390332946437580749714718136035747296723588598375804039067120263411453662428846525894539717397383259205711631107661767696249366692113688295067449823672948492126400588410788797003513662725333458736951258110028530104033412168750701738088997322650735083465883741808682964560093900163985084628746422214516293855875453340977399085127720473102373178757179554052897048986306296801900360764126804990171633972386743755108801589978504954357212947455332895117780115948434250021454398855662876288292341119245948222299086424583729782672803791886198809072115675017341548052379108174057784448500831931283877843388255659427364358211742644424890234956160324555107622580130465285567474884340427445192417238445205853063847973514235282808313588125397157670742738586232687926655417489875326830609349685781300907356903408764103895331641173704562931153791112772193673174256790015008453527497958892438927472087454780813349156805292416815546576944272182812907260623035044526344814188600873844622220121287689296948400995843550955926360417608851248325087530734981692549959629178426429714838389813904202133435169675327957804097601554993665050936984161246625948056376619909996237551682128813157017164148841010062144821383115284189732950134778736443714876822023079035029411114434027705172975044839173200458916066128769862063093378523771175357689507361943216218643325345446412519821170939596482606014871248710866678586134662480374347240941929691409538507374612903274768950395713397965473217128086602555379012128378001515694617851773687853559486099063770394111238834868115311079840623936155440964991012312194202608537464525410133575653576298517763974877445383716786985903469104503533561933603025660725525607126944451332997252629321374094023774871318438376866954047495323915240252053224561680640721763533247837889749546310302653383713645902637913396479567102655892709736416744433643720069376031641728053114425638515744995203072519351618066179729968661624639029771624937678673529924245796010172974110625846248368751754900851771056186326183258319026134446400478462666018057979740649243956073793112413781359868444852285955883029798857742291252834772348955093126249438380694093977512114336136282677693068000955152978879378852614102330734033276161224787040418190049404079769608772223091665547829600820378929549421064332440303663890737095713391746018491780992575272485807052577668190717012551453646754865695072816105911666622270402403714539360360990677527114728566138786574263564153237047245854955596329716567838910189912946409493572121019164154560636940066492420980443039656433006895454175806506771829992638996408092264420655994851861009351278720552814744263222372326748918579570487710854877495562035321949331881111268842141881741358197439093967810003340202449448370110640336888702654992034356934113645297690755059397255328950261725761565620359118933265017758553472038004732710782866013537143887343347305131433069959560251203570338800152917701614496271948680195760881836407621746013871573243773839814245140742940829835957517786526351236354122877454396621688991904807149668078048770914067559144954154791799520500301842406910519775924671729898297260834560046240423779631057799985378965576347165575923645593553823097144842900791657529822444587320781647322641147085033918212647761597768160176659046268592410942445602457736032222394416668576736470292961597373679388582159702420487159587355605194975356823591239391095815025613388264883935092768197570738443688806100909786235857741944551185194579761218612071230953568540371876508429655747228869138553755898576135973608320941534460877693005659899052453850200043179470656081513709247632479264319080351805244114890033484360357683164753401069822521320845642092574745648327390477610193379174566140147376449399608034969594127640263183112046195382328050493585200165842435095735408429705471207438784908303560632546315222689276062587554537540377044825151346474792912908666725671541301290669074622284564482296385511800311068193132998296794259682666982391806442005658386325712248995184624171179506900182486545725237322565163508461663863022364776178641140471984437558512014135710188614032046947481834921212146181973974293788244620124778028558143640393983030097562961045227839118342072522984823349034547798768560483031992258594004437797386520090998367023789963683277860960412431378668376307807852491182640417756926455965257121729923803656504216162858569727573327137545026918519126494494020716625745793111496194219164270241318716064929586819598381442689038665685167686309671128308847381351386393922342358903742123056808222206869692349709247004099265107031155879380424574734544393401441392265248875750617378639413587787081215256002659130436593797244817494785255795172661684279456934187367616290445979103823843318536267318372930213405597794785560674351652258200901774935338642447449708658633621752552686739360036719195258481254699165439261426997796823720976091331249881347885193279085358959403419870496372050189930487651267220173886088611190038225813180320115190845370609546723703956547743101422374162982807670562681085556516898551326907779025208574814274622413827224660671596644169842273706425569539433444541865624781079947393595380854853889000836567824524666025605262764627528631783526776521396024354266046811252150861448779679508071937596132235075037164070688655761265735043025510814190442081665669028735552381530529148654467568310261946999737320962920558406083076408355894914466075238200098629428496980487096081948705059858894852341095565381016544623035171232689533822605769420613647912921533199844763571915581034548975666309702402088912467105955744193504182690663200224173490169357457579061339211793512767180921471611703552658980062558076861396495170404608680650847955063862656126256502153187242090789568022314843347634316341562820527551448107936332362977408664083652164923463112225022991297498813633220954477331873668172407610032764956874210483771145832688925873833901354069362483762410701149297243086898622173235621012525113761419638838414604641560305610322394962379502969949951733524520177828287988611385557423210740967368462142522722674638424346071739084385960839543072169406950391672355818223649507512644671847090355515747951670421548871781776051468391049112368576508969929546135937490632582048404375481222346300570345267156282901967672811479206435463890695702887809707117233880852323401797133066859646608973876314675377385437102395613340873802073001071947742115909624474369415162389269602709446105540186523688789725974542535641383521311245174608670671233710929347665740439367501466138016683532141672978439064211301109193408567219675405274913346355216532990604806753217586996306779112208517747324025906951116148248669598882510740281728070257705898101554667398369461763061961046894925567411310607864145238415043552859202319056170386474070985429766300491953578196882054089196563783357239126106938702396599382348741788401208404594430078867103787497658997472163329592346040459017510155201642887157663855312212197616980909444976104396459657689719333004327843136685840848174069282521027088371567616628017847521431510044768804497938572054086023264937084673812149593211175992062455119152470920391566006976447837044376971865018503972758808609213869730275110134894779304934103213357932767860001472130689510586710818272111859292704355248004023798317807801857681721117234478822869524510289790740483481795231096011811332967507881593113630136043201822126533521103362519597755476720622246603097743410147337856664494215365605293391639078958644428093679853161759365246336403900971526755089090114520551417705351191924609288342262826801061087477162834100703935703123715236236055785395701982966907887677557208845920290304190932544015035712607839878347855686729736833565444191035874426772398231510306476951436139000848881407145433832408817954512740958861236446059035716685125236652791259932147156839605741058570614028015068618405775624121616115844969222319236478496223093757253695009714478773847607421161616321546965515943306223855421571707216368613337146758045270818252032703780233826215986667851977090855375485432944203790265604203489293706527311039947413599910627605362309954678466236601557582386793831416312909536483347249916583225654988508468074270613103636726460286626556867242726572227635994634252526559282228788097334389824696675482090307464199108080252470243004166441018440319618720683271833105618184701550778159495376072758700462718515308999300660949115865109963901120498904394152329299281266219690949197058296687000243872903919373511497568416203427039892868613138989450578146217375640242870958939451075436727075730037922978972251883103380069327854396194820714711547065334584210312888019921460153232622764124707490202408372823001575643949934387580997381927549585276357311022935497908951567097523682040735712618205700874166147938651374693287047370195751573868613145231365303552546698669452861158419942946435257192671204763070295404063006858596529028011430845745375383791502928554174682223896329139116643435669539396220063350520007079037579771826752676539455349610343561378782010648668298558100934277575239561145014652099700993955510366108682487508315045497249391679980060544994697028087516234062829118462723282555609010369911335608758620401739039431965101123237401144745620387927842363262243906706298882309422472374402760519630111556787550651019881025094274033932303074110215550290053328423807410403550969803681216268761875534834197335900828502744995782032290513121573841729867461219056144768898499356073399403525596833351502682721453894545610346837597265168057072117327330581567216664827686078270057736331299185417818444525116789171961598707399377196601000262117716430766990680556317607373990104020581835022144292843862511466379446710615667545186872976351218199472514929542168909113369585349742600637547287125603904627271854321828538312372484036935854777253116761520026595600467016996939382944164837860577648787359132588131816555716818707255151722650357659539729357721746642035440288581090760444193006696069553724987717350370958066991497623100776847403465902787705753515665084140091322904588991246448735155736817548036157394612514146324654560610169915178435749807979855247730891598572564872075671601379917214428353763338811115673110031416261799748526449845624717422750145937699402844021639120141416389141402427617171958641196866377443612563075646330784812139684463195726265589462944197323493646119518748112990859071288345638235278953789752292583044918853719392234996318375901071731218218648677751468468251037315818117342425795110724626587588168589696576348392077130467279894818651294000088598562361611056732966983549203218597698555547171231415505131848734002742819671591957506837826106004168573443722133121892589581012586107254542151993264485239723886359843440329738297843354348378990018748160228128960322567245981114252333766092123013151913681882796152181605064369142047078662283022675030172883085245996615604908733999135236678510492284107438632865711614268008170203674093883130320358182378648811448472954657354034804639470088459451290310512666375830298966902093241923550782619030401445920719244422062349783629838996329844023667264419417980727545873799167469676616472986469712455897949218793913575583384962690373572789275156084048013240915910781167026799754582352196623658486922768331859382743970806593599404852689460034596560940964181168809082303499944920038666419169776029731466710576644745144977710457325111368166277974890285692011723691047976107745944434592982842784768259562964705897701269224496167909832941884570009570242364647914936385614712755409515002877402758564924280917909518703479575124744036144351727956086947038114641380646213411217040660942926274908009929111438037119405048156379563436268005505863005005094381454403658992113504993352602009515626474705190516190703501837315268974984161651674100776427727024951246792687954397622285594739883930743375132464327743380464389754647439943165944069073168867807141313370009934000495939452634105255592741997495521977220216864394582269756079008344457656552610847276605989075229115202759377402683099788671008752943211126323846079733900168411748483531372325978560351918722535952678107586330042616878270966241304465129658865091469519473799233908551600928184053479479679926251922318688956137533653243689930948720274067306507384408283974895681837221177635780230225312016082759933401293074145229879065285359668179466994818268779694719718720520831970800147398002268893204388253428891135836788888115692824880201444439973943412487662191649673984012585525041466531719027240187729122594790669173067155903405353148777311348840687870305987364555392091207075160663263191601935535122071477853450917014863556019362534757707606523649437999478041258841017305732576107470680204696439383480762996256856190342163902450522721647232836824882396992961803799700620773269589700829797606927849141133691571776443577806415289682593615835881262352781302941016410342375716732874953295169744316420650858886054883510279650648325203875421389592810676566625673107329144783028016204873165563475457868615894179908456503193957713173427963105649334251352170797717172733757982882377413106911750624323173897855127310002114306171533788116128672192934907835112029004894425757095446444868092147653148445157823473668156185920693957849700497466118574346403310013267347131973389311435231226883749127435412432284092459346484943453122469568724028017589782518042792657766210251227510665994890953928984110460472801557423997494666036702053071521731117138470442351747128053819920666151550935412645753930369813200417069754266604197706035501005334985199323397803086881019625608540739026829112036733343793720774588496862347655694048794522009513270309540721719169491667498829630697377276769195206480038302639377884636749382086239244782142554773735494688897537485448786905618644187819074857177706028104020235962579988824268704741294719202638785654024998714938661195071799793289453597577638048329537585196897498306730753313041797447279681501291528168793737344425256671460971921802171182641760351674522934440123857984332514843111169388872494297083718025289489434145428784405640136760145657893615037291349929692032807956753909837370316667103292392072439844694797760136081701053506852902199795728272141866107503787412904674882612981348882979157371765692496729382088720365061752041124196264310227463943289282034437618000533491138514888434196153371058092366380791695164324401495582384044500987899006824678988046009866060232208262888541827586182509316247937706322681934838178034809997966422165740366969631015210230778390004486889416710182461467303892320938097173277162160762253477007611767449699285468129353442576516297459921911514778708088008845749694652741623549230459154689704092435327143889075087414710288372377926070727127221656805412072662606094775494400359017025190114138817728376676196211363559648675335040665983736001405858125438622334546680435296945720045048944904533216303307330011453125783983013851968642122069388786640780459062918117739969637407987164873175635248426243112867380632088978394964387738437169928445744569717424560319652824201025927476413136704511811655162763717110739852595698386672587385043339815554606981653956026153289367569759773872531009653069427791525979738019257057772813941741317395488039168084265041223810967018105626047570793051225491016913737550683995759788386094177541078785876748059846589890310925029061124557761048586050804940465124177948109481092410392295821999210424186047882995598254370905447782590423862904768361644556412819345984896764605133567178392059632745180662616736768370868198936409358181183950717348657180850139604848032917972521923800105546195876765702946894444012804257045810896622914753006196039589897394079117525759313918611563961209175748367078122731019252171157864426427304948167514962443242257012841387178992797756686180487199833295614439583503053327018221331689175424242709206933348755179927938305917141302978621849803126618618433443069508066168602203600664036625606698112119601437477764860277810427126357575888161816663816987408735486674082011260727709992544722859278747077417275600012182803804590027385064021886862013761470061618048843557696847140997388960456617726722065066375765792795733856470826282015007252657917442661719523206445254126847557970915610177793939090804702875039689184276420789497171381827315312576262641890759012682170071288039083125573243122609386831393529694142508669611084695184898344839387509642880940913457245101428016596274548847693416219605344399777958239446188884973300071942310304366622907284374716544570273104866624699189044627950619924077365549241256503236421239269177298483699521014427754342341484805184990795158569960582334816267557650879349672027124636338282177641756455169347422370292667048782678709548052759805160699098231131676655473521314736410352268208872784402638616669806557201212390897151071512635136169197522014604449783593085287537891341680831162654935115361886595871255616204469340530993796689655125210011277141834041682558654294427645459906410208500434923537413204619080437717551444485242948655388458574201471925020954069307908407200916732828859822625201529242028481872876466778565327980635710855818253121466537344647284958200469884160917380064345072326234541068503368956326183067728207184883062100156865856352436629032613092292066268244530629839831201238112388411861274355399436787891651490866770590420618040428552419837210367158172541053134081513212963460217922367593324456391458476430599843065018770220449555657980453241340517712440628436969759447551899727349649112189404616168779122912877489468648488339341310271378775432367301328138323636020391414248919492431122595146988640270800328262689552754096241976056670554771302975149284374446843950545341955309877789526505599209903085805629482163730600546758510412509998403158974789927420709660778123382019342822428485533754966105013864804863824013989358950993634697765808199807949331516152282497198536210836199921872650579505204360347161394829083464022424858529219574466949214149174403180922967483090968168376530601933482651394985722736402974886242902829826743654991864981026669842453017082589879979808856303720471508360091463397584432603027321408331362148047086999178215225838380854487500413443306113187599662496930927432354249255315589079337696757430901873558177575697443732012954418879061391785804911735845122089326551528336827425610314306235093299337311430085573823179666262982213464453496532604671235712151968130253613795948503579585339709519814606603039858008045843206431368244385868374649233550439213488766054194663135625904275991121014915365926628931242368665750712811675389212615823946450268299372728491189582081857496130685658217019091572292268893100171112608159476210488049553538465366466600798534268489893106355813669658248978391484323145722784079671683408471399878811100938552345109614904144276016410764589432288189980865466640844656778273255353972444554149618477760459572218735784363690113547196337573344109449428718188044359691307095714715350130435007416704881852939350205678720269307257459394893428067791795625860436197920870203210506179294911629792550469472729107467473158047513491963605592873130590825641944005715432836701195642270634978432276066719037212162641145527658158496646266054939966058351672125196754815307150841500596695658161760374109532488292658797713511075849291019278802601573026737225848583118935275737815367292213118820616981291279276359453207844291199644052660473105028380969250544943022412773887246778030185568945920357340638740260129207439076167763588548745513069391463746147720604801248769943167969187978940047513306236684207879648235802386388357819830988966248042670239815459151114484196439946903763160622693847465969860885541134101550102127694699166528017975206771094383440766376985354077192047828830538552439877553922862184318426553649037421915130465547116487370894467831941329821239425574244757295779610428138407524956259381614773415673172347805118985124955552140014381105767857297166476430186539251491316948266840198005433551124984509660516291761105065403728164980505987210889307039252079847529334521484467059010045080074513905408909666360081939650911274722132435836727244894940983891558889054869573872980190337530092073350193899745780993758435868014962549611254022931368296100634002672900960050801234189500824607419247855007922474015557382797784795009752075682383363882550925434431875596056012821361505331135273406774865537861853091055519020668075497017727585915563042586996905243116861485068668093088983548857021514793411508096978725995014070443488477834388556793188986968000995027792026188385489408151622429805787956170041389378006877896492794158479735749600245151894425100638610687758872407803788787994724321479436672738831070093744755197196520490495794162777023392855399451293946451511007105647952177196801025327871477194363396531061667219152166328734646711992494595393353158430567389118642116934688343359848214002032959273746697308399003299180395154814057212427803875337773567804924642259999853792431764336730126191017520373692965481294535199099980417254261159782949179959100072179271313571433044692193990294452755550080012928899971861954685996122759354225792487690275395717347830821765484091986372385191201518264802335001171400469911382119454929475884663872453667193769797993345596209487819614877692157903244200132516722611187462528102744244561533599892118517791568742423404840245829741616434131841998618269663098516431235721052934105337924036114832670276851609366738478652603647126394967802006180251089196849478578101314879411103420412071897830058930908902995374631344125676338345839867727753451297596758255996349358354262312417981014111035406348468392800357053862443175096929219828953670912561603454252902988210393995047002759472139762496943474326119691265301413716390208163819679530273249430823395014553664146753428219237569323155595287304403983684791880283719626847731787107719209953763866593711870340935707042455948324831309996591270138132841818398714189674981779547762376675824095371418770441727663141933228621892435891051564469471302948572391854700745235601837000467295953341952047203066558016189624941984625326827884252588803204901582389967381723017702506233557999322288981315058791288054839774085569527065989092894252880882523239276406069212192905438744231904950205434314112555275798880554708106241361755264168607264668456135670135640565382090718651614270349607881648069433046176016970473697451998767688685178698973670021073534402898700797001415428220103116645835373922215442865784171809536519066472633294728563852663118744392872620447940623357843399065206177406020015630548773094645185195769427874384652016645951124011875548240757213551034695180355199698771864875678416294832674096612992433193769786727880196689462578111901350501929249979557763041112620758044511825992671613151210182219198993323134053083326435391530971295959129156222203095726022646352902627274348067418211831493727820574528840609821995133185938937504502069297213191502680508532695860688242028318205919790115335604025115539548519382220360093343681482501679603837004207330659647186132662683928925128569463083424446862565734947232844112719418453043657154026081484539175247289068694313905299071230051051640182317066551938515744158898335708385637155770379460915438364252059164361328908037619710205287459639219247781441794324523436910414345927924825012056964720071162325728060158699837649163023606047378073773427356006437498199190811729466722386428184309862847784827277914732969641074559276380418131693905182059008013656696324425230231176015188026132544995588818859081470099474135528324097328904158101242535335915605949836950048409180510568364082854972115616366802768739180342998847898990446817157346294781944661962094563651078159364377918026054863710694359611784919705484530366666122657169717890150851633343366231828061871275691463432932489847084785247797983731364113878675244250124901984442891452063582225018584932435683255634371246793743586694584317767678385479947332543627485421005488495249687755592622849824959927256102041064680462678517962614830253399629546726000651990405700235069967712660976243565657093859452825090367133621357205671798124884054691529345260911055019612653091977639436354376764470456836359030520008100776497786441320403778296067705862060939781284691779297389758064935901749866830141099934351372322315613301125792210920225383617414336498754881227563952032333837283592872033825459153095780107430939066949193188901332562371969690283223103015566613370813467673788502895737304796963222783565994274235077852237061533937544587571248995829590458440479955317396188514014630774606139003603641943417723858716986639535391222217644201306178814080684020463033317984610301113327073447716064464373930089772835399373513139413573707856638137362277838747634178631943081171935197401373453527514101269229321123684785762285226589738476767531975219055646221666694255061121923427091152746366531268658672507393979519808726167725240855201331551604271432482565679784615134651378631440437343396948171166419653206772852692879216457836992124872024398867970700503885675933887374641665484751739116338341994723284275167644016671533132253054005636886082329882047984509296121895320675511484025469128099381294342210810059814068003979074535469085130299417575598680405823825033620811205973464706298650140364402855507908384983672187835796126807152906972765708874203277931614957275848980054943805007545141288370530478113292977968098834560999902437030646252984064073041680924907322259500734360065371464743512900090041399527273050026622837997116228389047823244916765471174988425380926015287457159711660059875672419536561174099761793046425511731376596909571567635362917765193978140910456158203925647990491197384887790420277455319913084695393239681450706285728074709451511194921881271164043566301330000863738147829276732807266051508307415328747472563196222263091461776579118092308275342033032760783216829266353546057843274669564063556638081956155873050755521662472994780152607195900013732468240352259020356484599607066204597402026774349303208159506656002620590230150581552759017536997241828635568137623546886639345397728298729624766577371721502953292023927280712026299932156392547259158528269437789759249193945456028535296020581248450952829558428289853521915483271186810644230681795944295089879118023538302156198840426893405678789880921319308637844263486902687681351594502548252018647464504756730534766064066050454586137071899466652882880073943099577050054522455676782328994350293852171794045758665904973517879960202805091514681681329095857692120017757612933798271756623712922066153305705415489699243288843860020534016313546446546913398678062048754387432323754568691738898792505829039278224468763755012789420747852561465695281810076677503304093366457545917043515318150277610771152530533051202604915666528669631737168296457871467682920973851218502544103728996458485153414608690963367103666125161224840410423875320109783278903787912152484192512070780612401989441312948326373294243951815021792190698018525851373891798761655631750587831187785668251980343353897665653575129354517707322654432054459904713663979808996354358157738749239612768690785552909654324044049551412029722913200374494272084119868252044922450322669707851048426983306017537745887657029370126422346986942654277308696669686731949138907024705173501094640310609410038469798026239117334425334672278509606954417033181765572807484556096829452453867617862293641550088281536960842964981718796857090336184328413141796962933527190758700340988037870754706787220305190583762433549193850857939783404364945604911469933835743082496558041629261180071013065579600154060659353145708082410576301227581154596606128363528716361884183422976586803930702530404548170326181035360257134725437672433739480057786760742683747778428817406659004189638854957576185006420215993902785225325467239673185880612819977553345308568861311412281593257340706143670769947634295304224489483747266429301670844049372885683022466463798755224075613330779229411034176832029122644597298915567084344124380404120102129066186158571501297056380551086486144341339217246542347516593991492219656683513660697908065574560048203817018155888981478169312547757610666826526714074891325069864457962767179052591626338820374194675276628497120650953899879392085660807630083569421015858297587390450819748724370273496929530668779683292919318712211094609712848482982530534456967152863998329462947955481174653333837552962073131008675980149643134215535244146998772124143301810127131509512094716503056054797472598631383416307246377478732135123541355636230977789213518475094527144371980408114492184940045869745500080417269732320087783737554446262926582803054596763072559922215130605946303468568439491252801023823889423946577746121440085519005050542457839770738552516137243725220042628432216802792154611991570975611672677578059870962764035776009434371835443765561907015270249548866669522866896721568307273990412389682485986396971320441802412593706159735312974169178504161874030588198429648420499160446329063921160738803505404982443947800374169010252058104130289217930641887415920757319634760003779036946271916380923867955922967667933477870712036915164004203035311180100012342999242161674707736070010922028992819688456130907752421655642798779806099970484731690624871994178949538792475891555774417139902009807726255054294955813156461136551270036379248296629141002425224451888817855783074615117241033902493722173643972660013208844156822291765680412793410220794333584387026965265215836327842754933632525333403447286148043161634735936142608018262879407058647133702021415901964214502567324338930931348160070251071420451657646991979688708913404612433391761590986082382346286571232103861029827442294219245682925796133002215584799156335828378410565572360857967171056842036329782896564789785248745498373666876959268383246723267690598379777445175316903766651359247034851207817929860215503098970776149192307852204668591359478809544888372819332458709987950582230225850369978905353855184234992317366977049736606099642787974332680251827329179772434648905463634285551126827677406535061936693757278132796780569665839890274654354744830971847676391189777417025322229138153967740239803902670398582570748470506906096833289797470048907788610508702139752220733647490215405040404276515687572034409639105361270523034417812077031940350217722320641707036749833661869061507993246494281164423526805127630432295286294599347165533647769430474677093944045205743303509824301139382857886474697507712196546595216382304831778430985008502487560253956806186481740840130778546137746773706983721349236452218285206755689770829133511092162731929030823990726273493381847957054195009227806091360109472988506379816350794448389538778445291053744231438540402039616736219330155513830000357768137706304948720873031130158917916840662830238927266669112888510650909451812358235577328624201700084625424336960865569198404952151095859862169468313996753588134226533898499723610356222260892922649185265700489632680747866608794723285934938243108541723059564917921704818081882284511925497132330995401482306260136485585047148426133431446974723156130374431004682790183325256883347622548980513885487977520548682296015816661940049740603023556977265523683743189686741586121131188346149658979645035315173744785169022488648937720288211237291902279923411745812364116470476052402524568994795492230559883398992677346972792214707032245985437776307815740792749788417519147498839766990982526319617775838698477222336778248664004186591851117705289882559093144690115175996300011357873765405643003286020331767305748467572180230570104946018450520071140956468449243809553481154589365449463914821845503925644417781332278092578815942472132641527329448899713387040202377587603474217158749286956709228884580622660652627336923100970125146686507074191873052583005692120834923793528543762628289634080828736724912407534829719707012485158355683793808356977058106364955116401783600025682578449929203154984390568760105443271945185887018833842415948829180400516698246467711139571731994182771895106230887449011781486275778270323827959869851102312566759151725125317443960554607428545861959833422788616405083957810389291040864178802044898928069047495019340163978748055843194111941451021294405539201405992144448521703374526692701822652758135763832443159937563423483927854107441980118064327575914849924083773098658913339903881899515701032554275442888100019743140118033603097914085967012462598957453949450009772563008917529870991556754283175272556263387121478819635748984967676044853505670533953411345751929640464995261026539347992255944945065822250634597936903719151330106976398324181259621655124129813269533285430725265147985399673967697244487006040814875960425712402283738361335142812989101794766353250097687459698381162529383924744532228745283613459277112562250342150172342647831537144172086392389599409627094185568596802703656469084396829119923145548602991845019497952000925966087048752360782887247810610971089904298736089593903694407167354062638974779049743619711025655340447977118652827380350120336721068881100461922608383987164314286260731773966359415074112948673155901664208124087516249946725926736193128013898070824227460555577943396899030612558964141857420891509881713289127472507650565419355516392937831394576581646934607600898150641868604608173048092301404257976043397837914402121630755963595268347722902995114182880657585082540740669087011602462500638922901430830863469971671160692162505784665168142320460701804041300111961980584872037854527712044220641350755311608609716589901826166224223379435567851014220225171963555746774183782715941122974811730746673803130489282460266394776519896010067073778337161172775404162377190360618584201853099911487738954531563881489352494653194257804936208567576497998627187340845016369237208346451774366221169232065505708429203772187405604945736075389351741802625836948296953897670329851995283885840462777848872513253023035976464185833494817841651364581391027181425561713362227184921706802031618607129263986524572772133312109558707299755036478167509809910373362480190859786389580483944737993429197895037403205793305584972603829952596844982177752257690270454865115697020848795780422359312773083538452346228757021306165509925708494591654270790289506483377127665929929310747745310370992876923006575673262632129538296216493066605531007001056235988604328082162804825694412182331748714542659259405848743725279718010595014095945816827487804556156663351125719490601437198256332106908254015802885028693411235811810707309311643988335750092565711903704620515344995824458263994972634181801643899796855748443272833071020930315536478855122254716306529470663890785107480665158649369286692160506985058844286428866963617868014919481747133087587321701840345378912440674433272492231039387110055905051697819218164164314323701854506498571796991271159259746584723468421841374113571713065509976344116635149547428157122251407875378163274996489431066251525259082076242891925061939763468495289863764784710297002229665984231763826308119613880752751848135502529528879084878067595686587681261722963482672249683599318054588252449750966100371246100424219179957603564426951895070732118403786009415260341079626417255855176577806565516068928813641893994743386806874163424394259238025811391095543735586877033853258131602337566578480726615572431066096508947304959009229759978503932883832150946318912117515430648636745344767628053857799094857343683412005397306868521084805699018926852741868794027230490204036733405426918243116286189140591362459054576801004681526076753666861788175618997886786918787154527716499431008660128718595671623677959420881527428716792543688608514253319947276993994940072426601577879318787765676763042967757935340234538935502481711972088548302877173909761736557828622969926115178477888941788208659228281289151092451428419392892391103257668945249439971398765660208978404886857009730213088323798043728035498207997625939633262904263157799231013153721281570512795542888782032520106900671684892214911574997028555814767941696059282763303093110351122473395564958260093616113541682392931166932079548754141515688771218395028750558043809178397420491184825906618176267819780762388421123117363063800995901996178623657990102889476275809395776478492256250174576876710841183643636972063698012456070221990921236104741891737890842563596716541400237955580549105901254770147103072510284529059533587543311511434929832043178902880776285047299516125407192709783993001470674833891187986331963051396303579677137202624235970590142473016341074675348103017772565450501194537418088322478260001465507533605949304917794646011901727129062377199467285289219708897258030015211610042168471371711609237705378537868712567514629213614595882333324320244726324824407534328503989249373905748961393079196739321638729061423948252679425675228334923460778874218064797239485154829818619031569613433381507464599804723551726443385313281233187256866131547541343025119507423326536395242985266938775778898804740665776529168957560219573050911616861943380578575507147360751146610875928204128785591600668783734798709567805618749528104025175742748339131804715137255627934758689318379737580368937130022131953568619042045205389266668059180718512557991613881138264148575376966092471095622133570320531467818413677880049084430178331112389084168327429238518241763271023013614038956494440542536300735826558240406143422409689513370389350879658842977083876483712735076821345978819484190429030724152332180378684243444121095438943107922174729526438992395463222215843999385888863466183341397143729275872010883080342653568242916789278758043010837234081248765359846734445261137137860161704898300901884723369490072765358544444045506570186192364322434559148680926101458061476631218747232175991241740701255815403764429835842882609087146150634004615497069459738961205820106362854214350460928247524811769926042363985184195052816023818709656226426429038401812280611532535749833401448808368976382464269468552572902288951360653795464246154644368082586710275305444066651166782053075263403890317190134576300014983405016335094398292281192220213732324229094202737977839917719068928311363779128423323369139659999949800637205474238396302447762197043615584029081598549649602828415881640118482344921583510415456252713982047110309828148300016561463068600587176733869950643336401969267647721856749783869763256148725421515682255323531744885918532186619243363630246946219161895212350069050375473391900194185662117623031919634494278663566841296586623486060669963772634676099647167022326219887044041920573907425182191256452815597641147201228548605350886440300455565578080567954192447449560715947967312599975836671243817515243365540819538430400525509480784057432824026768004075839248641956392496015133994420594376232044700974880042650827635097714165402221048234317133020666097848399145481637586345275193477904396583834131393334429142300599493497457030215882292294405800312628404937107020096871564234334851131148724342553576972232568367096127131707029171859173252762453973350537249911263048274443508466460640850993846713500660328983452781445873363820671412053516127280346375881778151681792227468177859639278768465686159821716830884672433243617493582812917368964537153722693315364015509206420299712186993127732555001601892461563790489959443750367797802319685728186112165058261849505919758201166718464065634007970602426893994352453546126084828329776853396074780550822115517118630835987993946664379168858457003323095844448837229089063276280112757027986667819163971341304806182371894152867847031473712304901850096122153191172304369856885212356873530902262692243457385576558081591939057363359699819884350615425619575501080103203910922099403684645375897673812368333333262077408752868589172593784595623852892769815961614483277262346718635796951132538616848772775266806036084165436449623710398652193713078841192567735018510853732973528229788631258050186634277041551655640343980968209047553145979837476526290877286114446873328413557719716000424298016817192953855162869671049944608436633146443097524608137913252690199961244031775622595660835196148744461124108659066271183345410839840922895724711602745305675476920620947838896606324557484058811611181388766664438847172534360987406538937089632074191302069198560749003946191916249227866726955684445503050750982564185266202871589103185540113231648062522876466544050622463099582528839181617905471184317785855786101732339278174011267141320105284509727697544727125425519731962953948645153854742315244851746273562116202637262234796164830963522173787082470855034044850594606807382733870053903980166741916525456135775677806224257243071245534636936560830593082893363221859145353061684635610538714580196580431006634738889618577607157768877412038055648751937286337270504799742205421463641547649316800483796211681861247211355684396281605205246653230623021790855438148468368400551804545405573316999066941251989044169768493020076331002219020398399056868976922472608999962976980061646526412129213705487506839748317268248798055188662423681170487003767755487638702013050183807815277386515491530047059397321285182700305896275403538796780900825540088365946190236457000915231885010692809570524665777751777053053784030122722296259112372041677597335207363343705278183455021610511568139155891895083182648869499737928111396934272138785725816044654912363175104065807407592539279291099562506249705373242466903005767969055985797338275844586972399576918890603033728268765917074207670925452120334149493436112737720191935498338794442803102758637449667367148217230402916652910524696209611561808867676107803865545071674391326528138484878077598322484361956101633913141882598251114611499304418973035679602599396727342689961280304955407647875015801017560649117128803230839649572822131363162162675769202658784491985254827637898856276726939360588462928061561716673018911429807846557334625540000218503546637110449591989822337192718113398857857039607953094082779908599083777722912632652626797419966604265039214837186425368534724990499528325610558712180623281900028568321804394380012351720998552683060499385379232350034696711529027897662368733175044396154781680894957104789134242687413653041024316575287656645353604887823612346706416690079046931334509210058260246264031887769938748604010864963233859304349087048260322604971253129105834480222126148435327564946796543001742289826913977178308130466091422957088191043940212482170894122725335695055173788722598714422263822788207073626404880790236376977132126369264329397952532743386029311790442603969474879394689268945138586596924070013480588320887491287297429041885973646404972063080585851092628513803479673219247582654768779630645554351680893466506440364254047916332682192147964160896346744110161376302047669249662005061421652473511741527389671045890556584487621415959842288210988560694251202586841244289231741716875153870742693902550882524696496795204728055404231735724598848351288446823634888377101700426250863116928613402482323306774025022201044746087993703256693236990489516556530514758673521261668433802471217639023901106371230044884650848464181608978412873166099304571302449006439518260113471914928656307897200859632338280955674139349706925671729061277324610499146898034754555442334458431766009748498994037699498645753919206186572091616458102720074766205453143891513028083464099543091337826466665449609635384571114984610949269163288412574686749704931162425933430936701596986966661255212098490017669471336465735078664708458333594993233150505131201368705709555862748892961518117282176493208191738252734536401441968943862778655124826652255851104259170450514662309212664163566772344253103176435728240638874565155657373660699465670839810146062630908803770155868933727539734676306949615982425699178524844620915171017027457593847561898085650535919376094388656126810290984464141347776063906537549605985839882530699234943227094855889388181438099040704863758490929964877701867432161027687701986718593162962415507725282636589948050187610095843075305097073782015985973443869021774559023811808106082756894909966042400014367957681157365301552995496560630877203915549865062073274921588739606088173473557963086713562903950576076344082133113100538695399969383292920913712927059521173477678861283754660426104653922104046096518033606486276693664608853785367171602889628566183869150744895213133549833270458161263659858164180694102302400958472151394164685962198967557268566214312544118735307745942227430035310452936173535973099083830850464780738234716971827044833624495585346868892227595101560352521201068743485739851018712448480156539094272804830490183479001030340558078644094951096285791458307565335994005454643316204769146738392897440291710296579896311611741110723196015657564986693658889649661887568201840333336178621473304357215648616843716222812766214263548124472523496908515063770861893283551301861175912228791940645121155627226662446728822780602442048905205996890802315616776383680324800642283392051333650313005251965551689642447108068935763382404086522814397392699304495700320726520814541555857693626180626786201037499697647979347301242117982848477454744689495809045473549996322550269137137361490814423706759394911013677505287660681484218766163613917558649926977575875076118089836852300639548623470571782949961753415600061699457079882963885662756845740231677912898563514500167323125358283176375368644826288665801276717279628944838754870878711430601832621219607315212110223231565480391659713453703352201866789841620205999682602088257134224344668916618423321626970482656420921901513267616291591132227283489486028819649334236864030868768219332403336916050365925733174087675571506546284441357098064060591682709335295641275818204876293192330429789523001017304534700076961641984492835045179719456887125885146674524182720492071639716992760399238037921465660153058481071577123428109865290270947596642036991795916423281759357102598656281211296340796212636227202775434768304584999155471654630567563988802451168110269070345685131094511055525460138416559475329720399393722218664159891692857307038893034701283788668676843623769364347100674213987442446779405976441256148052331695093537271461805742692730786713034225828572129302381217413642099990210462129420010450313876893300310247575471604104147064608847292600897696781175591703841801521023546182730263320837551695168739679275442230775221383914263915253223573926640239391007621659068159436987070549951825235289548610949483219703985388967318500523730531996545669550529215237955148345995696641874018866555789125624084664222250590616250180151248190062403451604057961028885760784988282603927265573772114037833017386032618736420029991557762629004012266403635386999671671398309625255288625828851327650621939333427081386833412077290045128419726894471306329606303155043979048564636745914079880408728285702307731786000807342493912436236435810241477574793776611883627402045777900357822508822614345756357192673769070668989204996331274185152074915885327080857311817532047761015825994161575431329039521872455516094081258004942838797985675566321366459160008363124153216458202785584193744017831323077794457853123878981580931835176692953175592938418293833785513164526227071931072791731684439823068845975614715766130392862068635488402472154382961032132185310047744411229629842093653092785720781607346314759102306438931384338256705827356298437629650835726567512746428712581648688467780409413720608032347120450367129885034363965053357823108247168186921510177203010966818259296310249407986615992978173185780085455871094463976595842343929705291273810724613773546949601910272815783149631044628170868179142636676371094821995401478745582806806213639761849135133472463728806461998564600730225197157056004316285879649142025402612568993288274026438867760819815203455538949447306345819837566109858158099457605954841897892888242622666027686521309948389226492551989864225561315979286783165220246995013510041708717414058692927340873169795321581510417944485754592404040853305846376179867418861212125348314656303536171733360844796979620680420609429427038884559822466862620962813959007109753308895175747646209964825893067220729243647723342726268728930994775805567610977708801935666793658146768800234760709958001943847901234367448305103896275241427386954310131698458830684596684716903955489057068743799478878952307442301040210136067857915405869331859199320234226103365590785374534301986929530897151540726039582052648369015982915820545621936049975068270632633171151480116605546767898283331400078198564015557181631017313193085593111710833508357605602733983979026886783551149246309813137111580981935530418500562609097630450217374062605096682373530349209654815701968934982982703488453300902429098417963606362629705684422826948176633339690485031116875545053005112440409305454706838705893039587148062592299025699716624798818313563305953049543647149574075234194150885058696127634385306165578121225730251229902454910139437887716267090569182371079326267448063615512997476030082478797204078375832904603110596442163248679154249107431642563417887445370850617567140987832744950272707541280670047877722595418254831698933980974038444106249010190902908658129418756494613403205716818278560826870643320385153392750144832208974042795230666243657150642757308936677724404060784931020807275398570519828579105338788554404192909797515843237570960102135454901461831629587349565361402969927811857254298095827701657550793258889947011233433719770917859042354150726527040289904989297291343268867178969472845671676764010326120354526415795793845516851475211831933548011836918828034476854830122215467964355739509911897486323274179874024124252287565694530119073051261419834214897445775540459481152670823339772821356720640114916930423443148661942628900790057802144120905346881620531705456225081891005476283613960999740157435033480532961377247768108140318275820968782797143701808815118693058177369023497852543205512421023491664868302132856533670296193425870229599110790947386027507370528726208555377426731935956061700332332363821245882393673762283014986128419306681583499211877156292785259410096518415303979060249510172784524069673683249664060717609451531450580986656378811002058567343246057187170333078653378330023436957904601716463794955427831706404849803041077333558661875708564017108243241145131776808783344642325655154330837217670790022726014402409525702686550625833828070218004399854855398026629056395151617032759960157708329562001150020684868187460665825362406886005267007129901796643391756751741517994198932800620730729724085303650715926026295558583120920968778285863366842703389355699876208142527235921265317346812565652113655481070328849872404296700466978356027578910764816898033728936831902667657899111463281476647480718214829864622216423700637127122915613094848379640559954704232005532091362367411310632928902050925714696590529169346800401141172279627832801020554430903984867501192566777756657149058125953235946926095114018533319431806931433488862659457457814072112574811001292044352113756954849322023683258406536426919430801714386390422059173320700416772052835385423618579209915883803062541740527549258187049610253091438773444628090203697370714609485070358641364782668985315698471408373531630822437884419261832505216564768076657660763558986648504053868438191493772181710094549405301180838275046847069869519112865868554413225837741698145087094391562285623666397010441324550474744925737164921522139036128637822522227213769500220094455482067405655911238727115902329522391029047414058286774492095725128066676194016795412900721378107937753460829856122542115075250180794446269286268524648515195339474338261267594176595325523495642612701128598034756727797392445967361965847374984075625201524238075851736855597180440659543715252324125935631956744770424197798223990992401983740080660126581593758248861361097331778177953275063621499726971841266944269613621028613317659293051327520383390902572721328953725118302017588253213624530885690365622407849014636015444177778653857736068967768007532523244732146144928138809438423564691235723033472480432638208718853558640534124035610840890233965508660852536208634016574221819120845878760053684022730671745011334801734790514273400269158391563800286006194983737201409717928167226552192695680442768901361732689055448516279916924217221132590545748423365777595642361964160809396764463404499504535926127172499803257425202505863036562637031929886833597596810387932360866047861582758488099943523574306327635171058295974962856442097036417660094750615522822002466722919066388836383461286784420365770041373759239210026445735613660468661947652683787813010232896290317990946971309273971662412476247454581389672990254937445971305618056433972908379296516385683850585883827828428905843661767065572241978092175980847523452880830275952500559615491128972598318524062359255655748419675105731333435533812656738106134842380980955304154201867948828776705459468261304848243500077878574496251090470901548159420764327348812046632106546097460795354955415522513340182466676302595892144951715464721716702748173088912675467975285763161402090361322388545541351392860969074109517496384016276374784668627909095644672521482217046655087848858478871993998917340574458474392367226387528252745374409168689569685422718559263270286334470226078790384437578066470542969165858268224285731388819797296913837431959051673951120784278320915040255414253316357752509370799835420076090990770664274345448163252661204962785569103787081992838633631594835957126122883458964289002636484994576169806906176487898119149536989630066662165169508768059704815226060799435521374311920520247298393265023784359290589304117527033720439795675129587071912295272409032498071069098039862814637715668134971194607993514249863830459057153172713529916230141586543657857601329527702590298868884174199592764528351362866190656993061987577542146660478578901372692469469284499411741717707203390512930540888757317354873846281220801203850286587730650751462700850631044584661047091961441436116556371360691836420602253177983887592483111834605051358531351819812716325268323181642484875111105265309946615696876258214353494189892080612112768746275955264008790217626455343444784943309454340685556395259314996982686477395084249265899187257639783670606838778039229408451157984187379914584363947181043921579199375269030058109345046841710221214470594911707096082276271845773396313688060160171726552213425156686699184246451867480134854417897667655757667114049082829556607339133210903535402214708285506115423066919083944541596422050150425753209224973115069965073342776049441219223950056198030944027563433493755237922198573700775520440630192531274208279097246026900923892869406182116833107550331222235494810843510426529577301362861756571206121083392316056945994525801338499414327127410651298540937408268744638811120872083122627269486736427322642700773504976830111449244435124023091170323390466008347885349534168973110441617280583718342450537634289066876544083874855515216517154870705079197694785262266585326128155949765751777339619725025659448299238953039187336067417908158439959455494380909911849301988520367562330630658951434899622915416031698281956127346133920313914806273459351476026594466303689331727431678127390494420224496874179615924375462997989578958001606736410126988760320393379018872326571974961630886861351285004416208576350303356143685408590762631531164264788052738213965719679381804792531650138480270745813710886450532688366348747067776178187376567101055922177894095809491171466324012791137782019832160986540943545807001236568633594962891825748475892910579070867976975816319582263078780340703164497847068541807590373750029234976986365772270674000221779227797473969132049635223074180343156065258253506353767636307029409682882639168581081382844013377399670215505654609226802946625994032205108862414015127100686003255536152967278953077534959749507244686395905695130957968878103649822651136345548901721472825538203586494943812685973880784186813853490730612930027058714480837416058701792207102610393390056742468636593957282354175784839967791764929538427584937769351114810857829270274907919112805164656002381407182943920630881632451331715909781054560200278914374243563625041601373393448614785574628694083449167471781461825510478264490820811472921474263753461092382632689677276130757022321397371393935407668734266639756912347810632429532167000831716564082842177210151965891898471422288892254888780209358168894048778524242589645881269633056713837622132652525429676505091372360001754528377658388813046918213382896749222145419628437157597687915283531454191747396953596520840152487271210936119940987195005517220117918292388530097665803421749423863762212285759959748432904372733726742142977136608170015607666032979050082228764099295854661413229569496972006176821029009353553930061377566346050201313073541028360449697958455962933378310814694665617135525344595107461678112457409617984652515539347241026876201978277450922937619490087429992961933768264901790930988287976552634391142477412532757363794686080100453081008236527348711396246682641668839403422855933872117481265302589599642184850647820027124375232080010654271691205348876604226235320832229105610339514270655605665027894117431131291021877069321607351901779312614266283080343737615173994241498003293106806387596977061559730313567518022200520939216876263437843940671535703043129656990045133880890709519057986521568541879426725308400447305440239894255775363939529396282663568022310114449687335152001721723844788085742414084251287235272293055356992864816505702984376759193917448862247919477912545709237516425298985573303170263052767313153210930854961350456972840981542481832775120366999575019424195266940283423317286905448638060178542233374679499164562493622809303648897691979381546485977042680315833943753268925613416938241361863004166140013712015309757941576787704191652488196606185041633805582834186011891015601787357684556072071795778095824016648012598309899570414470122629035968080709094693380888087095973196562570493982323750842588699403501637036843545782718341879394374610917313907169342859144270927143308291752569115348503182191389901074792395592233546526598259841429129469894964288643924244320501346267294964389427665307782123705919611962974580179418349759696958206899777620307688596807320021410436597552349208877531344130662237930356827555882187632145766735550073035517067580438683501284132572829416925198279772990008952291609139737842881575405119767046478225851933633249100724175500897072392291989153211330701142646214403596532176489768442291109192677721495206199554026182617051962790161428883650227108068767882549679429003841702526302496014026452172802240871200648824074339494516337759718740456977590872351641850045227510927322033674534353439237963069994739849747926029176319346028337890287817227990011085138928637678387912253788808051117146200494117339978095492264028707772358873469184612957039132680247474749719838832225594889423793044126641528067018706026624614265342027185415629032318171389465731533871947095389373179632958349911749717886805571108833406002085703275970812927308140354621119209506089448335477353365905792761705939173791000041427282072199451555490795479137946595400392377994002711446032003341617971530113596138999225245494049079490004578122710795537001624458731521804313591043471080752104076592896573987900467002729143657532595640351060395224296999896797114891332652885583747290016185316913650480448291155615262801589103546073879700183226794063163246480578541242473647235359041494725723117608511621902033907478053891407637352836418918398201818287366413103678760376336298383670952979686942403900929275334965914139274569494540251658884294351957116031386715084351177754176484626366062317497548668456845384382538290017392400513358647840744924560192648012814288786663680551723777122216436335681883946410398656482267279590480263909356355819929448529296950887029313582885991756350140891904923645135395176720649240588693073941870670510109801475205593851999384749255940013403916732955734626022502810693741418354672830558957428377220596230946926269853239285514463308698302796003789392631422346656160676823606016730744388076975824901243852287733981255298385132742137833204876155010136490042954149800585051980923741629547450899961422849841640567325166912895663864205343725249009773856962972753022275518841554345120853293901810927577992346257086515421858642097513679130140735318051442435066586669694909974584742603975270781558014895903058012520315807035650104262266475455921990809697641208990552463045041894312336173529895396285388502558170014343297101815661750400655593834203707949279401686775979435133121823646589820429720282920037375649883952382385119688662113288279186325247285269482582152398151130917414419771384193819683727619765212951415631508297998651626839146823849677109296147622495922813559042149505096295102689011710616683130119580176106292112466404918972268498823616342252268367127893846056821714966073951181367109970658006651760268064785739419646864743229636129538454953982126570830199301629940366438444092678795280577188420812268989515286995309285470222243248792691406428436910113718900587564746250689833511667068707662459323228044490888346492083779388795240692877890029660645400700630077277593599311548418646965717556627658324346418872796890845824274832216707264206574982505438962170520679454501964147904709281151619802141778938583177428322925889668819199688260513778137491531628413059886298241700779296883129567127091075170967214821170628032715099167669005854922710263004742471735458779817373665157592671469922266204527828419194837986299192618252860461268331571970662940086289294755677829967100573523575986805909487883470820485273043638469182141620246588974481119612033165546650700319174461407182811608084881401733983663437394909806523920956146890568761376808196936598552371229223239333221642449803087047749535665821894354815329083535839671795038557708622351810716595329421399431180052637067235690336604030218984110716852366273282607868296660556140316127208099959738492810511334756892205277069536866140783883433162473995533068381205931866546517886274476471635872764576228586601094759405267604320197942496961180707266814653936252433743341548774086324716838641439777462353230680338005844435852822772201603470264764844430949851065567151892028691760098195882871995455516218208076607560632090448832237664052722080205727230421457183492681564654079249924197656898403175303315112936794437474207424565253115156285948924113007789184641588196447615373558468404040857211671496271242918934920437779985500609871999366719147191232496248368244515347897541269070492921862930321178449290047722928573193760660531483244668063190974383669096601199661907430305735852912593285965161738538547202163225897317978193722523354860933032235755605501860870010939745174300419121318328799739328901163018292696326800449425009971554491158894575996218279008532646150214567074007255210260599218994116846275665289511682422430266978782207142446553297483473501052917582351070349073659578104677992345995553809773101418944222705732717049156286755501073375119560791885362481980230333723843621500674162062955785166056718616269432838114899142216713755238346826462877528128287718911480909047555742437800609771284090163678685431985248051482393068219645929609773572014068969089597625559059708245285052644920892243602233922788424183063381049178090186484034426745187506153694302929048704894340093084766435969742712587531897128772543647706099634897017543550229048047315739694628558699484366494904291061136173806279050978516787631440586677591174907637009476048125189227634743683340684412667858843853507507416864092346530186747045589335467307842549605506349952693744243405678904902018145203021454100540698143312306389593550696942067930280727019521078999711549318716050800180600955684839928772035081468889257464602481948696600859025105688518667844991487175112189289866631266186503737649225912081282124437170166543467910898935153468541470327357061862553033075884321920634528722653738264673175151948481371732972726299277511387798617765384278085859594170536986426527521770512977305024941909498512604281332987354618373746896203940332930376467743510420079802760514539530309752670220709085799409444206009539429593124659606897361042951519739701832449981448351728007454499436197452800527920696788664569716056669727365616411850855211859579444149270333045307667133399537475327233869416345575120646526690094952818426810114862914796113912900226346354935505738572419226875587474232669463291719866275058955283557531209230515606430783307082805006184714555854071104628386628232744097431340146083553897214633025412476274432743374656273642404118161367130334224325098181451850903361183412541134313938852534590081728698996560712781925697644223540820021547360745389660300270056103591157645559993442683716515257309179460332515267840155193467703694055109446143645902786858426473692908731502704098557242324966773462876927664933421698508355116969451062486540752205516273321269465741838581496334827145827787693033469278066755707219913939699800995061897307972582478784288494786261891295543580255934215480492002818500626896688563048514019150717446260570948065365208132997129207065475672858474154505551585111463597743028655945206392480234100512799978044147519164542667613822868164827755984455870320840330677608559348227990261194636719280690127389888225511062838152853511108873046940550508212360301943272723468175188665030497664373678266268934364849747758579710233832397987793838477204360506729299454946521193892216958951317781468815223450877956412188612571981614501643693216056508487693366848740118115551926275571344722943182565450231715582168064837313012164319408142397613634795586212673636834113073678225928694284145143256318150480688169655675708644057759948322789761379950061547481688525094958515280213037211639809847111457528354137616841926753802225696730402551370802543045759081207393208931724063301650311416403595152748333122569479749301254222252535143718047429615396158030545030221823324280758488965087336371537639128587846102002938828448137765265628231044283402383376092748488478728912520110242108884524804454723595060119437741299674123433084722897841365154107332353680584723553308768160331655666251854496289001551849460177985681559954019251838775606202617204441642087150848898152114603318493470223766956805634387197015354855564686517723718616677256139099976245600590502048120794275620788489158415461889644679669047607552208468873720093757402905187479171076475102900120304699365093886631473986625865099032679781306246530058428636411192115725509577644712878535138025895309914315172520379189550170771661274564775905812780068773501892819836361736976966129888064022478356621012428511731469118966539196627725859507323082323857840304631202311482064769607808286452152867725673608094400429471138231350313978142303329652637019046422224801155708135596483618727437089610752978050875603006717624724179349675714438985274452631768197569115928514756566510138869051227055090186574433773693745368208173585308916392541273228194897564218662443320582013079364731675010855567145710443049648692065464051419756571024089661243741481142176096286533049920234533134518616404312597979091187850137835150656277282557865098958842228464441137684682472212630425644423821340183996152475138186198732789759514750074670245785766492475717767664050874444855231461323314410481440685671302030354712219182059167714077039142078611243167626127185774371046266918132193638854033054848233678119570621250363864862657449411011011237603554278743868397066072177188832729835252123400989840931615739772346268426179314518248550797020815099452571425019123054949600114171074813132204713299667909908400053785792594705136770582125277174047048550116971806828200520401224632998805097898700188456837747604000838432339292174684446753118712386800238694421503826931796195076278576764698827863342563877305422069217631620819562128335781828356609942934367633787240738829564674623294781744343833003705509303122443570165487938600303407497867497388746007403189561489143233254720068267115131208336037202379509958956341085583426399530400908828600008310401146520636603494384536252908253326846536764050336520097722083441350588845819157521046200007203825568562894475741704425265255364830310972128165795639757115362827668637955018581995536849875533317115433938097018938789524261863444665525505368111658192977067650602916923858084602044154864975525991297066904511904753964313802749204757829793266192618403303758468002597478550866453386597701527555380015573591484988992184148464285895753552342289116831998811370596496118679803022920690981104339076882261838239666377512805318430539795865573336185706833495909916841931190366777652325599660089519702240637816494555746933131702712710379847249749565233112730301669834074607583753447431765838053475724626866762195227430173167507623633937889550346360368910764966363212340528704007348188743048150589738930370970015101331671069111942729294582742166806711511854078306969659193303838566347438543289730078666501971434945178109041803158132726561456692498021999854123567640580749000400457651409944148373814933277340563801257986387210057583777558230982695325130128697270051370532499502453010210103197478622633127525238929221369408739219317418582926974463865472021160354924159045428104808453349838679465581005616760552992224499154120501276961939400544451495039489856658186673110599603713140847590171817781626203059227581445238007997250117448633636566633543092138456700796422711327388571277073290863865425696783150995496784468458108431180034458388739999275134138342752223163601070171476202145015338492455747235738294291004915177638443928099321389451907593247648401270042466256521719378586777619964704469535678078462962841572274606536711838855785449199013129328630363743770265325455241183421316891250602623595161283088712975994841749897299228472359829521355674568275179396552946532607726266109422647175101534267814428863133914873832432835073753113062233585027472703620568731922258978175943808986932235587813499396247189028704708399637431073607710606772144578844243194608278363485425822123386932129147964061794060850471719772549483131395004815241321469359575700278589381299583032889866267018047425933175668673355596478862920239998931900583476734938250156760042995833196358060812702888980655258682974878067424725967775999764260646901942016820432649830859090672349966117583740348079882414419427015675025645809570321220799427759920041448496217223924958761878154337126075906303335854121389043029021894222570715626305190673844867483988370278865411955846730619362513004663594825112881373930110045999271678858018284772959657333183941062094628589378489929831526044446243488894679399431340014518913704940622750680962412261909784598901577499905163776548151974595388638995006473421504594236457298794043927712910020603102012322796226026622379397985809214973399552456423060002045969094525148920147191952112709764745337016583229247043226960394601509389122667505781256017128057991859817773090996963313827019484378683550956379706934143490073316035409626334173822998452761251721955034962805464744379293131556827134433447707783477770337746043237375522411988111307019467953683591921694864673839290933032943953771892424537458491407332522963277371264494492736055015582820732350932954336278329373477902836699904782228616670236932983698177149524675625212238736146380314316526220346967859689895965748393350689471247417662514194193328400349797905935962994335442589722857283391295286166680528685785731989000427444694588688147630851160955994234063683373477627930666190614028566190736558283738304982893870339288625843897268520258191789985247374320911257026016064845718137403554583877584693396272436880362954892593581116036728849289515405676289698278896029284656827042572350708894732199204029494074647218543938368042821741084049630917419737263542047177451399590413197987373785635735316802775675008653888388635304601572971355599388416912404942634208515479927336087772723202412144772920895849581260168490193790255901535182795849571205673817183887581313704624972150520060031528275759445224768528547841595530656665437350455169290400509552771340885883655777136991768705864795723029994837096981760023210789176048342196325290631159174811613265355758960688062517782450718520110149164973449091901901907800023860191775626836854576404369099053370216807751761004352701042626764779573800494299267137062464154259509314050465776358895152526043459676339363365885240944197013575884704845890523100629393403060426791625785095818150427595078701131332393875707632462790950241547505814871955422273640581367078767939191263917194191974609632476131207449359921772171101290135181413666053180610381738027342791230486632129877133803915743725739364652183821613193075813221915265816719456886792138756505795338161134303363707862558078016322084748937568414124987234034465550890876422434322737880241946080270832496204524455824189529468917364989118688116447970878356053671407058647933969168488069550256442819828559680331907411457426841688738306189520586738234985760236068407543920558400511516684043698400335306054973772226839087485210870810341011626860997637658257608966491152064576555877067519712143971947461023945395839746915557375616951599560133292397310826963284127874228222913246921865421248725013734264469292467234702272596028160692389365941981705252375418404735418809432051980170457141299484739969946497315825819682980404563728626787594382337494507984427479472073966537660985600390927768559216861989166479773122640627287124680395585416046114717865089597688976293159370762351779158724696637028953262746952596271100764553634070238208595772800598642747980912467234882360605633676943705397493415450045178295110378551112247603162290700227155597361080986134584719294693603428159385382269340888791844625849226934478312350432366989905628195183431853343858743156414667348357880755334422172706602631307051149807447095752483233332198074696331453108009683231249057446805275055091577374773845044689319472196352329298382131193326923474688258762618452628258333474129901776712107467889131507459424175829774637712708013950990950946650044769912751028929150161900195006777432191960447806752873265042497348027791885898482166831660204340041286863917290826569879873035829634474519700010465244689566858339461093148122111601306714235948777915977637603850719515691665875438196088294175546626083048663377197120737110370990030734458142833436456283117422044058283234657357766959399162723100217208244680866862521063764813139588529906377518965471278716548755457226755064179679325918138643237843297635900521015665395198792052871490659161956405686499330078395557270869744066806782525273457159709155190088826271848456294577827142364807763486343881726072005671478905298334880987842001152043918221177044645605494216214383935887023323612255237068497949047829602402429217437622505976140336234779336570482044631280581485242517073551978491522469414672866131310433752136025326599760623454362883308903539848965398508829394164565757776897035196590856224455155894164443686321468843145296718310742698556774711219229846730352950885282396244588406347176848867417423514947417419590412166477140817517138303370158007811206752954286140809763723503474824295380840260530091557540831367580589595293879728218898988185517362999998019513730999115968749934105524137439156555412523440716058177755608397444905380053987796142078523791719249155770851369630300199909960584817923317314174792292855585753034833486997778984465832052243296239426593254673491682295445458530949071995913958207515393439208520647077752847740290356098892648772515462548221977009179904223159432074336930548903241903880757892927273010621176483373032437983192556595564885581161426210278958291163810607740303692745558036262394591280894933979333052730748029254770753079555125209647350737890198351949709001011782855209329380992843348634196606524645748828431267467230427726999629129150516508292467907452433196822139301536550524076598253662215237604687656794081861743487722283532659659419546449616485784703167999613577932558151157959937730709105602353291340456362292946954031108198812073984788974052167564523812023162647588980526116562562741909482480193421897693522699134723950488011933927965044245219579739968595606294264359415118556775912205040828379918183070664479056853893128597101729865472842289704429411452079502443791895167129563538696677663500906510488662357027173087042362821318105732321032968195953390765404548984300089577630379563837384663092374210704639192599520725477008970771106520517412230645348837847440887655819686420951331603400862766561720042665219843200455459933402831206673508299970227756587383337065454065349372343704505040713315745033536301916237699276729889197455487759559416040652823631354295736212679170017629432274254471172353551001221445487523359130485665492482776586893021368489539959030678903090374013178708399246139714990528812056722957432853322810232295622133977547935918859124905571684612048099224930256092033436898743959462433366950946238305986899501673712168663181308191584179249127942402965434985728691581974526942811370964289808287418750548107299389480199008993921924965463706681284503381779962508225598766649596724021580454039463015845605149974716187094942923877794322073430721013365052309772247041283887333610658185725328701686075508677980996783527627359999769091099208730509988990910307734030844117808209943285115510012162854758745586180269519700024557858878617341700391504094226518042586339627493621475622973403251939139942449389490371193351404851205106049509218963460810446372032707437935437887145984057464842180216544251099843334627912697756616870666595266541354530931615880544967346580128868771226563941515113220366872735028542844364327127209675787250950661840188263452851857519401336176195616387714254027515659680810967140791146710960581818861034652037400263522644393065449722727095713729029135891700904765035500561533785908142730703195900050754146167507671309447100641434776517207220447688118217330785975227254849619634202149254969275908208008262894985207228525012733575120847559982966368037358362131644540129315281727457168068576833213087719849099635082687068641402824391990176191753585889518530040320578553532798259327250235383248172907525123556967897332418117051551422168562136083724146313156121486863104180231932857183849743637372961468482245897007799501086923526104069474176213755518868753911892539200533180867650229947180744817497703285341752041420220479852415191461732179416310969700046529142079826716152219137794416830042655331678159254197175569499825446146195129966482086475886127082742659375785393483769982632220110752072667950831959245489664801146926298746124233672369708664343375439927795610177243009669458356197571905215931948687547191467158310919292114859512773386245214979085797026088785540125435271809411131259304196038135790437292249884681558717676690941768579080815235571847419227317476898588850843504517748505811088641196431807888206063662520814972380205206642934714656025080546745222375237006318182532787312503364186997706025766694173343422035551851648091632603983582493536697746961190888146692926368423733410535607870310678972562401551243392534942287488293056067919823830563945388696569929257007175476496546137308205962384467308750903553390052127059856261147828413879460578375950352735947270300118060078512168704821529096527320970654696440235831294978456296377357317099594089901996719608434919816925458914256167176537388405034702915788835100884849429613396827878076128951841829630751199175202257540880583651092250910044665784676480086387417758779914479128122395148165311694216358844776719582054964341216701569348953701741199912554514949987021768692626391938203487499579149092541498551621536371303639503154324238170300268307222707293137111173271334502427349074758696811001368114041980937438661057317760697582037457103166818607876581841858379058051504377216356177877121510198444770723143809394733645275025681331113812890254020009925480740614286217167963864018065710337530324884084487910464041647410960390979607083016349713291768229812798107710471689071275229669676684530211819173660671697624838833881115519963446587223952687780312051616142547581003246349007893627437777326586595697357820134895009654142685488164032806037171008990015335197628125321989552336882790564557072652888688680267475456659954235274627840482151358468985805986680525864190394451994915514906244741868982957060634738681669586538045020496722996241400360646876000553998002580710686927112877801626778425671962615966045749288092635448738554703015982867593627160982018296206864241389005593530152323541792747165934428350518195469566513996447170731226890011342683492279058853665774926108181701215247636467741400575884675561983562178241929676971833514722149893858774500131684729689608559721977909597108520029138751832100957248387407084760229535662718438083758966421808132979766116855662548272157964461962496816211841678010259607000255044472832998308455903090364860536102442143081624427307683529560481918336375351851822479411265123845351328611726817385226527577698619268568725942317637294975571698430126245069118821611706665642524620083169885217876613455782881938191635365695826581427600982942326608601434464303941650169732447320135925451311393412814800247383002124847438761214858334066640153910023239049376245316809112101609267992111429745766468311323829184218219324904442384986048512855836958469032331584320906751649389833336030867110766713968923547925872915816047348662967672249544952776871382976016946967236436941389888229690264878639984005894595104458231533052401777483819604912667462766968894808151394934727927907031360788178506295536339217421246499392434658482259203928998153087506928734792335233513253141999900582717204491670499442493810729270869480757862523843858802007443891107733243043897144847707402949226326292295229323015484274966722410960427463830090949664350691255823197061101308994659287573566881894995885137747609107144121354635744581970534326545636068842147003780793547674222553515697876200491312857445784189716774701473281787409045558413175667187675152833911979025635784564967722831913611106630952414113827048131550243426796422769446666426067248512518555473234073737261279233880769004403211753868701462255285498607187853147448809318147153356169871109888466993219750386637824430837419381504096215433727999634127291214846777410727674230072100049515754102104386585288517720118189184782951392561433434360744962680597442107396736583763417697476780190812282126866762113081869144591710959875809184279236439156653686503610888259742398532957806671275340750941710618145850188674964728559828726018493211617037812075816713284689193393749752099521587467464431689556634099906519025366550837332629715984474841476107740838937491588472576905382701246385067661745292114578602300604718056251951856258119703581956197912719734468158480362017349794922880661670369303870470269944108831116865504084861182656495751521556079985547394677389646655692901147265850510243507574737173208269769246000168968123170140261369935889685588365491138364307795779619803272590777333148351522444586419545229245477304025058494849854004693788200098761964856454669446454463842449442837772243200566314276218785597884647469558556437532753795099223226279566627944918450091094977132989256171847660316868337851224304758983797939152148681024994522154522063339562825865606633332486817832864432214018167137871630231572675541764182128696328934124115740990904153007180452354728312543520327864334209255040882379985757264194826271210638328807160846215164205897769684148368253415867822537644948347756755607214091517254099095835267184454673531590487415269757637370853527952775145297131909844303872300364073718173799557801307173808328417235386156196298009179409844963322901728921276623082349161855838393494684505351319282637275732873098561520314203544471417076683121407501174316900576296109032632743651251733523600083213788028114129311574876265364133218105460481242562001026379015729984043901082032464294342593419686062645753120748266892788953359637850841196944879802818172153379916044527462906196100799340913787049331452835350324592526635460846936216513524178070368741389361026384820876630859349542893222767687980858013793341515951365093712994341790325001961356853353020711361205682102050293317818270989374358477426661306581248938587716634019469290607713076824783947552787730943564732597781336033320324336091172980161214060527323134226737609448272885574673057482794756379985436654498375785901982699867937377914001214973230845333888357054763393893613582643717355991337478394170893535964158170155926052263326510486579989710287874190812420948967850313258686636153610893389067721189493886140832265371003284031598138286817527835015353975670359183532680274574109092962470802510675892998428989810279686137053487220285692329984283171840755998178693136076791764858437787332500458606162173094125847121142210928505771002039192546356351149694076612882194927075067093125485019566430747279057336142343113338403937104271293134636204883632171521038431380952004606025116926850900450358446374078537043834755288457726992638839249811815728726484469149582079910557013168170302883722915056584440305741003298008226218450072626321189872015286313319359321971777293106146208411260981932610237279288916220726617158004907099285118291321030198147305494300133345211245748012361406338399576322070036325641741156872816455378932672791162621450346140157948699438987011265736448487524345401550085171021951295681125861024421656719872208709717567883133520167542363427176324925440345386461988738404413039232429521863597751535812424431246158171974751873577760454094683150914238098878744823108372382322477954514909139258727213110420853920777661671762508274198743962309760749031307660538646896026113458813675699852878819749318782792718700261839614870613136942239119614307581826684791620442131751281814799095861872326264469048046681099146175470202574471638096254411220296552810434746879613301594517515454703446420579422733149339944945796181804559374359949508285986370035529519363987546829669935437925666824236586889157754924636438045189695713318514739102392006189490540125041497999653002180804212270121816173397779433203209677634790636496940910667303436760203791037718151201966665745919512309592530778431925915122037045790452458181305494135135902689223957387502657273357908513805683860475046797029065778786879733610071012612697644696899002347387903812588134706492693781741628430846237256162550069371488694435880682871220066465899287008431125843145917597099089619598144447106576719984281729786568402881126627064851166701524895560181111381851429152126363483848566258467716872008935587446615336794503971193038900941768212403528038616368458263349233418697567616039416065798920371404865128682992101987971958127837936420663709549012012300481015735784829866172776707113896631070477411923430774702876792784064757732452244345319719309834970525372971446457788996663033579089064702328598827695515375941651751934319565729548678331502250509481618482797580220505598446929237732335624548367922114336284366752057660592744268719815255274783839537572075986840887969637604862886896593200470323233107097735103338086825715135575477133385472247847654793014221627258146758461402286090615753193239116989224324726414460444726977325602462768936554092558920579050788643548103483862365465435080630876142381566847641858972473496133946199943158197060189765577998928132544481411992564251968695874178709360705106089476433164911783145914068024342790815214662482338891946170741097760637117196509516197399501496299160481461721249232905587911080105123809442151528696702613240637107789659403127584306803167583324219256807379098832812872676305619665586154774642190725508071730548055328808409635194345081088947436306869353480166236196668758143995349469632726865082131121046207469007327763228139788945116372537581394773542092601657964148137749338195930016248856792674012598460047359790816526497082478767595137391547308768986386637546537701667492092344690110554859168255553508447120175435136339244191837981286914164294901685826666063344205243526049450216779694311600895004293913598176507822490342562495455209436581687029994181710094835393224910960463848788110840879700332466634254653625940571619397721991777058422977213237486961585606723537027947965494939536682823302946693269986176750409031264849133767226321293241829955379904535424457867053136452795747847522440344229583026534154682741585228238467119627543352041601662446488825476830918393202868466284035775947134501434872563793644395142965779364155777218004698686151577273540431406381391543201269478957010369943646158673753736288105927993309343378612040504243360962996038815537303418188571480683753596923779665481993227270484035748640377667832020026083594485972729838267125716675715361826485956570716741081749128362948081988154805632910419007010928711899637846379860315821720312083972571335869434557336758354668275172526625663351436800453800409721455974703842837627073590619946856139678825502148301988404441879076057383189096974699720369284620383355945286652902541370759353739405675045593900220849396690482308266543660901504843942189087817610799074987911351682189031001454020751402201944977219486924025564025584658187777681130194809611677420062880087833289027144906712440326303165880948085164285416548001570733353742669882932259266440683198429910954820280431164647542899809324577433389447653181216140643490362471278534741847542086478644893754687217664005456224517817424436949778592308436358822919333533755886703521289039940063323253532775910766361895610438936062700133854484571400033062415123126234943041284375236034000624031150923686331976443653302322131722716625198745786108218367292129842756392485481162743373694486745483017347970209174614210828153158207906151784960617599638046644927720105782591904432776049753559684151666737614857945346026301077730443790383042827279450940617475741777455499915739281330065715282558637235757873572862645306264490609647598035588779316038272493066978395956880028393999448712491750913243336983981113317556766055030154175203435589871238237848304010355515708372625876775715371251720289606131347183105073222678120045621143249107431360090720121202867734082672378252058367596246848059898023631268713300322141341317610468032974338842567225146490134781345218319107647536046130948726403544822165363288368596410788048089818486171538166711456191585667164058353617548661245660017911121194552720372676890045888440759970812754306739199042551572798631611988690318182901951557250848485971624498386917660675924071272285059521158583751332301273345152464077508519875152999945224695181347822432245275971238714739086879192954013129267189765572628019232831914202258399146721990718932580311217035407529252794882574593532451165915837737238278644149663944507973053053658696710324354434408554857707593980882503143837745392383955888562357257942155378210369638669081873032041332058165557350654996763957091482996989009462621926746690822249949345164124306036579415862397273509216925416207340924930741156550804589649442834760023684619573642257786182126937080139640075413415939442906734727077572262722312646898503793022010572269202446310430609852027924762785870328522026646123335880247848745593407535317387491552079032314729415534936026596162380906275123534885397225144154574046570284408308413112025649716067697040669135020866971169318645185054482966969954754972006126707166036063791761318979491156455846503854853842026168932653837111446471035184831937711386287185974946191315427038814081284535232540665497218145604594052388522831438936620101301495517619782864313897853502978100522723360160116470033177184462019239539764989754419488290316364069488514509914136059185491967063549316846439234814519095841418149776388058412847851084309223503295002606555733128022223047705022459871397903924766051371033520516048843042728064418023894955820190586346542696784066377652080840133697278550506500687254839784298136567039759960405318103399998921871829953634797396650806487006471230137763255845971270268597618075741737519206006594927143699956826734304748041728995134476238270953239638631350005111871145864151310606300840975319653388935581982099413718186977212332700244958756373512003595208402956410604978861914321000410223714313291265697204197121885029081674557937700282094473939090209153348590261528958937616617934483930037060288902400151743406808772470716600908775719031463790000855815931453865239089303221699707585326098653324556496545241285495974147171267435342543799763261316983079793639047313181421566478585964307929363456061389540869997721575594647710849974404902697842291113971687660406187194870474032190266045100149773339082112268198745526731503800230098383573295189292429772099407431323125633790734811657676970119070086718212931126891659433230475287777127789683548223083852946773323112110525010295746964616233481410606801376912729681398278756492484151778436756698424733437727528022236989272683298580112977620059350045971758438787324560664602860799477195997090897706591517699451194474338611200868698442371559060777781054917755139408706625301476094526987798653642185109889158843245993438132677329084172864883125871720772632522925002732569714016325877874121727330616142647125715960482862748023320649068504710658250174868812634596852758013769843111957455271978263336873647253732324265141097201583304817235682016952349468593599235960817892582224463061271891747651528155305922698677549560432433015327283347434890282736185531409439747908687428384478891057538337410568477013564066546289623507024032611644200736089529406739779286644972459666109413617894079318766871701209609286719057120913370130415975576265712423705748503336280088887695633893045861870998572654170079395248269867300638533243599627976855565445414948985947449273405786003125867053075472381858365335350514633958469767823001553051820548774742234477352895175318360558857275488380697511256156860895619581595186342123759528623357946646836538025336229394396154873512824584167028871524276290743095688458749124084467687575509692614879860019269004091838295687782014988629657831864766525153979946782960363378873238850545344224775468862028021046418712974086778026383844665046456318397009597318575807808674349449849501388873326908648285522193896763141967461521927633198955741844400326421926867359487953695457796281970635020659897664986119894583680643393133950544990013569685763527356815809442986616872179709365007108853372101603269436456935146889296025290407138033435281928664035494674516074775903509779341075139919491203820165331652995347798926232991645150261970369999269966901362712988816959581737660413067548392583255595334184960946414078058701832516002992264167851852578813901113496813959171546697155114776067724414228862669370504637502098919235875056608481111795588737457683688045914520110532825731222108310063577158061487258532896131673352066974006782238995987741320526561516219311976868809708310342001124533562303528604934064559192621636252489239204811389505305385408765695295810852225153857105792845997243342857289614523729144086532813918596087303515843163375368622070668942625846259238853282706013698825328085167434036508349115275728671755443417949186378431644550343723317636621902992280438034241329424023930427623284753571974909858878134811299943241773882102664872648689660441269492369169013046256073540095782810224660098870111113532877455662863067068617613001254308788045475167435079153522301111925477445951066786415799601892946927918562566680739674786585241661853145605260180538381692212369625977909426983344317635330692603347441799178111947796940415458487445944725925414126623303743217871424129537791753599410836998005230621581480454146948394349767659097487076761781207443983508305361788371677404901364381865529012457004333386015767822117903948014213605931081648950213909090500080451654072157749014414583128842515354675896846207961400461435735606851000776172373969489172982229917635346996014261336761838332532118477630789806943808395974044696282798996927984139700350902080023033891900424692913285759226936604679723695673715074471269774916638993298915025362596077481487052443619350095599612017044203874804460487587657543941646661264197845325315926678370230781042415134663744921572085591258960016491474213090614191828513268719860510859989676871498472261689087602081331181119932175832976739476770746727038989889541476388162064717806557635663640491382308531464134084893473600636792059379141130067977649775261986636085849589256012299420624288941438896543074078755061604385457911381322370528565409101348069793855383792610783634323880977839934883239171948436262825259949007463724519955638231271785032181937514817183638503242581349537926554611380352812530736427185910403028527482251192977160358744174938377685509834055547325827918514450381509356029244500819586602433618003057166579491912355320064988847315724881793447568788489830275780882704180921432831477304636144117490031928998308979879588556961482347165538314702950689148587261046573811969875902760648302831373340894773670688970417135961617530927688535342308402277816250817506037449759230774435313048021591456494267202793702669207518159641153538069109926066036265159637220709842758163575571378617933049417130852569342659219567336752322035863152897823593689065740506712758572932885035820939950022780779169983947487988988215432775714529160577426382131350073635815719738054521143484362586877496451705082201291324580657221837040071307271280700869869022358626934783908330957151526286063642681042654456418784037185901258092467034265758467175888264313535318015961846045167575862291991523293894079533337248530415075212635476023440208745594369399845619145031340117138411944975266988559297558176111372251035626175983385942104003445699755793141972238589515923713266529120887794151714351629235517897313930882698429555325888043293880812909196897799424560419318207292118491885057857961739307596027739006328169939120067362332460283297862089436640959158304898356357158191051237649831827987000891887309989732781801555198736365733527967525369246119626306401431966775089529519959904300893398254712746005015936150702816921343013522371860625187624856165831043157613491364319014314273838519879551341383241670579747098788838795626076257669276921200340202641835941174121942124733027166726412149664387546114766731732125473201830051899412536434200005128244039372829870961399273769963861934541128633227541253507234328473245151933716220594578551384626058840579581562035742011607813190921535585479920735527260193563509100844089887098566906512690054260301903794966171799803108174162852220626521309133546924126944409049486192133943712278148733132449055047104069275178657414425489395662777668816912632787241877946651952459166225959848500391032885754515373327071994524205757243036320749315732921930813965969188711047909146036387885661634122730015529606003940164992274205077729788026531022189510246098787531972969553126066972227821593868298215271757583035719765499378981380878056626782009367508367873642809580169972326484563171910128514410858260302120750715109615403494442858898537174966864160763480994974207823122671510016520782154896006100761569370604627529662689761455388793279222589032676026892377636968139244593368207813404898414449317578921660891332545432906004014193121097210242433623499056100648702041275915927818447299568439347803135633586757727927025283923789876408319326289840800959985058325070919920760069248183805701859435745593314738632229681558078745228652916723234815905319620107663956778859792404989535257216439816343065620929486728642460615760543268235435815654285725495641230021004124136259436977169283795377231278923352257357000035904612114036824572399942441230382563268288788358778550343243717447602102083492653157419814622077085631290400600150491317699512111170241546645567652522562934017546618341429457866098073177740941511466378843465771312949623762113096294267518694382449244419353294317473989002688361904561379238975352851168201611186628839213562782906880765055931868782905817402847667832198329066578861443663802782580223233906784401726386381935971697469426406752195490034337542155044418662264882778373344225483203860369642196163026197146010691269186574781648073760659996063436449695337466306174372615975075552736239737238962266411937779384897294981066022179666309961542247536599467294526183137063566258454802314895206890980094210361837334453151282565070908936064495781846865070230292422628418988268794713702000350679190621980140853707951192737744667482660517071354078057797220275025665008655637053312218545829522665824529189967044854554251624853287603892681484845141638989622555116684210323799295289437807825067489642835907622394929503144161296051378569434978586161827760778329955983533288318325651123056213037813642662617377443942105454853976195552701292372419369721889706975961277972727645419830341471847687905881821959867365934422190910627907416539806950406447291499423312716341207355535278987947043276600054522171308657721217982239479675550685378733066335450927557974985140907835589061535573725737810428265796595548327352683002485222290738747992178658454331137145417263696527925821682017662878716793808469519073854583244112922723079683300160463022961111348316846964901117543727942462922897657918176792306845404587524794266136646018305033939394865988518001595590707678598652595256397073972228802649875126237268648928410274846628007762531171162807186793682809595957128398767371726115444697843136783966039023267721998726799288782131458552551369688778874669301569013551882451525262049955766995757120327608413559554773548600525734015091119714022286710369773984306275496462863493795567076103520774286858734505274357458943775003306097720442565699576037964775284014365838086369786959322323055444414199997089950076887126356489508888780789855226093926853023131375447164618242026791644297848320606434033523293856247287431577081626403758478384739202627735460244195629702222034941632310247461911366636278020161799315409127283368059310212623906176569215339496959813295241630090829957040752124823730987831059645668057030829312896314696044578174887257349796853181144893807238241924360078238026304499112973985235837753158048992194694048244357135455710847270636408298581331514739026590136763649813839748457438788317448058268921769957736103172829777827701557370687496641678196053176797232329738001494218261180740609426442807072619081431064352558807034214431435530201533063901327662937746803747428506532645116385321305183486493210788323753677045444183832940778119725848941024762185451660892274675474175493515501535859880155632866685937220654460881974548406039098815541904081409876703863674183084924483399874744947870676400602727467317147696184245085659788540996017752825569645582432301316186432061375401332690652483425592499076568333478680463501294065659231415910862049692662946316781620793081625384957855303920542731947574061455641339885719023734750057939729112338743899650400172933670283580926650061375455567794657351966120031684902607532472803391960831255824412492044288028415843419264162232115106825855634498201137433130204210491108641872171223337165626492139104671396115922918915776182009378471941662578443904554610944303386463469531874711462000414691001079159865834348939089066107155537606739542241784723290646933785825945706098416762466863502303871223492212535547104312984359890392944172622579068324640249609797752554216804745381942958552160214219355391267474856255791098043745872153433219680650068356439958843016413943588568803836694373854399990491428569730982878219744593741107703047475586583075915261712509896612149864209453221975919083779114770152575855462053695997096257648528631581678399914487340213225318771905450290398361243257293687727080193661961616952844415538196800000968528047168331503514792235998113494098917695993256608640495270661643608785243178117776172873365656360733478307819480828763556105579685417837668852208562970634104232276558774045933207024208023082753765484884967650153928027931126576413706099718869836564353189900682279436825082657391664872313506500243579332514392299335694427526567782705759103323612517251159593384798819412804036945782027892679035456321779186061229534965795167023457083821383042606910306121105640534836592761390119351050387080575234394673271872069336253298206176055084723410131005680002912148441745302989381034192459825306524466622184950571339259458920105422692054893242542840570718404018421901261090880047643295624937202301029785730472021902102458204062716141391524877150398778398222506536560370673403773046277054357616016579515886467319982271731048489414089244586382102360444491978109193857581968863010652369884857077352235152648512103884248808968899465087587574872624481725511010083457818933312877801286936501422779119227176659789320830710596314039705325969639260441066919163799230651494393660356995459792837161839146826620332136292683251633203596684345358625777069128067589745784989577647333806170978826939826172855175501962702230727413354431183931522669030177949557867437762438407344294505559910791201628156519964102987358969562752934391740984723085941384329404077947328656810659624903824381096158246659331626570234417866945525831729098042460005175580465765372286923244023211409188824569979786418928956449214532686373766439253142727961907589172973749906192470797077762812499690530755652409907305211485356076098368703845702928094113800918078543294842046062327095924054108408397341116243799414046812952372062043656490401845039852911175025160613784924546889388620896326337043672768840623309320944364516858461036946504145074683794779818975654931039248072820189050951141829757807760632967326261943772307474026504659809575902349142759947408261939498275798607238041001375787077691710861703855451819491288604485481212616023158375286885872177758967025480423740393647205492687668433192705573955995116683471080089203442963535061860140367151687376488355801181937292901559005164697624158290008228729347390562224951081637504929489185837002592421922428807896670276695918880107258581810326308373252960969889669014395384433151735356885852776903972279549611017027628428422132768918917592191477814036685867158265108576968089201880301354750679899448973229433336782530776981231516581425325058966341130193727925388733240973683699958100242836795191627777460429246795885331698379735179469243973600122903534697004589818793471832686853232497558065755355506145681330555238820858690960243270952462225838904829433292303162599460483258573273448509179123485868815027358245599679386498765862270230848545427334599473921974047505210739813695188250909968378634707744003433362850093294486585744320773742870935340368288383626130875789508064612311050236422070425063557820361904197977631666986243277757236665467835635285831142283121425079829921380601953137696912970978108405723082779211727742913293972887394784936743386883970741886762628066145695375540562143239777221115810168113492325529300879189583444985989691673315098031395050444429674798843215418484155174013577425747470588221617696419425953865136253362523268428161788754083531918870436561425369205129191916636022401876112395980256286245408325210643396141865742456054487752751952336603897760319017145130584094582241739653766406220244645103758566211213691390354928932566396258938622208549068574736342077004393755186710087618255506870353926795031975686534669934170207976065090955277442141494723268296142585779965070287552735203852258110106449219350978959631624720257279920003480308015776443077503971053829217624734794035083478645189380756832109640518500882464561772957198896843983003695888549937247150712265120521316080203701502956587077365894264380306783427757077762167516013399941500679717402836493449765703525117507653247043635570067751401778872047377676631839286778614159347213175168517010806794486515028680606650395926084358742649225151838007167336860518466089170537009141013294513496985263540147143387693392897499823423344402692626225040979873781415434826521564373431321575277748424773868047126697815740345230411576408116127295630005062426368671384305291989415369154993332384312148647532942506644572911748206296169963864925595259473339633975685468253749390677826979362927721509819988442352461490668517646158838525435479999569394519168870971155975924891383927493091151226634857310335138293411942558196889702747032331656943060820482878443997431619602586245848917013457890517139396324721337964999337088237787891576349936943442399659001700434415297876317169885149548666146845428214808257081121474929643821877118262831702306195622298001934195810173616639044142973161498910178120238032824995377910891453777471209897456362815276421913168472092284155671077735954191904576833206782752584620785052919837353331693904612062411888813868864293346245309449888643145145298128758247395805263778652690950613521839806004499608470908778393367154874993846091851525485970429698600915559161300714187666028380535501519462519345557409433315215802341998478043530958154667513554617156965377768647742487420475445469466626624111027251664426984129545417376930603575653424508830492054597688818295001047181453756224042486584078909499501377856954018162717729423216977810577884303528972669990725470008689498085231112539191067982773602229123588599722570535595620770452752811511769350820847660338546677749627097046436332523011468596348152714820850243966449367283476596716208056021410022479432958813664281012930654342116843328016148476048761585257102230926877524215416213073684968171705301916107118627764239174823123842480206845936198931500362187505930488413400455746812341286959508467924211155611525037727160057270449283542205148959406679002096422961938945501766162193177304477609595413262274422366970427704868042032864767438509194348285791740765305310720643300473589048602821785431744867160779411600816511679184255373766121318136424628392404770441029118133680172218669238494536860253094582874101903877368960634061976871542826706116567868330065867503687920456283531609800118909732162381617377709470151941871481717818715765746728694954044447993691598600724114638586692446679806394139405303574651807410139522326701672048039428273152598518340799951158142790329955076125572288997987997939501913172982189019122150872531658995634180235410186957187866287130444636568188693761673856562325125256936769623172357119950606240719789084698592655143850804262490338483493966434485646780964853525226535283786836591495019281786583937748421051030244923639073482739491872689213618620659220556847769672034426417501841436170526162407365703906507855176316418993466831088776320108820488493870611656290487451105396984266780572125464541996848525181920750831538239343997966568925114320347876577636092536256533714192383815444086604811472712295364633368557780731294162612328624997678154334648781389335734694472529449979276996628263971300147244800481118800485203075024241673164000972116405020984656759079841281818437827319361492959415367820242257831248032580752385929659778945655740919715664230571054184133971482124086279123624553562330825022381463063136554163176525984570011634405827669195203216932433907946757118295919274027399029200830619241097563728459661119833298130378880952950384986153992943299530485093151743709416147699735431525747650332082376206797120044837227519117891830820238131556227207450178420216594101427000598336986975578901977933302231646758696625472960246890694990511754797786431833913753274358866039686049994570100007389798914399793918525143107825688860740522017744471779003443979107188193300262084084393613106913989808742016985354006794169761131199912210045536747064152331711853387860251777329507535135075073065725327423327533763376930042696573608238675018803549947749908613782679098447334138822134926308174232357159410714950544842635204072481306981400960309189834896105160124023247637783585003839357583322784462816490672566136331974955262928425839453871293217183521713173618180391169673111086636161573567628854014119035592504217301781389366683836855905702946438651430787810662539205294853607196204476828673598589750735010881587184954538882267263983706599069830037629922450652279802684174382345745273655294916768164781803394952614083820553299476327745263944856480183269219068281062509436588066594858512192105754529538896027306342708191392145379799312616912897478365175424353518168598501628418799301690880963859295545361038619805786964025404150347587283438329222499667115468101982934779541760386169708923228453562835061123666780037432979415675860900160355260343488658946708303560237385047189758357483754367762222325775330417770351728577539397646499128557784638069001159800056934042219737353337799752085373105900001157930347795492410256882561693701012323207489850715978168183255013903214763863069093546062487616020045985404671382685624972028857604071032705573686458699478308166469084297558546265689367383370938597482666715024437382939877445876332270361953349018233127050208885719030085937309888418782924209229742354180201894386758870665937602800445100676855308145165333339893302387221512604301902876348578887678503902945945281125433965227516760209945984518307442847895303290742777849211386557929238667258436670052296103464849269031598653213193759752439473672906583631773430197286011428158137330680696030777791343133643502092113086172744852984195950233048684878012485563208964926029312521960568328027992343403263120721897354006004221878287991432854600720356107728560950865544876122005326245910717548748702319685505361937597254671472738637778788695764909184291947586947693089871570303133315215076699433189421940513654972421658241401673610928027158665985909255170082507335285502205769543814868787092216014654920933389513961435905547364895111474170879684425258900692753204562264267040555012181544021602884596109460631493006419322425781575872832998996278021523029517396813347293577665346364512682093380442866236583739206606157791359766676266360959871749359622262317132226991637450952945830241676062117076934571448532336256358228586773237393625603231054203002302335772519567190951747188033013533493337785104149074644735660359221013628680641204703961440436049234140690011860898005916723565523175200030115326797881562637464128447791195661799297729292455041830035000006374761453426962847733070110902433998351355055810864360533667726901359004730912792722440901997123663336302651735515019118857181563050793696635837147782312848781770388942313772002019943850000922558998689699968431955836964667011654658073101837622462582247687453533607891101586327721151636025028358865781405642788103460681693893709042811252484110856876745328893362517364177500877472661428123843316727076862180030576260016570985291158879050328973789270449671098465950923907157155870373902669269623072608749345067865393962527353649508286769480600123201115881890812515452648019573326525206209101812688557405811229704523316759552891600310229407729722825348367709317544685029466300002148431866976873627038721368617735269299443376348031539572221693329647187246064372899774346546813945894001439347754872361858386452078837350153926386003290725460271123861561534121760517928287051096118255793937799672333867929069602677317644330224423414753471601269000063587424484959428632847891429132738623124407621772898097264919865316181203333123044773365530616009715528436153190350490057616521076668157265055801680133172760085383325857053047310148665518227490118206393037716407462091784232522654474852150492858416301733763751767420056602440722001460318494690231678446317766255051879442777998525750959928303008400651474037786846168468174112735187433467220430454230121155971507031890026441175284662326284164329194605809331212587940056785569417118612028387268232397914397109683047391312761647656484071967984050905074768045585459709362256814671330670434495421310770401589412862828099071406935607487994189962329808816104824722621064527360896422134099567059590213813731995078317640455061900994133342140689827602119248720725668677284385934771930116905113556347147777365337754824420156358055503187039062566050802292234313156536397908648798834840074517192782757559605148630168134093749210583474588562582844356596431868801117085070341596129002227162043790461699691873737016039485707474917223308624672977371889632511369628106055625191419044305961767436680169180298362815540034230979075396142143036565808063890362626891956679678914833031213500219435707429704517037627124399233059988465677084859549775567467192371477452923881895168117913611498925419049944892361985280162962756082902037498050803310185079915688271414128276831080045788019271118754657548973034913920838701800601606082317356561923360619529627238779991850233607146603218046362822949073989037029981872975665056394644155260209088890054558769624886039623055592521540085718220381091341638749318191832306401790869990369988745488513365879917771833703606252199858859396042923819449408566018292693255539625995581663561589220650603584838678672272327467840209224201209039240269117942285591453749432166983553515150503070336686938285192681060633976439301940502112548790420777871672029295036078558128782616596219205006146239114497887753231690110884878328244860955638434409256314213779996932910355028496296493225821526060698379685149003138007210728543227868447694312827087538250800238134892483476901988789165952632099033466471051206105256819102678832588228964981120959097962483861454263623971395397067587403112182621616848633448111211961771164288628087340140256628155657998400984298222694736325859724775115208966060110863115511044658384009099329250314680681431014765282898256994140499453073920998006465463418037191625088533963687141148370847732886446705093340825349863548893408640515282723807785913384723653369319331717295877448060072373680049995272272570066764872862644065957677212282684244844765675634089303928314315775401483379251256632747617349116679694111960141563281927696456357045627662086397002761529229255746736643081349995799620752428093149236114131273116743172304885251698215190177353033833375050358800283579906511428170478736175657289545890032431159502897460222641795845145658063464098485728032707592734634900591448519127765160515562153629637697643106356125579666468322891886620415448788775211363711941088871048981899069645313340732829664789929246627273960236839661000198598246586534608668016364954560139799598780615473045871285313945439773498495125696179925483946583709106782100969577615029791108128983590788011414883765164600947274855978466378999488446775778085179711048677709090524037246516819632623976951704117334733064948180397858675134860033871010016485764694426569383066524216458804608897140785394542937231580185316411130629898082176985483418235005852052811333297140209517070371177853872566300725547950204569019501049618036631266860370017488903720287350285794205538730085439968462449300619891473387652162380549672670594781492940221162474950833322185476273622605352224589156491529677903851954505283740148029068093176761747724156876586286208422017862554162611641856013140273067891936347660529388656242633322672394441819158762180494345548895702509015521204746330063220816004626044051750877479580700299217690169363101105621796012342056330460808588925855921481562441179342420315516456732047189725539742119270459696666831977983778304813282713644680401592375890543137247826085359586785725911869795741699495198988022087409236023269260039934640038604155883702608811474805089451751385520530701324680498577597459810303179080244548002455682242013557660533164226637861173650165564742302968373697068215819020185873207878345874631144102947307064630260112640433682515687598754979397650120245992773915814385849357052272110634380439907560781902121290328726355113365712119760187205337844083264840810029086916628207857075144485287864344537256337236840668820577723785874755590088441346324217595492744398806865053541664386674855401013015236262194096254397089930245317933440468965926386613268169025528372085690769509053642632485725822532514499638021854357327322037218171685939121025474647437212920043997000952207533539803721049806281481353271175470799981149718820879255807959939058901073977613127991408405689130421412575448996887859293331566319750008730086161562910062093677966373958595480971465271750846449057263978787265652686224448623443524284318974319161085725242340258423071407561251058671281828293542925459422607804437045006262148002611178570853290414729548514115351930581687997322359535761853326510480621479377963452359094660397033313552786348224342858765566337088238359246007924051188962413330584991687315139994562883945371348572284771108150556912337328799663601829617601044306465074787808435309671105117145424111248283058997915533435770972123609780663191407078053660401383929703763033594771614069680204140417899184643027749350788357865065885822278014789551466103461407527457546302766075606828298303655985569555988455910385611157540176030148402474216104621122962797412682095086911994908620048288142893942485565623830607100885599091398032685609998359265089384881022160964906321007401995551828056819369320939103773545857901050537289915518783180523169251827550724063875737249045940542642662030668705975881220511952612556787728011317779587179300768111118241019598660747587134585864928240518297130070248937361404249956898189184387270045428879967170128561722815876728803989783645189554384949476567906208196190475409508643887174376683951786583034318821481559809349084734726009919989063629226371045282797861072106470949062776313872367485499551072027649711837065875792009008402915067086832142516222039754863485337349274722469101074765101115473241675208611396082951467764505635434809763963418587928375410078073183928240965606986001588038572545642532448013925242690659381790143224232684536767335183163111519155251689449152934953669104107543519003436119282789315676909282374293263975524784627726749338597674433841717763802205601079477503764110010885095255466711739233485771612727783770102357056415548288453431827452677902980128905553217860989837578344114868194602807707859310101318564072899985664151481856490790506643571050353814232500701211196611659759323621634421130590269985583051975011698693944233887890783486333308718725543246140130692279982381214688695649353668790698552680864376787851935844233802535730314766950742056461681029627432983957011939965409893633525816813711452642765256879538123124749703447846191458822984679372696662313065636834502408627005929517291935807962480188509488483993212903422456794674125920104596341903358023853406796826586970370315146034854375209793684228654518331075280327305582239910902004241377173215426607630314743166427457004828455214094881059318651587994362742582941745229870233117597631602424966818837357298857888003224992207869179346115057064320057303838948948897051784307438655413665306282156530532536240219163919211994331978245984901762057046932494592396974482692509741397829953219689291503920208889597355124163414607376068584089377098614186053472013364877135463879032529723352024660361554373716552223542354712945302059852723792133881077540461319839761419596829201733551387155313417369614846847177746819269471675920947453796418403717567913440857565168253780922178603903511348215659587515356494276051576250879849401518109903736838484643644762840925798541286634221835538815026914781518323354436592920472150064976869288196453707954301114661659712545129888978799307273898827489480429105942607688362351810493327733968445023486976174075861147599362452355156239548756786563248119392799931443827610222583042276316820983794050823927037745064530394959150478779485760122920591413907325775547584789990973374136138385989523541556944698644713423252044750755758388338714082072916226317851588903976517050851774414908884085396183507320497231771608959913994774316698967951744535775931362835099843726457912362438772442619629855381649510027406068312972201138673929404410133564698916235467859341879168513510115547071568462007062412668327134864049079642729647363342242004043950997497856352401275883709497975196990205015827628108758999982357456913939404452510194183448079241138436551951637160844076400010395186580716626567283591901262269306229202294076527533741196750644430921176589174394456466052777531142591811806911330997711084605787484470624607316381385489346287738436846137107498329216255489532315931330058219240297181843322769973413625031890839835713263734838133118721088396167848760199107487778451060501537701628269960595305843140667706839458176888962697413765817529519319743080704301345495628928865023333853178639842911936522878719545517392116779538091145028514844392296372355787502288191985700613191263184541893722908794387986399887331074218488990636394102198356366313424614817047243013673006719380901705684735963793643897909103534033896828019335245722464058576145946493994732004238265552818224759609227584421504763741243954305796454107423463731301817190108965064426762717212891421621818248521333721899591357542588924315544252483284799009105508893651911364057859388899890393679889669009988092840509284788915469737416862147694042860606125273964978005191840314756733610571599759081620561612286207718451568224809418008144134170221333625550788100398087909076984634101036014423390738347795676735387518942448319129367083000791048166502778708788500018836555460523059150372013373692268522571391889315780759830206410356478629960889217401989603776084976231815475507859690506852147175502858729823514084048603442967199516889715199024781719997562359808524277278883919977425557527609721782381953835148841319034358413034663841463469694803499102230334648927751087662117623589080365576779895229777058248967191358674259236893473931238914440606986661632777189142697368341104681171927549582419827382792072962589248829689748825610343243415100034376935300811935150218757002828750921432128660207263871661384141555127499597704864961327843699100766044158719111829470757638219779628341375603620875842444666875221803988384218262724294716250434025583678601411664405344794010779340045489517453847722752965168679325721930909671086412925133306876188556717501355875264495378091618118243607201297494012492651226153966843308878958327779656115202254005465419372396015934860293653277834200048517407189606178845337824580740899996224312310779566992520109505740081371414036363270099927246258175169766526810380451469095341478439071561395782738884567228014143164583162377100572727087231650012323236982892954654380068926138271820078425151231830181261476052349584054590611121641718311922540236691679911545015715247061095380469172029868072594843643672442289907909936496545663695248603190642842178531846062801878837551884389967610304299295260750975459012838889151260700723402199940073103115134392511910689753485415845365871711747138413354206402406374698287659886253298704976631815176499600581128896269766344132776335211834476096249370606746964039731903699954126390530092307914462662731694951321100562981352333891535753076960541440053723117428645922869988369711387017799000681753481394626670104857208922946263397658514287595772625792234445096643165532125721235837369428815171230159888235949411648602265313566864821442670408620432644954632817492447662243796079216685887656693370831354914341127276762580121493127243626485149767996952398851577661610577553855718198899297155627066800212001908494389721691363924003701320478793015006432577843101515638927921125750445536238583418131197821545491398737570204042458348714182592236698988723283510340941299241709020011118220007223477462247664240838710289568896828588982794742469729044921954029210328812961768967750929145735186822605433694063094290682548177413835131529052425242789911017099559797891392835017798641874848686371719464786979185834462043704979162302593813446444527185585960693367130462185032229435197989028981376685573539757176632957676351965351222357529043107202387089855347131805142999472157635574418443828323976455756991791855645194646523959611678275901412867610953627728452925581800605300963140435368428457800005914693649300893689596016815483360667261600972621405864264647856618598556234816166990935426310406873981742127638481251281175847313225365598108471585477112178041833706144025048332977554654821791228989257781876865473827472400343862096919722046794705781392354285205077036029673584605797706753752024755144074877697735122441378726925581481339399867644805107464281015307794806136108888759401934245371355456513379489015713513971451632212515315108258610738209644794633719561608668051681760160826062489719220513375542895431681819855542992289282745396077901223568825073164442777690538916702902742821151468469406237660657758562880716801988485932427355372217697636306140690266876821117072327859656431478813140098521428725338187337809218703505215010934913746359664833549287106661003615974065662834003860372389069895970406482987208178753683801709879693558233260051661252686684597000767811268552557856284204037922890792093380408971987561250179866435239846541517272922665584738420222061000294422069741085570819771840516269286891140803774326033416212295070359345503469002928118226607105589639326950736420599861188503154825595754767248864120212271375579135888695358419621568336796887004608331393091655500820965324268014385214759238555599103148363581216297563417217016728772386784086197253313676034974876457386377093805245592739148102757135291031371700928836983683695159669222904698444409040695190293169540216567699953878077096435962948465581158269205167338017809100822816062576964601730109861394500210275490268921757140837627468544590385319864298262974559233714269482190360051457168728599694947583584272086932310448217555411819563687203303330150511032243344062634622671142444589041097384741637886201575029803443158254049146970226969139467563719842071393789103764470213980733438121536988271484360211516305889797502908436440414304616609258281906666046602823241372607641027751233750600999559746739877205231156779109959951211104440316186610539996105996539722039097952574233687607681095628975643490564013195956338335747555697319730944838834877427276037595439163220514720697784518831455589523996936208772366876031529731859455158501165300916074216807913137638373433967628817934178062855528550086269145456415078740891080314153033393919087554028858220712334455362133615073254292294143047283403845967246642821800615165256073674730867950190252613437587357261096297791217821102206508026441903549324091009712223127212453921233620526375484309720786118615031195943516497501851647234563080602092191753516775233684787766074529085535194730150688032669141817669217516887830299648904132254158175115821675102082875320688593220079772158953795711528320431716507878987855474692523426093371412558779793179733970265099237941692639341159700362521526410639482391043105496046471447636497026656937353005134265078581652115351798054945100429161411791051719124997634441077678402846697938163314383796779078378236580359000559741032331417014007897103191386619062466800999849237278455135863853190779433954947727821327794440527412322161120081245793545380830485184871468000392424886015685817613300916947773125171824558841722918620605459490013067220188753309459312767629701235491828121781049829943113202523851218896608657302494880834480407450787815579403314706734253497877453743557841762868946951021873320834474927829565902632431387037938973680038788843616512419870807497171821878231744155141646698273872906006900696079207460515038808844720473013185299442403208730549264555701688531465993229603201121562351848377414259308895499548936363270798059507884535520288617442922079335613270243477175862164031041947203166754525680457624575176762933926296525858720466273258409394446529929491210464627952922935941732458653237388041933246646647016020374056870915918021601683188536419272379209123737194947976264945715432231125228084045134070715298859563538899036808453499612730188263728856177177932658207745784569097473460675970723371593228574349138144819915554078989714140169581565935989484949998056363735965915654649009154674395931833016094550566045676478517381189250896141027199680203622865602387521352526224909373475589543139989713656999206801968778878373765733737133570988441041988950496282015569796636125277072355051497452185327725000487085469336110247871445284386165506391328524975928647254508863921138895230335803928495136726464565036474976351525494936589622150158213469186352616852321368350796897667238519788721515255244804112298482247728118994506358467604435319854601124192573073078663909623845252302689924411914529135352614981504630911321194545431209452074164758315813646078219636152157860334384133599953900858910362821895070374124683821426647243238427910466570688958197589442504293132474733531422710684438793704258764265213120290044874852514912707480552870209435648423294365893438184356160045775115490560955173384736214478758585319037840756273989634835076707057248881548346543020936798129302349320515454044787401478398669521263428129168579788236380041390787319564588023592560411454820612829805899579724365670099993930547055998728244676496971139960627022524411011152918883697508006574530386478429998436347875867742005725045276266425879401912903571823454097404762700196661704504785806151858161226091190606193145849498395577454644659451344175913178200748488378402774472574962539471573679356503669823206204390585201015313585871338426118893201051113614754408389547933873445907378580430530227158911516289811920405474916862212462482246741789661871075587088374608086240976290955502516130472388560194890126328302067207551459703933031832069562681387320025895329126327648941273957887374036006146789152581233568465648382832865638297089097378285609236358854937007531258971393754735857552596619591658800726038752544283206699935054109909658098088539345494308216724397742918127863802649715253042657597686354432192345097760902924827885660905558093875135101364446855237943986437056330158963548898139637937647918329853505566965083222316263230015765751701310185869077658065460158241077252137886274748207321725481643188801236657191892535976560592296376102131689881321168361367363177714511570823780935023418536891084780573640836992602793115148257268770244461894655519780473026463538939759630443684321612984858536978936319405118737714881837336425541163492409947220278938618621910775586924585313322933808463924790033692420774133424742584121552080484657240514115967798917422269903496904259712802886223556126831273541012126621152945780317569956734374238092601352543530695322492315120968529786075831128362546809538395677285661387384784223662127938957648295104402240438056218533416586302883278794243118182870280659906109983636356734413528235221851412029923006660364825054347616046593857087226791868970753842319418672322453036590560708744427897099279774532761216808625827014506920414597108707053072099118744549357591427383746115351748651671277848187128494234436693831988496286325878270754475319887175930722944613780990919179644763174365140192698857346068645957753142489811348830187053850767314495682635476816013388443808994998655502463322108259892434896167704222625272273264728912813567668335797272286196865395611891539706112281595477162714724543247930842708781808969866342219584332317322570591462564849317762022584570461190434586635062390518347299230986375377636411857193524075967933942423290652498113225078648406688474589664819664019506008202739671062939813828955998481445454538589936238835425431571307003044616530190030981154091492415067783460368198037010703023790739611857514344577261353670084188169077273658354691634408440661457234305528082731643241093885903934287857873474653209272103870456745567331693104622622612196624431601839345056654250953548497937028356159551649687857539409821875192411805891973958332534521676277673267694929149066985915812959695622455775154375997239420405443536758395006302078384832480760538367489946586888223252564242416476943150240411770028674822758242786692877641289373490752952320643031619677461022262374333642591711200060735156810032212679846593322786859072442751937740330999934086310011889109690228601067293033496263194231394400717686942413665671088373953926597762587592602655750910058411533799779688070228456915727023726760879186149791895255923974708843307357591958426039368738057016848383550557601848786763561907520229971600904290916212314438242524667095574430635502837117389971081361265053985676413593691247375834026698910441022291226752645645244837191772771919367726763730271969975836283684098146259719311874399737097827821367786783041433016358978266619573017503206478849742772189915712694091459292331354166439771077204842916382638750675297031937931135950654006025865253347829556366260450113524516716172733227956920739236438085233477515136404353872163598082490505270649121493313146221904921253315349893316618902260625181673600112700338673762170738668707601509139242467840456127958546045900829755453624417109270185633422249210569418470326917629848535508422651974976396301324062776348340904148184987662034067719654394033854073284980214299522730735279732945477041294943684908149779236386711500665688182698771168681663495144128899501417176750342628905083321613154796282368012050130887290027377354876665979993838953421511756010404097525845454141486708816999553064446167134880600068312687453656024462880407976716223565055902793228058068555888030233515494700384894491075120595245492985566519338244060211854046080487845391519855105915877608836014952479517994407894017635813914437633549911714788639409666718708408757631153591312808842201592278025427048579513243457487522523053853748681878597474234234744025324703626529137088551048209029320356990895451354984572187386796331234103318709839784602531916254059720324452322194499227086385083000712534371828429903426962136096372329549028970781406164064010361842172518094695390391877107795407339288806916628423257240603004632843116341647739147742833198589793938059929210081153857924541325721188883328399224784116419282776795210295603021809095271507724760548492418299559698634604494038840048561812019751916249333149877434559053832311574544884854536523035647854651175174371329986635596451606325911359795932525934649099803296374642406683497984593610159322245653606173218928510971155215585546307301252891151516616875701436356270955566781752415871768512603048238440390383641594208494935934450261649274016136215610807954726811930306086249888758564007320867311210966558472625812578184144245791796060382471997370474939052020393979492014066617421889428484320863580851917927775264642332343541452567180548463553301013993196688178686104753321851474279462831775998176809844519171577826027011366875072948644021244760937855714901331117298291201534539371003378963655704855523107573760752709000104888144713841308023282170303325418290061283933320608219686803448952647371190725398426068508768841917289038421991617427243925672711241344208018230069562916150775123861525607841653980380609781724260148051651370273912779286894917681502326559589998357274281891502395056788458092512096000145058215097285381932660095064841836668965590709685163862516284467081813624443782687216419554311431089992017707531799495293605325987390006152047323179821789184742202682945965374959037521327826066067610536813603652811272824255054478607759989699146048563120245860661233775088521123857909635101814973282310723486440693680725782108249826162990418116605320799543207729910018003620788456077163377017297664487446580587513169253164579531204424569318985219449084858977666335061163088579124545114068750543213771774218511585023049740522761535930687510904847472287402441791327892530672875972086015829271846415253819670351078425252672279493111119240703599984260160525395490753334765702684637613458341496225843239065543316795690352657705558602764216343994890789452590885452439344357661136792559545971591034039149764878741833348393058530854278292705157297254106744196914630936222240262846801808023208209270789804261747052950263848763810088363380736421212143977081537564810875448605312737486903129780490616573188242230591492430377996850784910510043666711953367873453362621362426541315260787458807541949376657685075992607769555390499805666066756309292438422049860216968668939094395257078317443233527551489075708562587795262665386092367406270686139142403323307515455120539753160721350493185221859860333731938532669809799152685831469879098342684266129636642542891017446093908784970968133244818289806154243143169577869805433451208417983641620245361103062759425899559722576957856122530232850376475335725204547040444922940548806095471717110530387364315870619051005161269673229546669606794074494935736191215575385810016776201938465096404690348717185874095586373445294926111637330152112827808737208927105505762933783277681235553050601198624062887747632902787706901354539935303118524167651682050822247495102600503772906566999903619933706842013387336027382445085700297203583165878271709921114025858252761894198036455293229874822014914531418489464329476863835247165622258383178036375283668097285595918242477742646566584559154497859281389917843460275081241223633867290276439430898558036162843467227000007141188401690288522126164191506870015453021233004521466568723723591649087778611590343331949132219583640164690346232205486738668726480054477891622946585853017176536691971569714766977941008261963120149677428723326994918517380964404524427573122620388513409213013203298070992798937601618754328149149260176527118984360829273336348363661914985259862810714652683947175292599408960286729611509561356885422874234195378985065113836753914944539697556346835890444252877125269133452356061668585695526155674974600439201788964290795485608857944568813883480601661892614238552252402245831659661289845689046958050883881693441300730705762929680140725433178251525034013753764154317881195251825241694689419598968791775121437610296744859883662093851349218688853120242237084689438480651409147749977334567161138421603008870977531554806742491205232237433178578535973519099784055770661318323379347789811263560340311746974079712026335800642175349407418240583728142454476661550103064790188076051873982185318314986314014102446919026793377701291506606494728180309860506252847324854708856712852383659750409196645177614121770241595912579517705526843489450993724584646380246346682527556621285813282548454335420239315498449205798880208902626476395528150814248818753613827963949539482826470814967900612578724561306529949920006670758801051275792838991324679659517310684095265599619882822681097065945565521376861659850036806329724421872636254405835945372697126390602385267197900421358164645805472728651461794970014065706497688301440577580785733505036331390155966686335985138194186651438353750111526342297383692030482882630760555415384061467015789189110978191109691719587934464332548883363599120610035832303444029771143929863483310855415533147364738902901939770463202426274102283349719108830970984226585093001612769672538852175038296319946794287129303874263466017804709036604237619016816152742568984481896922088953771269161330589290840685842511945043507629928561032981326552140384201177882061636755734801515129860807526750076338501005420131302737761553566556716251015048495650374897661834945217196171757533297878616487690280157575873520474061681005964243421078348215846340036631859689304117443940055004586420031265218688925605191516490694324269935838623517683663668742380208914132425261202656784354352665139748356194314513139200939437146771514657299023562087121268008704851047748286330251880131028180455565742097888345188425812713279674269701180160921736930364687635889554111170100189771149977707732636417453173802485055553996549708534790811703491628697485725067221421512405335155953151631310722585360826388733768147672017060167538992294463474915503993090767368933832093565997796305501611697451545204898041424591166395593566731825984989028814151770558954583064267363533702216965661911275738893500653257168048720068202137568144304156860717683865156049027116497839093932529117379140328401885680250148086252416357873096636634535244362903528701737356680224053644550587609108232130692330492170752837484236626063651464838440200023007946125874840889042941409172125040398845844251284764827641917829181625583437633698120342945333883894375076307839348735872626020532343872445989458948869520485368744947746140578920199000639996654810381264273912052584254788563693955079798527553017561118182825751576976466918527020840359631030188974736506978057414412975841011277222562628877868730526761755447585336626407211574830836939380111752085516028195449219279426563812634563704297373228053811262904502446880234760705902872161957224831541662579251541225971230164645071652937957671883221688199268468211058016240273036804467967927823411571930277158358333904797220208573712374149859687370302940994132205943733656916256460481854268474845596080041531115039590899325958229834956756872850320972248731819170252693793267380501683038572300243064441645001693981541809847229122390752199009098404775709122784526056033442568519894911581315974867534248518989764452914235002953950008344703487138861486692354182704263537740959657765365646819441324609382819931762442036711096395148521234455422744775751857234556923735165901842032788891806871391981314638799342760641643634545366990819817392147991647166021675437306987602730423301983163503593466307851277391586585991327380895411852850518736818305809389356479553632910111395459526215097293002523945843881007260812320692196029492787810476543220151084919669019000759209186889920611416606089593840101119779097642866649732846854169492400757272282621735037758117820223463419468539544079799690855243089958779415312638370587000184982079866433826876737551705037030462472816358983747841475284365257388352605724074884695902290859910395165301276123422272974527788594456494289705362796163737014990321210111377956553483104694346187855594031703479651663049602529289143819878180553970100247885993932478200426016035157211506687323460826539333133940163591300526700318369779358283071529462247034312056975850347917826096065918051731792142130610727690432872208062930548293513468088377120394580237785589048745583415006664159780351175654378057756618832849449433852271555762200342238584271278750951813982397675946875435558192115553839681992387231264406300079397169582129664002448825130883142531025444560397209974644781670965561476759500729836094672154414183628224466164852028832578762596558920678759494550451495146947357996900718962627844207638468005353587015211469540958897673987415315500909685300288783352597839748050499969218885099496250308124452941674682219508968243534920265511022756133298345457826467435215998904154587204230239401791422065170210513499096556973614933202099568695987451183265589038302195082461557043961676410128147525703327561312445050002070164601651089748672635557129659869581472486746772574524106816759201842732243931309253962291162366183886449506442246939948692400656978282024651943600551574115549503031235496622850914894688068146019073659793078886382375976813193191710142956365669003098116838639243319850786343444222628395386660388724796882468465797322885377812711400581644688939798002781751455257966659295492797120989033521192651092480177435720355267394868498264011122347877011330918020956004304829747455321955165660272962667923181956910667375154579334253815083081104660365322801915829312991927174380870142696381032805079382808692350919693858156780601550713382478136413002188077896204774868608992848849178278494740335983230883740443374529297179118051538600333043063072090310473911042237927604161441953523832176025889730265885217128322822742353401759144256544261473252422119295807911679050174308298615275640333283771872579782584943619314229083672116345929353047825045690740628046464776779773126746949335009728374511179950654627186133071265973848815032376085524111444442601959823603993846889096061049998764938338716594731503790079014715938853848982422008104505180696489711084826997232677048884748737638306118595375706117811320098181979848071718598055834713005169092899384658617528587961305260571063886037341688902672299424193021739580242709647221739827909303983106868228012785524358117458955759336400940131404862821326674723417355014475846321951091529993768602190870920288835423879801027853306351834707903002724916437725075016302525760187109339176403965701447875623946059334682456154516716604102312214648067981343360669721164604377418117482487932442362282957137087276256552812115063504292130361392375498001272378946461779169583425190708839360936115962426736836797912009594977548765834123468193040225981425921860420932497958656177255251023818897564814628793035455745304809954304027016833685624147602979007881115487997663619574126639460338548224704510798431359662342949686715648667625057246389506531328252013963564305174418240689120398122408827465742045005649050769151520956180746359512463114351142457868572004092032706036356099324667835284629469197628629892720245399945136295938989567716885865954970385543397826402383359526919895136515275101428312388331270199334730230158444981535615058978174954105973447912517296007461471406693988138514405259223287895295020038020317349822512147619918740744852235144515551495815166175898070227661762437688077987766196463725998224232171586606293727940288679189450079517513741135318682116772490108389141447655844760625238275413844366580755325055224002543327410376812578591639990641102002970099747686455078757903442304384238501485816699329440629671892141838410656191046116715620951702053543600072340184968155450359877222833194709274785856106547310354606494950589584255292306644508939880975225045851959196010363319046887768520474278608139018987017008956049012983414050433108414729623646913358291780735834052608501809338086398640727558110781200162501641811889430653206937838785577328006094824080332967039603409031623294666933549102843628840494197710964337236770500332235500175265051604253681110309985446978385624976361177451552690061154526293072292583963656680474805098810774013332271826990315644088606064728918237078782392811892536736471194521548547078828601483080891285250245141395847801770106880584292664546199482537240134105628916710589158608578582235723859526128831071895914170133884780331678954393267154721413807217825985044050272621066089682775451320927527941800251053849327789469183337306441009517622797531115395214682787422683746194477828618773476973354936866116351591038775667694912820734505335511243469967590411622800319711648463976559579010848577419759007679068047233615964025837978956557098903577252683311542461760248644617349653641323246665393717191842539637252315857292704626557706065132955692709906762448177295488241072747678970563832564705128938621229254177140607283813925219415912089558676414947814795562207264985102989120814047002592561480654990513150721281029596740377004994212869256942567895662129608859886815389728197922383428861983232460347666849152193675334820413170964962710331497034917246665588837467308314233963127134323482167061452581478047951367728943419526429057538764871582482919321326113767156329656699456178312089118341315402450897642725437385928606307740778074038827748680817335780623024640502930364104389830353941197090220323706622479768036869801415091592170098834331437192827850878377424677289320211651206601056236037251566883810590714253393908418206676597470188613399399686220955638683050752664424431748536191399715153947796413904313117086358100268970644365721305307744986155557440226552369564540433017532919050299653091496716472232584929319548317973074676651411148393997197253263817290409145573034110078484700296574223077884869000497957732582188015433746441391105129369651141485799303517086498397723943231440511107441033415327483863094018199782326874218858494822370887610972578013143212803486113293197995476614120222153121317944427467603854136424567066681517373145152594436251978364802041721290110243126008509559783184224903834317827608789651215969413121603244134471285266643405816389095831620292150295775916780782884034484271362283737114758745595244616692919393752043906502333243914597022799080015072709183894892461421497529466139700048736511283715453164569371404469388407738793183892733673069301845273504022137759532730940151548986104268393327100611767265297158329160902247036180324716728303184100271500617921170154315996759275448646968243428630487916028148583165096432746869022054187675534233458647124798323448634604713717385578192621852676444283163026850984952967466243254021964786972008941456279067170249793016474010737568477418589358818149172581257865704721867980635549493781572861168566549790739815545348121849191752959583866184945890349398837344894938830772947973006333152344907662659525814114053843968383795717798011870534301902273089646504700893812002945554334732937156956585696154398684971000279772087790535281606035851028046465105674435130181405180724324097209725377467979356675716038133605066426809655241073473614229177378635411038873705654821835023509971457455561178457546274685896949443388545666342138832480674204951257892196753888501577257103047770174635840984259043372673751452475175512989010995534270059462759300744994590670598614500139990124131030102675360784003451477615060085026050269174881497775832083354441677659647529331137103644198424011029337812251478003019135682133649740585423868777635566685597654280640388029625558768283384552384038689714204397159362872067167627526613688193213331183620346276184304660203230906163693432098361613639879438003411259550116578010945380214991026994959138780589253407407535566532052535492952088516106846093083364320982418813039047825779165988515363568873426221606455286064627225163194686389882739086519152712192171748922950798057865975719451466674140037652370223635695153644853268318427019510821618552418757028517416004190437941957482607720673306433365128145323830912730469072925844069587860740004580790408385081207896058814412655615393293404031953211362557657724844109493456183721162395534211413290616167193560327497061461989020913241631689916204795706803027693605009295553905941590273473800713073099246734901988498880522570936451746936180291477641568021806016169200946800879809422051153042721583000098445658452437373606664054426754297210473447242933245144442432032342038490609957357488795195975581622970720287753751683174210367792430073358088523325928713011760277654184513113927241078375625872955807587617654298207118261933431019159827769494080598317336256866785341191733573081302175002864236147888343252334431876598207367146298932690047137728716759815872866954372834785111011282528058228580778685197543907744612760460049499533205633825570621082379899016710469968603407619234068284833107050471612029247204281453975097599927416856117938696726991780122771682556781053459396916398702347975390554009133182669607222687414958271600995805470644613665140277962492706059136015784271585582868879377025297056446354676504062302119493835789171114259267476627400258415591540608263227255586236290683845369243078526354635918298751219370386374935378012870636880488558807672357210474365216381687188004923722985241200593581160012317922810582721466673788319132940731958003236260615417774580154157104114145578023638827128723895752003491796381737746338301026721201657200779937118536355264568909616451471451373785834784189581666097081680434944604298398775624987121442654157406523102122194298427620290396901449725168770169186531761484529410751151782773955122315845348862907501240161552173127494349487738202044693906507008470376406612085556609950688411547330768241493433309638946738565085461567200886432189433736899088176582641600054090363139116337638732366258273701737825333211433455960293538856048229670764202333001377638313857087723347921349750363391495229750507535614227973037593242662403134003163364717046321425642564903875427356783012431532153273636231466378109513190028426133306090793973142683454116430716682246063169728540352718196980625959135446216071115064980468615287784321937203612151212103888242807507179273433892680195639975448560057270187723951983194585470837216873711677553464596031511795627964786289103113132544533000404137598047567062377228867804019204369815939946978900460901530634125734621535755189179652756627644750536187288636087079549728461240045559384762741478235818958196285865602913041742749229599534768530118534166992302787976518336501267534741317660529794897488271363077739716770498573557069370144720318155888667466028670346212464878427803234248824948312115657436044711819888825234663010090463957657093363039910182733773475469027421721244093572696634071719854597682047831501366243494894863972158862332710536069690730423963177224793672437119387009247568999378669298815059163387032580878427876202391637030520587444181559191846262323783616293625075261157976278535852853071482178886086872694777153034220937325968963842862113742460427660351822072805406472744473639109502887038232646640308787296020006085779156104782301214919893723019207768937465466292018791569540662424347207851161206164718715351200107074303264070855427305512863230105863341136312357675634154595557579532138035063344103427788113820842627827505777720605595415765104902806952734040108782043771599468976184874943389717491479786632134785600403431762677092488998110925906000260166103805098759396801421024807383142934390382113524433637908341645813992377888085892187691541968856210664330932923292914347312519107790968713713626296466860340155447205546263176532340145346575674058745036433318028802452887685460035802082552172569490556859104625324911742361338371866851515139645053315334131914702347512471360199011668706403093410222904961536017337458720977139313590645723035795495615242203520738634920692885858288941092238162275874096763944076540693645124879358375543533245244483294443297984051277641352277536522645975695730534349736994232111468099621311751589642712521771067971521877486097662086131976518611310052949052873275376500049036800710471047341570907486079766249371661173872328274951253053827445049688552798933885667545854850747617079842552175309478402773091168416787637212379946885174564872327783883734041830901530166013164677635733897079752547821662015293968601043823625869011514317315285805731017610093463483628559230868092640591800673423839325094974148342559699689925403022496891873070857579966798275821816738555960417480361539945042740986451580216363163443572767030749909870712694034428669410051650809538058854434445051242914536163140939165877041113334252696350977230608256651172942841675073511282126803987875993583996651493898812229517372066967790480680909743103855279548770749196822460659294094582398140563008194113065937731302224179492801717656006009881768994215905106116572399497749581265440811007827845759429595898956653079968430153668168554851085533702176508955286882468159929885484883904241863115642473560544137625171401596167570308532228946994613259236779983587809054670055974612841051277782981565281889953707166281619796399349815123022343672717669559267092994415905631220417331537348993549653629165202332003242077265342129794691448506696003250343414646271252375307207428116209900122218506643255224707415028938870708476447352171582892064213676315504879400950061041395260393679108069347266726933436404287658352901927611133720159875225335846809935167430336477442949157945150762248558513095179005254838132927721413910197253976701445066545055122018083479260554796901603543586761161679301855016263385935778391019910605015708193801447733284892011265353533205683566907741872393217764276877643284985516124668819635512295176191519625994096055664187049565335666196852050396255468727615709227401476696448642970536110157603247585815397871972597979126162759278846199784798779202523512148515769029562509322893527734909098035875898310332384322299882200338808203705099474953515562986345432300121963642459383871826529556866895396414121440033017486824325157206370587241466145847341692619798944055927226930664789692060791797274799723261925011282984975990256337507163325416860700960493318091298270217471461187874429711338043867078046679908163479700011153720105022137290217249953933610715551971821607084655268324620257264842616935145846609055743402149406114038550384829661521609452513949072241479121875052483112601000652683875281031829627435404971804449507543306383790916914540334866115739388628805214019457973691463297619476760037584110535412220326725514867990484707192701174484865882054858719809718322485295411385374181109594589445851827866417864082281748726579489761381076874821106687539259582884900817157704573599998370678413296007392030374298424781966549389924124073176533090321060222533423053761198183677979030683551484178658101149793849044141007312779313548547050178388844524477688345534355884473645016827251991839152942354976090920074087377458596751518486725120435094969673431951650192113642530314198012298163291253544281766538350031064302912475965944073508699259850475611100502185276721470575175423737610797181830174919333799748906179221221510323306165193854886407020288929493476830839805450545445196470380842603407651507661572894655890060477991062413643819699445666270670567342570071432156646728156641618145222045167532187609838872440057771473026392952979789321910983140280829988353604488378854973170573083356348475892518519955094870473163294823847575365026420593227640905137031670232046768472619762631286885198453246049006289916029211293324734391266637247063955392308326455786318832468487175384897002671106738519502355857210335264472729983077006646239250514818742870566317135425169512767003664601941281163543485664942159597643272647723926686386970017347652429114747629881415100890880147294174358769009128837624747888810271295849225706156062156895501371419179112795629719597394420895286749595203948893342108656484295072282737428224247211179598678648864454518601439749427360712617067487689184525345232002197344064757448605149722297317051866177537349442878643723891288717495407234893028970169711556517253943519161427738163855204576192367925223053510860671573927985616229192791125859709057998598971859101125902467507601137329099249554033486057723749455385024002629309256829961568251955584760612179321366877429032595130011442197708464736047291360800219161963061838321415974707992102653795160290282083845114065455465802267046775668496846641215443902539562079691112526389770815319386588908303073621403364132825816542819481352153359785243817940127506074764304660225115341985828091507260153015165135728202489325913342222178005639270927089029356188122064069872224613684616836651084180046204757994612416273490044544288514308215902906285816605042453028385901845897143756962408402979913809082589883961849710687731952689182450305978297566928227503912395935664211744756973078052294163293895903513033398418427535084298888229900995721962577057221006425308544455200006497184490632700074451314756910358803641586459647303237113160488975552710939725837126756408186304684769153829459629187407060968719478132459836100562692981141592004605568366313602312903314669751272706202619867480205256821405551772963458974273081037160314855671093503232522899308141656159341339308789088431704934524916333724030911057399161852415194877571853670235191450189191666422108779628085267001352034258177352398456812751805170275311175136711907807241708196748778170872246072879860379185537552552829465646700270754378056062655474780662959963324758648302006115176227293071079701335280310939868979398784131975375904633406196096447215790572402977563266783786209166970945138535396695113946014433928951869753882303666934528601091009750366606302728812995078283377069705482447117310736094969107631481378410449726778012751916056094114263100431194447545920182556103426810574379642559784895433777458621438503381098360856919301161224624478976355726898885742293203875523569197843223006965496897929368482774539549762064406396487052923209464803683588788907395925042268200755053099670827521536512465252748937048402266611372646427243758100759360422140425125717867367486482979391208443409329310638202504611559104664739359925877944409959572086725972337977157324052054867075053109130666839054136492223541686396441603172885373122287862283554497081389652734971125740167351368756492362997149300979828616320281407639140251912925945978654122070210717333126114546737566616358254202260157451810287383556098738206786862276251377744366087829059454197699007927948314417626569637081908892231386929019066504388281235720520385117750472576557877652489386936775998309266448984963906115852312082187095406860594436349768629653476771091113570093383817998987857629384428677631968675134406196576433732400526342650513368692339656174221278972677365217331520337808708071596338805136691783826314869489225886629059428853051096942978406146038756566695338670100542442936610224599127646963269956380946771494294378772094058189060813860634739117263174497914875823277866875723073878072361644069670835524526390676419471042404086219618697957395361608804215716041577182313218190695319902505619271053119456743979852468201032086401981661963715342242388123591647136065662584335806438706278209363845336144350309532851490159312080883949022554578057016344406842588412826105413483608371227728171925972826620703152876129591808961351695014123751263986205446785722467296306026734925734784386585967207384942938097313453837592044088486167074610666801813912720140795720035857370577591947925677102735371934581424452667197752311483645460573372797082826929193593203182137832117766827396232029297887686660986156526893042002337276816875452608730363054658995567134982977452827278259101928061645242467881035661815342039636557735434345643488763235526709834353314590004393766205336120364876666534667443887120878942877048462783673513814050655463891510930708695913277698175229956242224313977795183857192461692697436670189914995419513303645903669076270353879048719376556640129431529120214207968743093111563595699793204561010217328673824809206043058111382729109393735586233579706346881285980609394538531609075526905174264036558998544036717501461780841619935788278537716928760027897290589973834221077151894982789464148851221634283084843445754392358663446457716310864232612273910727245728923671165404715983635249478638784279349910904402158311500997461585758659387941139925768123176244978952844592949255628340500826903822353355866563349335322805871254612876422813095029844017095261685765757844991785172562382621279590105647399780433158807610118266665441809061233369504741226547826201161979276037640059068794821621113617529940486775915276059350908766997214620087846772431539608715559834636508485208543046148625026949416499661409644137104240378022413568230375434203171380791982700373411626901532075151609089092800597865643828910452303217320936947549893176261965349288645040492641781700526117748423390809625452921277967768745757444610404370254214344113878447521698321284059633859167800782082914033426853842398540335791681639071969946464511981145655280969702096222251646054733689249635927007307873979329693682819161206666753397842624397776349026497183913899377819099351728808167397342624147885674483134646081185617244637764780565444101216699907614618920892767310836701049374853812566275467374539039555462501432527968776680952413266768138484543151599633603167765798585734818409250247375518245880302482467565123226122885840196262961556348594569394320134626483530360762706115735342728035395586800320989916371755625745276797819286907183514443290748333306977578864036768568464150558603341308148764185893357554496607253071779613337941057301613784999861480575636132882912697209973837639018616795899386199171373224967345879619085557344669130436785559448221792562700782461885675502692818974597794510091914709247169614513690262432566603894737981006838253134612115543265758482288254121070275133950121527347102432443134140153003042096430838726393440360859648618550943548304968556173966565037003377046872305435543827905238131921931815676242639190007306275215322987515917221182637032218610206854348814025804625255380654285350899947690079467592127663617819220689268532573893425898927968063455945322822557493695016522878142670470537005598661031335639348187196013387107221586192821815679051232643254722708979619721979795429191868734052633176215122867426601557447373583108597433469857053248198828790847338694709674035069141373022925026538029413707132859258183095847263704319068495741182063823710733839296964987017735215701635972889910915728276042761244822961787456065103845146766924967984478774899716609191980398491179200646314521185397162784862762019925272450582446750381258849247590125474977645237453905519797933118765738286942790435076621106120806538813975797976818569104402161481472845033449603870811194978122063634405893397953068280182379146827536039086521310078821323877969885310307101511221879432680448129751958357884771910445484723774873634326590469266385292154899356524864052233969202994121594484463933927725607047553440908591892917300695387148672132398279673495284036169835132956520291304128724310364719468692899588549178475043982789387176665121368366129934874637718448777719856047700231749700042310671042027999787102053549144159221341933973735001430488106872309315065318983460688812015035090794338166344096166177292935999314455856973999271737181107704010303057513576657265292513116958788337935402848522500462533895893645357046510069032309816163111222056442902765754163634982460461023350056045953540582323927161951537204052782992765776947262347698281469603994208161335752951951842556477986179282506826089804956542958788952267097723832826487307837430360501326908094384794472391805686845325922826390275228860243281017653131764045027218115983869053139538465491302893207789646989208872451712427152680224554212462021655672714175526220497680884845554655835362866820637901257179978865993745205992072092827201340001330751806115609648599687999311510879492005133415660602970874528007310818250581571265675437470736156098921676804973143675964455126174636573874597325395908786675303551526212751742913200693093930394285823968743098631733652201407640841049612459775218934539285133913254688649410699724678764589358889817569384146664318862313113007914950761381124294365627034242544564428722889433171127603107562004640409267542610431911151370355719768053159697499865686494014402373156818454333588264133388319851794296454606676902644629448894751994236378794379350834229103882300319984234549979107048991506618186001780351054446468775903163428655298070119005015795390819908249092091133644937088941425327186585675213920683409998176673286009374981600790310007660550955680426913624426692004462122137803536897495974768573414962522889668449965996199362193155917973282921666851962932002113671900387971797109034352563249188337806233465567657387766503354137493900850626490809612022128340828599557558221193771226939414871928142984355249069159716854880953035670365987073290703545509915721441352124576623830225068329206280610850378707708840845835512117120370077449694297067932256463099723355200102816844512909369461806675377496208827944167901216221770705398695284292304248461593905853376089050451340214603873895202308750477403166147719124949175618050894447742683157514385448962227199731126526734913308255885768304078610484257859880639416078944779002610055177706506906237171954725424584880272719076928124921596797555423542665504519758701608182751883610562030188478944394976139829116477150470435106916816224948564140788812924842475311523406715149236536628897775229391910445353291259567090319230890441449100766653820547570054657736200098505329490129867251332736435108106996203412117521167800493619821645665708336199729913514024510472428610425121888584063506317936885750080983612018966805453806353065705345547269946015087767416453951762460729856031953471080317450004639048882143200122748865522274713783258092622138148362778060702746677079859992663423594175218038385763469942400150486186282343201734958659205978765149841153091957449402803975789209131545843874637088600061406670397386110475798177796846328395896046723441067415739610894884663402216041279689846220487574892007058154124679504582269483332996208837952787705920244287705359463711566776053692095717243063099334816071049349495065115145761057252171511084617387341013926992364887390112345247132520383708545921210288382744919840054778173776511038970400124693787352097136453726134330170821522934423159555958614191403394077692246198184967722731768350057872323371739548640309189195177454049437699837062433356958996512036912449808785797486104454063416386014356803019574385398140475293427792578103624452297494035954916002065326807485854379367564733272262141450313742293892772879984758457794871174019551503134591741398863597872317059350972694147758182527407429736659144607236276664530423413114928797599798974624814154325637926082275582106306190110351221023484278653142852260246874344703241316900080006801272397959167783082283592127465941219307832521862958276415765088282430125199212383261293814720311970699873901449736471718455986867978844106203755832180985196565799656606630530209460434390266680180579833488484284744483290793103027299140298301362697986517316281627480119785502193972820515362725217562084297400171607282114484500499688774956285061609748306035011461431978986682187554127071945458804856318741465721785778774184204104265198460592790777632725538786492835196226821857153948990719282996689261037815006659838162701537501532785681346602777066489946990882467071629467416287777753976549395266071535453735030454117248621870252448481137102460713233989556962655952367433100306523495192744963770964423793581301755345308184083465010882628747932858182750147940790520949099231335069231878426794049580753184912631507332490860939395019546237467037725764696239796715461534891519856326259622037722102767292307173832664413236282670529223500015076411836785645428686021385013483995116115044437023800678228051096514777129344311965378878855272990397386080937882385224052037216889590464907908404878818638678671706713016409950142335751739543953525696772999706825876171434795657511181078294927377182554393829536340248013000909393721016132836635054784929768314148440360321054274818599488233223386271970762503155522346232129939446160409548198999815313952370109237829848703985126748541836504997043043439827954925074470416687919365843408899882655582215835778263584188118478039744648162086882913866443607462946972169824945277581893316422794798388457721658762030209714141583520473014015365779341995116839423097781607960372392129983119895816340388223291808050612751931799664052048022608193475395552537494662618633911169645090824709551187403284023622564763196652273985402529852780097345713265150587709708332578535153962807472297198592432710054989735360938884701934067332681150142099083511018770483744472351410624824372853380846060006143021724906552220525863545058064039464845586358996788705355468707949116235041142422059965099458970217896912613066789695326535275162456769672824210397436726017057551121948353710632519836104101088868855587412610486649419301211241615883676997159876708935833863829102196008826059174449764184588595007489934281402913261223841038160223548985697135073654847767069702408650168751150525786003857375125292332499575769018734923472652735708845288382707856480835614356885532577126823503589122723139401652140228484830346161799181124799013056917936084006177158614715544411829061569484576456495792054511405740387919526625270486393504483171716167130488370810378619760520669259794021432773184884617643304142101784914895451943684672179614824858539606861600879765120155738754969757482426989302146274944456397856004836110612048937664514146738843328904969715095094259019265348404967994737790579174276713654822865267520693803044299740515728200468303098607059604244758314258857107922589420157257281336008145420003393736178254530073195168391902377622919932330581219237601099082708537031960492458917421184348784781770914450710061957674571047180418695871144569387413840594861499663114070988583931885913732448529470695379435931907616149099000420047232526814058637999628716074615293479549435768342499074184571426752449883701805883756030098262204526168808483800485243606815909320622510805053084348852006701979127623752878368759139024071193399634847910082851700358189819353072737921631921117473855217031619867389248564596584381433274829230159786966653880696782651486857549857028291614444069577853465982722099359030392455918935705490232094487079113758826688001799860668498431390963989787515987881723286855597875193545880738099581165029976761910457607159043119817030299502073569899378672532116030687727860256765044329255797859052263945328792828511001630014380873133322892575436855767601154104484518080746817907217972577627732808448625228953988585855252448226220704059707374860850401107069551988835640424811742201525165699822339032076493606899201007733710310718551951071349891358673534445254598356460019988711000838223321006619733294881279257656806360952191379960263707535465560199902789992646758208524365181901962679884956557378165144587316999792943889547667199567867919730503506835219295056672039630605292749889507795148978669857162673751619966463192172894181874899881847520201077168510916924756860091142375634542963110909390588333782995722607746924802843794335396219493478328281059369988340033121312977461659567124132854049622463260126437739904577069080564803625273469191393947932279464953479953038107251296397015718989120621531577296511946404987533478186974676155716478500414546143236680304017245736100129490291737174101058814546135946175891005102154105582044684652551295639212073577969490391748488804362301971335027484268631290886527870627509661537448428082627941418863494328164899742475417967998430265836126711806706889345722311944216693553679682063660867382126963306135650938284334154508095164351919654607693576874729737232828345828578425927027123328834619113264919942962139312064412435319690289596350579749062388848877231936368408549687272527855620998977752521678766328580470549928842673793114865579759964126647038044991550582006000420881672852915718787704049300334382512381678179384538051247034573605976797016230396720456814733901186605769556855957240679569974377295356562271789501658049880916651917103273858774097469649975674529981242025509169456312128309705221177819671108584411782586747175456561388672514214630677275492689121878828673019034084681540506161490597063601381021045716400099615116067471900627182945113216078238330592727239364011007071496060428034756915834174599640440423224474728403198762264260641807616699443436734230880509303163831781089939300037697766539253637793784218194288851520701497538061230854795474452680777844047532895982745239803441138753702828797614526247660087563488421600532718519158324874702284933196161314218502170052938718032988089648808168972175917538596310070469174338938638755643413753987908314838781190804181737973995160253280514519214415360270953253255946129002913216567669851178887430448909020764243615693567653867599859491546061483401687080845038534651345898988751643823545213296958407737775172831380117227753686345804219148206059320268210457152051329756294258800687986617110846347949321939786134503989581628295553128704627270246756369387134700315467732533738593487760009335311699498532478108310431287110171190578086601769150618059999621267617363480396901296850716926572689182371299004917183054627883411504908067467927165587833307150643970283290777195776830898983404644667698956333021443427658880407542374363751450009662320442296430339358734646596019355495945117603482545693244727110851706984700706880403508088541893311550662877789960185000637562676707263381158337258771075233833296646942865259961766293676752433046968532700161563761255757134057767239466395867167589625340470672107447546720799434037609886378730237425850610894621734978264956956627181068861819581722581932209115838169465885326514764840704247981382470868060040745294568095510492328394637503069925461694927090532054577338300183837076903962545762976040538412481931301363798791582126884222168323923501958213622743755273772015987763321460773602444706568625509470330514087716495582174349978879235782331179504120398480197568167925087643016573616933111273817950662421900709528869594319306602828477211145451028483607858991538097597083235080357419719406841052391974416509822918930503038657112423437025244393213133281666898343513953926195929361625609680200976532859653605018637594467886941098025078364514273205327345905907396088302214744087012468401428862588256106132535568575793888741955719361257324310849305206785348525993410959435359331036631454254069609681537759469082514320754101989176946433659189772744034867663162103028488009247277451194604317709060831653679502961821195366408480719386811402029961787287058801063108530001315460835335821223069482460582978003431751650520534969241053443099235313224680319001996551451555897899110430717977959965332358770368287116629843173145466598387326732377098020754589285799299085788399964194487749729986833169007833348448652789230899241799947998010996100961336501300081588136698443606402489514069761546185085272196172616982292709786100505692747215666355431598080245583810463739108645421194816310135804062519778737219622961121097879995892361745232419898805723939605766949788266533812458690897020673794410298689351069695361300094468305042704818101981373426916670170883501867991839015361242721569378666442916241950722066861116493291352938524907396996341780595224729512760141556648611501999436639439529974265084129123522801789641751209034062995861889807545866811665256144982107856816458337318001468906316827606802101926953621379987797477302263054141976825257084705754612988916004135382412662375496326699622359076050225978650379540165590815419327327746392526313101805436193696450249842270595916770652278085744404725586221978201839076590424380357653780135368106233855374766604261740526751631698726810866170963511449177446973963878790613192043009780034698802013723309568184601070906578957930967825739294531809307074894546868544369528899029701624357118022474245027698155311120319981765020421873406008922211794630290486553019131704727579904157437068691335162941323840752422272264379064360954508353037343115842693628700989959177279006074208358515101310964146714890257994067161118758625587516029634767875366536830662183315705533347219814134560502359420328055480323840869166688937315077753273861874411518958230066527570751670495225950828369068120117558304545707410561386101026580320937739125624556061646006262427185759655573079015535144824883252385239233210159189392793774928024902369262404807778805960172346557727839618288233157038175280006523194802066755599526587487528585670479340128346865265324163996636531465812869790168578665700058925520225581136499873279216174625210566297708760037598264985202164394116500956837057070246507592730461560155200500311150339331554359915537632932492551226540688274728765624935991580982145312718989579595229362730777709100007754548710449429192545470687903420211112225592710826932553408197984776285065334419494290222224325887733844446630588498904488773832368627321952550783251108362187903264617445516151880126620428371912477588923326598031906216054082333345938993903517712428459110995855220797409543493766576445620562439585037128493559130092976809160239764372267634182694337884474035470159932640000119283998108529379202162013360626401323789847427547249371201743866139803560287117282391598484631787219894313071417073624945052915236840980630346458393929156735902678617062989977162467892243882417706309332544737560147894116647635520360937341068279170647136432153445557228913187991396533049126481831592117600068013481608032121388793722815459888126050016197212219090584848193266229870844532877466523511872455544833710812521786601621822242346656217446106639942275747573387802002905920638141384299039938145905477350923240451201817500564203522618811292514594971432216183075133430804280475620519949041617839738441858394003416961627386869526487079941318945658280401954487067733070474016429899683108128885808048614606165722822729463995107571814309067956093557607896157087284117640158392940781689763897587084033023268053996543094860873418881821580966348650645278042315122449418388271915967642554122137923244355925195266296732702077181785132982739349737160423805512855479373846322595939502661711286081618832692388742682966684359534527732901715264496539039210488041499102598929622988374796254911603659051439643227448837635395914437530379643676831687033587374357370483790960673787615413509859612375107237665038217304758662375544688089322555227088884495421040864994983933376084431975678026872259331258876516696522654997960338394315698948315574384009687839821387726841948160263564292301072597736479061382319684692735949810507166757959739546704992569866339937966527576353193159044439436960811075200068207816441536411705338805383604659002723665413666418600218054193963766137447159243532858424723905112044485215834235253644046533622399926374857920368414802044947501837183945317223911915453540366133923597566213429480528787794691694972035991026027715440322547021646465717608141490293219671782352588900998330688258914916058732703290073258502235774477432530129649468179310340846354360173403139895799877801737862542027829750306570433272729334283716728020536283460832499435104944182249382289743081884750720479796855540130190625696494048175355890326062711317401875789351649685078063491946893715242858135063600714702808905264643795161088488933329830567029383374679243423386100929022447508775266046184980229898842454594418995259275705617672156843733069946303986872440523951330910733016876707457198791015204409253012434086982079570498400174689011617940455964901941846025178802769784774870400341682638165347048815569298231319562337749272564996875576854081882856229401348601434971566181736834937141856937032492033427513242791017871574269497953098207106995619258901086204800060194292579408483447827976436043731962697687327907129855260828177108194426051610417052701016974610546381646424456020331973441212169033980487040042948247383545050992221590602746217764712930345109856960051762586323981113438294888518929747585108068220729298977124550141591479986765843606826689940081759441901456410063018285110724579735998305119481692595881818272193651483524879848790281049795913876791739957247003845892512589765687082181671600559548293204673936683520649766765834476820057732146579397966698053344784526896112843449342838804456443661625910235044641394841809634866012309639891093064648829365884263177213356071670461362958481644048964545769343172711303908107019569589593794149400339918702109855414126075711560430658795110477156710577256833387738768546811754522701080170068708491157105033035007020913602554205047443659024886960390842770404962277783044638116160432459759830576808884722768484140423122963411043263424904984914695073985802609431915805347752984924861506576494089074896947098637773294156245645510452538098447528390689416697401343979153309261878187408534676640338198397932676111871541079472413937682340805606844633826710931110533603490764111813955034367935871799786866822397818184826121015251633888932715133420597890797573998921088561314032974243462262623553753609721984094111860253152351545175779257751074539373326495844931389164874700220315952009179302090767875503547744304016962898203848354471490210013540444016831370829461602616875108655521897674142945628667858571441760648222534322151046128307612779053135771370160763882804769450302996254824215640204633384057014956518811112936455924804155454952014480428752572079613412605216510992667460256120918929181661547559863847857734462351493390632917748389574987828896379327265845698975018895544262146071826312616928456747194900819226965809133097279677226201775046908284908183562036572503524394684095629473366111593126230596807998664161340595877707152433398535034501220491049408163091062981102833765001708484811574147925024935003973454082410216267487130297589092604033326628876139985673336352812581359930002490899299292904331070649526402410284868306988216868428508014212706009616108033075922288243608739616696469958930497079284197809966540940086946658174432384871639788580423561244815151226179856002927485949138984007557116221403233275459210233675968289408566098870428344538057882967145633395602448263046650673048429911428000342377934134690995007722823343018080552487978930300345827476422736703852693081044804940918805819615212471774783930520119932081870781031104456528891491727521723467541992362392615972598109920897501710425363156364206072229094112356135746256353003237013188932417213411659254555150115349716523492965500021093432867847194347744352243601150292067159092979197147333699302835914911694097159130939042112933088757997097504869770548193325322078048393138943980062864440702306842384996749077641909984130706072029137989750951177606910561198626577903517056932827713551550819704383820197119261689454033041455112398905927965767062404829541515182650600445048085561774942989291519019554976775152926353207281321869682284276807797271960789258373821058701068979922126307431974143796495244276616667480984585073516172029439146113162864025590862640115342697776795232799343944561867302600814153559916461876602818526001762477694803418652726757974120621862630499486789857585240944270140601686353195952324683931836131629902329935373396124216930884331070364620693092478742610672812393841031814987858527077661688263959218714226142676411731451418325383798071750593561260567232406310020318317542946507193435369991722856111620327121869255470499289744124551692772849744869135023654123500120183147560457074394163423887234831273277470840491996604297390561580666941147979157656584260462028096206832756170961242390292342453183235145532199801395753570639432530157000002373440108615755774622029828828676644347797002300947086453204995350648474672139460696336037673794911374651889405827046592841228551475705382791840052104996280210162775900197054602856264576555788371401725418832558237769810194067981368618420095138992253551384084445137288565852979367736630791255602129080880424610678267833510452350436711493806507552320655968848538695036007638625903978925096289717781505780065856687945928344926759210247630154704599959639437040858411633911962532084057840868909147792653681735258491875934534557225764947367253597953617895575247237376451867546792138673303542975247539783164418686642595160875674747286655695557596415787970786457702033486690189088232660036812378070647098591628346339158593370732215026356057127308725622932266989100285640756248428949372804523421292769742758955399212353279909428780678015228647088380686959092798690392371111867058583613747393734366580691443822511572253820987733310057827596966068904819878176557749640387061863089083314178751292757847112838986386081894071319141678567150101349513748051821743252890361459856298063123858987214256841363981394758874228801668938764718638062086286816812880844866877954278342862880269751986982144256187220517727492890701372698422020940656159140113008815941100075271538502620201475047521161867275037042131496671230743268264475370530407593993300640253866176252693984780509866466832847756455343878448773465639735791538454175136878071339285782439432146817409642764467690283568822412501847201906007386415274252757468974680047403938728225321761118411581638091054290568695919979499882282188384249871287517350637622890476857798842928528514966410858880339089250631895750386700060896881999736228126300663140365639831171416165815788244407616341907180476405260267560284113727998992843053225977435519927725844529412088327575883486151034075777249454301058449121530933881649979334507084376089489507478228366999210696493243133973223556737430525742392034116511903904290198390854253835586980661200395658416991292646871409163148586699034051966062522732733280879093412237423938492467280593022707623774636925079273662775191169824878433400564529795765281017922145226491721788674134762501941942401039889544442024664821517343148627241661818905944871372423380596981183498674576478545495660961911920634734650035494980678029952191818111623613762671952863181377792773368602250906024227379156502292557569270998675294955011869014213566907087969009892210843435481901181075179939287390233449661851543383306551474846416481726723844928560984488167595067869012292005598065617903565723321931312152049463055721934167123295627640258042329271759077652468008270341366017887150470737736730782237435863509748251141252134241433554651752941562083004262767534504202253397195259950231573290984602165972378815163342429517503845734133581644221600533218554831977700221179145731963795409295008923019228001475036944788801896302506130757499729495926648369447555447355980177993185111258949814750346739306323234288300138204184324570093066294515115011974936977248840564710016633407878275595728015983268608644231871595484509245804170496740504735299883788809072355241049002387446277218514350083425384598648463621487464970381250529751047940882895415019057866911913415783669809205503519637746553040267049831017149909607563695274872894979580511814341143166125810669473501204824029720286626230527876829062125983646547350712523107849752382610549178790502714956869725628817903397028696150918584336987199327194560064247161004429809709261053209403941709075670773237462561407538544080004348004229683978062301192686614828915973927328848096132617519115987390326339597463608513888110766716229752560016343381596345474017778932082682629509092944536424677553807766399372093984138715006137232909763010750396671981166676855570720515643848893959938894441683440701355093880187290467882331023342577082068366461572486396249690355763723997491011906849719188343819634755040960433680061104004928240016313099957629549457935256302937481585667813379136722981869011285089097300562177428858082143934427307021941653388542293902439951383043912084933642782282414748082349481612714761692445910104112965062522495202825609068115484059448191490145191921259810956746491516165459301401148901012802079028917591962261861209054862016696098121948325571490591173403152610286980083557439706676440573691508491799418293495986462426053506664924810199006817171998528710288598771264297582336835189758704072208975892058205503375201315303583650776618286866913046890355239409097590160958494029927057186596372625468662160350518788924858024945869356059422235001697783032392718440762638228382354499609871789943181213038374833593705619156306258952257518600992289803257998343543312044880559856487799537722615601360707582015184457588793222073032840869806521061037084487792099472278752526164477838119791560985008551736822033714144189392313084062161053650599219858879801115131423588779548130339685556765315419874262077096118254250011867370108972833050006823500330160774965066453059158051677867052305767827385385724904203436428667452076191214997771553115842019135236122191531354020517130606629723887929579547284947673143127475711999065876093721054622129383013169872651915994281860834306767166073779934804858881839012430121770735853342006515854045929732756806578045600488684448643624373404673942284904201351189513779502636725911014020009897681647553116623151899903453280965901820379640829871240093929293095259111220282268418134211004482194580307032542257480163948000745970153402514211270958291268301044645395319211523429739055591379145299681599540499783465461708369443056035357238995539645726387114398407580904306543285001587273932213221796176985028500787911283233903029164942421032127382544834494762935441901310366049448205949667995568157328367181079743487713358689851788371189199996046663659385515676793043738755769323870783236646228413386079753088008290122434276738914034109576431450809943400768470129879315572792228196096745449017557110736709760777053350772218813593992900213965149254771662824364999881108457208262266607542729735660150973464161483947119444278178486380171549071950393054064111609482378761927023123667594781868859630685356227209130953690360123021428457922247568931726033738918023997702389048105646947830012998148472214085714068182695545720477828500509100708772991224971639628631310252638218437500778520954587863734933438122542801275388912046044552173395644363665584139968917663047815315953097142965296473404335608117319072339681594233619866144011154827533315723668481062044404516284365129037855081024870014026593663758712143636355111575531962696320510825641736382076681893986906465847649705470263025139696658278370902809189081874870037139589116849277533397799880518305749660412464138572819689835865587432066003432563555096049614674027261177087951799846953218571610420086900182760262005926883539861277180730683572848175424682180327661273169030095983795019166301386583560905677426827437817521970846483010231083368607659318246172635333516173407193428153305499873651795361689985747804053862841084209033058696200086071074236629339942167851973114317224350686141292585275699567597803550759978149187132255292756964811406629270415504359123892380061690824380868254737700696791389325977490500332794432695502722986221096076560124388176555158976885272399008882008735719849257821547262243778994798341769161733870881474660480791024371044765080924623339530299658025723491622551100521140377626867831248420800732259204556621318932276781855424108124147664523508119806499576039805462026356261071575222802955563269584638075228339701096611608398851454457739395080169379606866026332664034047500332064988026977056056375546597197648020987196799752183274130174970064434310104574294082964018274720192953906363010727381379231786473623080139278211176979950350502795548106769018718935693687746017583912143293327888883980904517175311985427606031796193237506700702327652528271757665358118469720740565634022682166924694701743359750284984725290390106496840071931032348193145618352128778959681960918740403331444757213277571805680517072876901507126544775116847898474787058623603881584560177583131479706282470473616423975597633862100184523142450407177689490803274951973416215631730703890554443925898543670880022380827508473511359549877403641766412609763719428787435330247537239743492169086755579610775852008733920880397693921780148572843066491167660621055075544187851168239151250786492660638403349480466026362856146263726859741317126360555863307797106568279733520642337003159507927694667806200618385894576820739993504017887101326240208448775723609003922311932456236056483463514192041689684839459061932938115555002146875953031630795933613126829382650973109533143701646086847840016004895183255654519601206057869897370412041577169117333012576505986352764841796922262466117801062019171163974818170536147584685952357748745152683326060718951398683397037754738399773976320388329920686673304071257096839668121566364518718003510238570869632928513916102153661860778242371660894346628432939624764795684920163038947737261635571024187047910589419074547534442082070441270543163954031008795518872976865212487636704470633843577047711515137390752210183997034504651198376331261411996081093579685964169453169536316489401425996839281729731261514382145550687319629442915676263089502774571203284895062385703894502631556119318684397352751179112072882093923446325335577833526280161622642424427287617604217186312952550800718201314524947222272601654523466871280723985686019890709963576808071039189318665644379282039396722825614643379430013472316334493169942229268795897856641420855485208198434556957133445895022643677170478891875013664922635499705891123085438674772398412153490740416880799773230067572669811429547592860868750797378497538601399891888864955100240274189062539347869812130915497788405769259692487884862525851715017629717404936265202248685412076223942491431865440915766282615044360783692079149379761813141610270097084881059161354696769333274432213041518199162154916372069537611199280844889915951869455584132603311342847852166865844832417448169878147458915365953509494066500589615594095540302877430650563994910322119118693481713992285849324465845166471863109569869297474801836056774733905124160824611976454991647337634669595424919488666540607113008601166980126918753920382906375552029151957350486501795207231294372709425968980124525988348032121957411472837477772493749329914493546123668925173956770917323053767997456755163917238332733816794350321134975944137473362136079212007323837867228614225154881975948498147091011367666421126567073532102956362355733778586800231698115492527331675573148649874515279421814520778145002178965212638675984784954469303560889410825684687304679830962408025553338096605689021497799123445466618686616000014518750338128759071575906992308098664314577456691458299485071481204158591950027887186996166071793316780951924499417630643502351362071225981900701019688025533495445733819547074600000245432409586610383751562620038117890816943707198502722617350303462601206482005225863337942802837265762149797972948478414161524088276552470211797017620336044637096215241023909721710450135357272095938686174337587131509240462205491403738261697454027040278597424109838180794327383747973793906212464307992589174231922715701721959116570525082867842441490369387700401719326957166876891366962696520232933639063448524862860345756598168013907607646021097174746501038902472431098410489402916216019881059974082529051044355506984002610960009152072602001625141973481775814648441552882821587248591554473542314557953076857855918072913923988605544438470970803041115991211261716205766700526546260445538645639894459083990144739518324762396210059607058541458540342198625923283853510861354666028859461344657310106235464622969624871962996985857806003488636863540080785984443145281996915498502405039222431092076084725693733278091251917017556467288183307156144687859005358473014346403192293142359535105327687945422075008187048170546002516107113692184623711487889980574925240603540572193086341863935926722672114636628475513926790589109200975146816289962559313922112944288338839306903939599238865274111590225576110834134921023459309545055643521967374335623461963813996437448146861106740738359623564979748489058348300312080291936395899327202839494248720105419115174430975229706444741755170686881514766122910276949370944151053092976711131737297070030986836090241054559988079029037151448215293556400034668076799983176256910258227370198994833608748265499095904125191739178171959878903078057272940540318661403342609229155201777522249558863034871479460169867357013699829569423013648572040123369313334491297314912711343325024491013566109561543030954232738287171218140603286049096831755850292185178338479490817268568578176277182825766847931771383350740935527489802167572317882143734673259614776275496183670077019833229564869937341471680366968913039526750284548674548887242173029952185083889781267444157873793406857042624014727429008380990054998302947720187829031929744883220703670610139909460881067616334958764931515914995277222230883242461601553425762103773629940888449523733796862793945906069051723789086605835341750275368747548993029669446754234501569685797846496318623341510990891964089616193469162529105099430890948769881771591125394250726003113113335405245995395952011231802950161555653605778233313984311207043788579933461763671392262786279280187224277993994463723575918402969391180898650687060147364455209638938617106575481109009189983125639287587212359127878878479494597423586870312968151961692048019075228095105856106032289332696376217489469384751340031597308648921756435087136692544554203333729586911327530861570050343651691221330412420460727400718840461248182328446645647666222967719936445984140352368537734460941207881052281855920157457896295892321219346764632579686460833308733720437266451424655976154067290540958066183179061076567171368191993180332970176755957912946562122758865542774186352546980447995562152053405972032858223013055669855249933679066386962106727348143123322922692170470000018228562504628009240761182477679866463101332409531922257324557343217150962295866423059026589970830915737044546233243691101153242487862850807998749154522290639302107668477941288741465990133808243690192995368043971714020109750151088432750728325110197082410522949616963614747824481895113088661146310354796152989516192831004207877948279009224036032713754928465761697578450676306311077497999413961201919621624677474663242945340859022586186437214010960973962186189375901286313569311278004437126702579531382470043914619822168347965230533160580284005307733703695455024138828894080241881002025894291364001825934802485204727921151271330020326700681012056611205959770454130620369614457564862424762058183372184956869351512237247828916008263091532628678052053359448481453140221157133613736118708976844240974179823983956270470656399443598361273034708488694000927227106944450144583694318488568600560458326826958127755463437902491232819748484664308615506939899607254881068081973087859710024782334318261751468784921355086438350845476555978666217878271243383266047890432010116329609603829906451413433064528872651936535110079151735499878379690560218083545620589938982229469371961123066992487122625287757424144252615860152184386480507133715366781816046021237427363898002423378312546965936025246661804355462830665266426989630891598749531272707530260808907897975709517486032434355607578905559847170046355671827636750050957844350194244798249938868611378002493886516043412686745774670947107111444769395485407961587323716666981449860335219821232913015263060601381825035579556610194934191337709287481558741381777629278002432259199837892470491547291889216757095070231342255106784079361928436155486833827869248884749312757489806356812894182735357339528391299407399108621537997211230920733784433708580161270433946705618870096161387263915833824246794325384032222963632286111552044470473565463025755602669413731093585325528409103874739940368437619596809890798140385836407213032186182201884890543020725985812771633735814451007713743274065791401040666121676417332119052040311519096155588143821787400997584614881675105937015130029210801200578791984116439447796106935685988742819805772996101273753910710381721660190425138168414042811514401254504189479744597032811034442839981622191809818091075585474778918470570739752215548387478809879417737477936870849806957366847009319975460249608647910001415732707466879240912612770504878804038782907739805180875864499544112953849448465313108435790422483166542978915112489972805699364685345787282983830921290696251516713555434723626167169300256763311930294293082656120611697585640542609266851413706256455706255697339830605211363902787083139234486655978190580751897174205745175164892538149902483591478419358423905107776486717669683761568590011119267930978307199646857710543835684705843874800393650098264970040911920279125437639775353406320531792157687969932547301868136604497104981530671932670150738415490553777874400239652429000149540924071417801278963947886239530706548608169284209943509800407309562987130676717367112506883145331487643195952900489958511236361889245787992047045356157063017686664919155190095289478270489357615476152232276625999573200014677604223348519169263618656702227627878411043810081956944570527243680879366878868737544423981455125835179869234171579080664290673769070648961782727146093832061862148738221108439348582435045763189900375324825794812865861493408729831980420184456975148164279850448508017144526244003948189497100237219115304674091715565728691771902631572428497586278992949037435567494801827406992080071056036470145746908638110203247051448561845563600903537389634875603710862361783035184776983197922918823912987103705003120234409010523963538654455233509643455185283286863408305247983751987359587142742470223642113686823001735193310623975009362849173528476691700024645898221363734509996699854570948735076888960088623737793007166869911057622440603740729240137202333181695685619065106706764509915512612071412042754098373314790037316079532031199815940679321029527698935453380750008261515074351583248135248058862649778534762068908059833795720820199955028378228219812080004622791855770862289589211588800571083808599830645226797219357365829425755875460382171131075389092680239076708318141676546250460392547674922059992551931938635256125077932426712798298650561294404495060955334204884259132683501165149337509902922073110101623998773051668796498509182572049175423095506399241702144674094466327310368608767078877569657046298440277222175847428455786087844621085699416472867228330238570496531652066508006559432551055158049205911810092436716408735040484728971295104171478832000654922780041139517139641789564289713530077936154404597894048245480255482392567187792375713706669360327389224723069911543523412242290094812427182054192347268934659315819076852825126738841946431704633397696825175787632488540630155261580605237875809308936599105382704345116568686993715249780385294366295215446900916414041748890896442846853328143080124662733539606900141103303755703682743958156209456918437301277998701605886726295465017451541283129150943273154010583245147406622938519109903084320174415423672789294295323199541638194453038709518240384312751187822547920565282842112576428208112592971545602400430861916649372426927861709911973534177788923475989511105349387342297322692443710210943116764448084828586172613480700006087744414489206553941955030746905687275075808197514615336346883779920893380902770341436524299231846355061058860359611025467567616711463430410957322565868653376224298276209970238839961681114172084746848076841428679435733880121808975732590842417321798977805534603243368695802578974152360505309830519438311802104728299922116283879665109716660542993780731441887784508815787095830355109864686027239081232004716681450415256942715635245037817570891685714778269782515083786820537239179654999864255194863029390152550030291383425899904319042816528575155166544670241501784675462420554046557975216169190440812643648313554814652907335900048824533453451894246358942603520251434475544653604121827743348544212203970073661677469569374777419430887284485428564600975839307470002713279200183571499366109163006378716951205541816915392611793253843350670546193202104236214993342253052357637914507750684687242448523437038707982465866243346004395236557731299505944858358537615567316247160848804723417743390575320358687250564246586281804829267353621949011188753313713949858387723324880351131602887475941331291975802957195195947854767064050833682075845846313795769432145609418077002924934438515890816914999699497297599646233857870905996844001092211291807934071334108520777109102356443202169558449110009327627643425988632343316861662907969154070710625450783005270577005033654014799412122037754985079104772939143538982442013948808674910421573730320739921208754895415186777166294674225590657531369571910368163132562118782366441017411122162068990394077652939643563192022582398580127396450259841917843332115079084622494560294695368381000573493148334853509987364168972389512365672089578936011228772433026185696762907463204819096350985066029485003064931958497893786590187290845392144319845236403709427394938694084867007415156517460631657157933803696689253838199737667960839884620365318248778353388353245288855556508522520895036096253451498372059046420913134797189338702359610287469324697643812882787458601659588709308289149962881939428212005768410488538837956405035739992709542603394002301084864510114355857538210922767348994120669389326186023708758218765930607392711871137253926592505949099115694935243706351443085396941037537294840919900107134179691087315790657655570614158034385961387549075547303799121593219083374050307591331478388690058764384687903104028851279542977985937734303323911496618477554185793445309030501424359498993196209765362957248113618069831290004540783430857402522206434628593625723002525002315931672894053597816344137727855928756401494442405255630449540115581912269375495027740190262456441295961148493703747673655118815911946709510830384565763607155944286835848185034893392523129468383729527759214135696417887059758472161349000174437677795661244463855097693805208816245374690270463708761241953981172501216160315798333071282654027739009662675647736383083509531343333755718396467230248442537030922070025676421510380633799439163518756625470617980388109564028064052059489696805066168898386809150112520866475071716356947329322133912041974774273472636097683684205496886144431499509853224305660061231547069338113621890633840227812196912249769323961306905478831037014865693936522764868415625539557747333997393148720171526129949361582550975524679389646661084168642208264045051139470471297613621420940493217166309582015844081007892461185863964883486719696485776159525524429038593779313169151228594837471244202816568605349815573694418203382408314263465045857760198534285195932724167958253348110154534041500682566215064214968578690049974229398156066125184242492502790309554022276545648075315095518066194048671522273715260815036012090366214952178925756277395274057205478727389765582510399231770709879892655714930103678650793574369594346650541994247278149444995167802308929021685589113472342722734278085898308748593097148709912315570224750178563664338832332272581913853661184560032059199781891563051829985890319430446135754387610697644880301236009891595694582148033544295916214958675442684109616317703191847475363254352781656236164435194360666682811457142537259107723647982397742430411212601066705910116089667661623760395353282284333796192967594004498783981829869978614224359118678414389157249584429219323636759079884526079743629789334354592165216978850040692833812796146278446045618415860763558296418886420982982730700620454372300547574879524129440807097378560624272921082766637380011114021580060395352277852634989387509023605295602469520770621574852318165547688514624778091917057046672122115418958092569129856005015691267441816173635736542681150818184104912369029860587869156473055408238441779187220778170600368200512137551043839571283320944542800871689405966406774133809274928643723433561669972603734108095240071737528493812863320032536077540532149871395144242827356968055507470803216524955547608349772520167243048286847030513112911762128641312752794054688552147503390152558596099809924229138426885510946298641811654240419434572925925870344821685038593077378999829971938300674670051562895123002807474352904002643962855487304587716744759605763362362096700679270195292044498508724266551482468809183487339625631295331520602919972739191720987497217087995211475559287782853824759959613780916830471404306526343195374087090323441339028473307754511180301515579249023776815326863760492690458074709984809349239484768048429111248377800231801090399693564291750770605199179709567771229818166333387512483507801223212262568624885156064981332332695823951956417626595536913402195650334578517245778684900269306292298492308756197889017448226389546986054403211349260683708323505212108211380516307031675106939121144764843220552077045012053373728928869093748158007927527205825196998296308409375042836771838156079522494384312532028752088259789860277590882785035098490996219574465961253531567848077105664795907902669779944753887774923119770170615918236021190761194184884249521128418533545131763865450712435794865564267403614814597214808985762005454163943827123454862441843273740733464894631915314585518963475670165917842032056093968890663287476330198756211366688743130935614732706370014117350674769482025513459993428233742697237537756067830212103832558128913129426827946190812180517708822016806221104605727294351589499922051987614715475083317031229152999400878086248628947167254061871905607420193064239029398000497637211104712720712097078073451723830064345213244614044984605812160913987641720512078876517538184313270631213129160940793889165704518673274668736776675546171449868583981770592912453619847179647964843229488525740832305020275545083743386936498668715595554088870318628214684579478123908819304330378702027066255037474182356178391717854194160703641045730235600995038346631345771899597188120676695256033715647379738231383257814465188358578517917383340009413454163245288918141782249529604677459299647207668560189287205313221472282527162633573581153066837840548186873125480049667532341652725664103212601619642935653557927930376611078234099537258511762322888883372031891920682681787450935145232738288236104247850534449546646361517787770199288021983091449649527478914740958022478213353286471302078865049384343309297311945173053240830168671602936889834150139534354350063150880593183037426936320497301139095993016557453757555645294309075224549075506054210622935996992706748285391826486973969535466875856572981428481443546367791491942136703229917403366973467824339508425578700062354011152379253685848175972205563576717209165431759286558000289953125853480375670992079126504429775777043459680551022004172384834906298815490572290846033686911973873818019678928096166960633809213095329595400444454483775281754102034320878086476356459193157921090430056706773258125372687579072247998972691591469269066750102341271633237693785881676016051756071944712063149123002204939103815462893785615677510177688348255991591778818076967268307162290244750053581601961458328540730808722989906791561141064862541149440565159219421022861700614829718937590826271028685539324578296217090120681074559049646587159264223194683778870040335691525917446752624980948460671681427202898601495048386263131066179125178437117757303914769116432204323783764152480440053535421555994979986037353353732921124077200974617622158591258444438313976221273094936737305434448522008282547104072472886091678257781281178504182361617486403237972268102645798688256519820053028029677239367768121623663231063474462055283049967403330371041898651215647523374632770474393050759238387571998205206140388845978747485733470483787232962214623835847851846963505136027564745945005538959053473543580448460357442464586757945893974632472591195761586111757399059418868195339262259185887952400739637507547672597295283062755612745101731489210112872766770448753695697783702675478013268984943869459202433597352584245514117599125772723325567660752595150468792197781377666479263468101539870149937565412268430230031895877979316100795220048965954284409266556024894823341119108095612515913548118496442820935208360547945968699205852319226148173693815156160264740724347466381445814332642885071406284098915498572135480859351381487743858419775188384636524193417200522457047865979109458510087978443012105154569643345284655072991115895942104316083468408270807017608524216347144039609975766519305980967478580037448972624780195634039556807924380703698221454258428258640133417890063274421322918446092422660023579486776917229254608205851198780255859540110661493285770985123756851642263031236446585179421830518191041010013967828371100234256083506358359031739568552904316014191999452766658330675797158643803049143784524911901446251505604144652182082880124658226786419975972642995223717689598567135590942349287917461801889451724683955879213568196383782370561740584203925595426880866843937128102077558923066039188828768816262540669789594209547518042092679725716883439298146152077647380700131584584706306863878357740492289267136134842928108241374871366812617332330521533264538177347623134036623429983229123373784320800656227519944999741161646353700215555282422828554728604880474801756621071176815921303440822858111139689490128394153481474610176321504752559959081688341327157412283146159876903240650117390576360747415887640287242052221625218765150698745597565097570842316416394254864636470774094200015478447880178649658933525688397173604299956624176366899758240767604672487920940495759728856355752665350696378367174236981305826152595393904963699247615734709415954083198703282127188338146793312233841048449731347035962903123341756275478688548297786366982348601488995300833941168452272953432097468256067727210110335477736141833212978259140051170548150215291257348531455734650594727166616664963391639601527049038880770593734242176205882424358337285792144474976024985828559871341179700146977501591984081627434351841155218367867790620115113772096120285842432166775474801978181072073961650809761632740136763151458595710597041642335902696982636897967840645986778859856344534572319432622671925067742606871506125463460890242089501828665164800686586889747365387018118714847616062434598480195651088710124950003643902412446470645194459894206765914622490421247684099276075608861673243891666864593261026740037760232082325692200806003615484889337365856771354536011472611514266361148311682024716154395617443827531614619595615784732743068426464211764155432325819036506013249232035691092351537456691621180667900236440043911864234355508753984638798774666601240134197744037033765783858626255740516687205633152492860620637801467028452599841865858626346411052416571761367811551443357876017551866564043228555144992440545063549290849694945853190708864378484100267524048908842335049482924370971936024764336812364315387236528316222098703946341171046137205578250060477896887325765229868902330455888358825940531969468058886137131235501613473365343444471503811138180310976185965409730665012824478802717659654792528356585635949482436560022531734946229913800883545212335860027376618100831903184235068523504905809173751776082804968813061805613241463021402699289160418250868951264694008104460025771235249169992542127150409063772707906809537282517182403401494412088619370130922998911000033650232280016485112048353343028803549074174044498207291101566721140804272543789196960289015377526636455082482815125128995451849613181540311606082686615145264469666714184721931785635093901694282073962378276459538231466486612379786825627266310532692529043186091477070907877957614568552182477353709524849006014760427127183086774819607842610345727362659976967887866907222042427160750146134569630728286097504284642009808580642014842762199972561417101119004262308344781454347523193355498356399408594135859084526019501660628618828752579870767901417325865128182788129295308516698611085011861551172306459858781310621968980252585858472022816319383787773894717013927387304150544293346258901229043164971699586989979290243509128386404395715513808949848768042929417661701553787635503832315366317742389753000941005312114551996577122561639229926417394934279291660069106597159749175103395652982318444590839151728566892726671391308637543998226903117754274897167537384942310084668268385080821693979180987437663206734907011605994546907183419803042695990448135410547166740265501038146476222815003601867829757176605969538832738398512301979665595071447796647979983177859620134884010054507793790762449101754769033440219062326133486397879597565030554200567293375789825061606866365057839931887982576529078083393734497430341605266908348215313799383966154718521436607707520111503482263315354872340541877663606428498489478469683616307067099325930478856418370655815008932869345781059613106821474974863876114305681992523913760919014539231291201907053064649881939148513422310478757716335571406412272666741043385524150915899837858915010907013919587725589391243115055297444830665620733786775976345919673046496709845336171307694230275782934775896620222796679229833038214603524734339373383437438808071931970071841326285406077677108332326391368090465056191144535563841858620787803485082692127934292281187847754616704348004185901940047027653974815183185734967938954822638437752710275278647071336623377339330641006878946319111588000107131380964712369317073705525375076349798127620240550724233509840166410408189148387434976551037191727331225161958004061943267618370143705183689714875125643414440228936420646400744095156713066701264568161598510934804382184899321771839962682460084924826138011573745088133752675351508630885910091115250530784404208320762356379344568710010922325778363340806175481408217539401170015049420650848931654775612371245861593559815785040762944538862757047421323184604099172952319444520774111598226947647276598227765763735981135061223550535066093896610147838617802851537436911176785863944938787851844488352341695285436216496315743550061475690183764590122181769696400628158470914245604455705369488428642534321327128474265245670286379200375502736948911202322080863441337730394263363312412810355439876498894422151515611948519210269361026241241856422160749613973412209290133933622631284197700312380443654883125587676771057094342049164145368523154659320174455088921267472091939755141239482827833043065057388198315957906140307708674163433474060189188044098489748365038542525657110705981708278045650999404874885169969320286807193543629211009807110564026165449149459728022694296158835549350144860174665918125470549423830768492043820378733949062960205672520438936055277259661384221500641431025652255730642553874105539407151485100727450793849792165072243002269029431654280169227824026303986850970864723104694974227627670214203884970281207310158459009971617652535871003085307586887051303822697786606055402507243146665267025099502012384501999318776770045184970301389164720398501319424907228400898650475878625994770265731633374591329609176765875624698195132075225785118409541867174058834507662319139640351154725663817718978750174768912763209624095246151368904963197443518748614290675208028648083360182641870566385374039291394827226420322101283613411793388571508568619844007436129023101187908193150274466343592616638789489760142241559179432859004846524373348469642867284734090304123258706040251228201533420911534490350062333406160306637199457809288915193084447785553988568222919646164402340285764149419141355145104242940691531719832266134893076652828010207202255405338330750905435429285474645444691627217332398969598456548137523242668076283560829711719604732283243808009912264487948173738081154600310720035321168697404641359921260393895777645300718656328638870096200943460456772160908123370063334407605545026366835665555457577286900980610635616835180187310587986609978062489937079941718116988389894979743233627179907209601077145683875746294514667805167647334833756989374297379846343021438636199888037451766047024790902729629575473007576410301929757035521455438829407918165966817159578461294106208565752887975929753507677628449935001388710708758057243585790993241659058659761265531925965179814363170445368455652823264903102429669749561708722516834153443610967505940477689627511792740671333148417933229043485635904613916100650908443018726275131452313320496837579505259871410934763075610269725193340993483880045842354821599417916219706591011023253840291243679959533498985460060803844012008544613170633769730228953517233911276003829684463787005704232488724749619447234840999321264430441092509866123672739695463951543260970776125089805844652079225027119407541926208213626195329800015105654160572766724057725708960454685095381900151503240483122012033555744281037435933702620998396368274238830708727998280932154357859270454884376131385979281024278423878069112795401797289493991886395369601614961635662093437344430711121178906416905821660066493200798802663587367482175470438123247879925137694244924478452546046611488064683699034278675118461790957930969172182862587546057352274693200520456466414256415794369458160838455779786041808813952860547111676847399398032525103220508145341883834834737446965137564341810820246827872445500189386888608420881304960323135545197951425238722950785954739959043250056099622984292244940276413715832356432294546497527233088486060920499925159296596521350632696324431145329302528644832104058772151481172431340636999079640277379512778310824436034458800915525661223633455108163600878886137181810828612945914638444873882860484995018841008915600574820072914430433127831668416402225915502091779868628619354491553483941986997059171446368163599808315289086766541077837414304080389686900192723983794096842313908727597901410201286449135859206083258651830904484492363262766049599185245917872967697796221419335845358566649540980936675175691027097907081916741684638246135277870581659846211009403504591249927866869913629468033638395804991212101070503043089383396944747711863268731445005329544094755185833889869778036806799280774633967093052599967279092539552296102050627195723170529727704212742226447257308326033905419287124280036509430415754004522267971777406343736928679282702382120689511808624704457973707005237415893344735202039783364663112284784426431642505353213362937727860356234236448869017332338218021241530592592053711344689279522772499272065116576593045854665216958813723844989568836959281306955624485493957515198303331355886872214452246024261843848959278872892396201393934759913022550440909650182235292398176423770808042293987063424112470911648243670553981251473930270867402952282546036407386586675904695415725195783999207912318100085120947421280175467873202147628103093068852325537003478898601231843596790643853308142158000312494656693129055718100859057149373156256193600228041833073586251821878356812067461938120223263598397201957555702985647456981082605638939296213180958184120268972642593112824385057522194696622828050884614765648446996627599231970340064420799787018632395664520419137390290381504739941213703995698284070190085149510136370593962973210882870237820504716809450613411080711420718119131617791072747207073628623748701355617583864209080907305574028215610393538549047769940654213012990295080821472627805744057800086276006636458946873200801005091651858448683086182772164071627084271745235111384870461048807136603851879377094713630158101569767270244186120092814573715954862116047230189366168281829800143247715578239848779422291821039109371889723640289267489037067528731734466914829568394758365023118988962899167047614444490299373476154857548267290142504963711012937973716164456435135269242397527369426475376848007269075118704855952677427838890055832625952525772834183986526224996131184222772306346253901727493197996658027511575081066572379164126383419520093050548995289027858575705110621588627601711037797644012084703660022559566883129934380621373971851768379660386723931819929353735875610699195847642536948702865351030162933959167688991204671185814387003874715572600071342826088972852449210716134081120944932175383292154811543197148047531879786250590153224966030989458436968282043378458085272571198986090767810324328982589793219744636732270056903706196012344930785643781108568915369622387204268986850268319873836098313757447168223242540066096427459036794123770732840077139466429201087891787958745138759806689730869634788752397418078959981088299282881889426921577374450210415897964051000695965292757207102650309814129077840802038931963267239954722336529512543144294953850261329876809449905838555449808547040602269443817025474352416334024473562008508652446193750494752983231701483336263074348981198545602317790842305421371747111790512614409003392502614356540537705305186880463625240748254081148462366983248564303709520239380824759327635969471694649796463909210355685321331991311960387664122655103106591130710233895362496981141180343660570411594251114936427240742105778372335691300111042675786764454082310399163449608969138945238435662063672006183232943800872991806223748363738015953553631996494760600784666632787093968391085939673497681701900621949295573577904879451804081344012909066111708599900111227367137197131563350996385123836162097570727690361965833059209770189223949278450075993606590988992792054979502521704553743725198725651235601379700410234223712231016212253683231929249303523787118652515506191577915533437985364032102707670812476936253874495534407349643977542613707549744476358892356078995987999843241722451305204808506294648025197542694383539865445831082076596796866076054847478523615662724099652865383637554771420216676136450895100038003942396257026146904306003185893913051841964647838729746357278276355754048215165485386774487811513891989288548201757412497225813430186940819973828410870947514013811172776365902664290825236816265255466313163597077287814091396963731974609725541267527899915113105507035318944731097945033137134584962203723696471109132519080692463105149961197001470877803134318870669166204936133408983214160600450259181113605869786826819143746313611668597101967334651525100049725446652125304046225276123653300057435338849152102771858959053959554990574566337782092953567778647659667188580723060710792813529469119307517125749696554466321832625345353782072694819018570839330401529675371708012271618144815651707826063701111488348805130358597060094947234492597526504564365170417279230887513492968444631171889251475041635083695344812372398148534789766095466335125897364814660878156519472126458400046971707166273654466390132561888180330556645470934089715252155058353911425342014240720368749614716650453436476190934327842690728292132961779425080117507235420108554371608397606254493516813635499699681836021152860368855893423151997742641780314050944474595035494738708276369316040431122163835935414936771880894142580791012056000276776063895026053821596254824961519910966674741706245336617946549210465315660121494737158657225859604941894291324873893973938925176839133705568740251892611509442943661146216884961522103153606452122516515747114208330502647644236396208682127942711166966373164984677071632766534080398282958261794950757310030390662244174740964665578959091086228779283497836979464064637126852839346587190897603835503150574427869021594156819923226215284123829196021530212576867740919030314217794894889963582071981525656620666751606684520396261232037889623913251539281533034320531911263457125667703704445151352825081644498186092709672429807201361691920084242948120129329544347490415948810493244058103638740050648483361422792319986803773932771409142596751116714694900064848858607811501653745335918458289290851838081011016316336406313199083279029888613082176808604854715854771950548304469801033095210224053348663572256374134064039293055234687246600191108031574913081580243508609529741543932820697996074214135433335361790233032307551470638203261085365760778386034390601363053732203255917363699236909677796438533678431365107130340388093519765628234418928271004540320730485924614920002794840906731493710885216494921422215697730016915072770261087235449106743543517550039575108407450600705469369029892902049131771880217422342911291216551616515452256475108064500026811080280636918964246438173951748912552744911831788687587439742441132320294208113979123330579159426375656102730429333641290887605176382295382793068988289467561354633620174144558643401259900948177763525237383066705714469977176510002414398449306226584573252520671305850514819260957350866417271313394871800571444645792108921250841598141470056511319764052682166032344350966379619351249863925375780436455734968943011331959381307653725346377663185104610642358281858138993826609608587413524835202612868764497563541611124697407922028685706679504958355657955562860958363465423281607854607405891854163215441755584837934334216363276266962438545241869449899856978848620573971969039133154548027018615320437391059552950074252875067595798807987786635737030371276236317281910577640367961852773857485343156938279544572047361614854595895825663841363748862691884099742943972308345079849766067620778091916087284381945016344012997899282367253725257225438481480728888496925034894554951903326888081114372420692162616255843000524448129750614712469606737533573888270351407041861022958471117525370300105932185822635312710437305554822765274502571485615905135454764513646928539899794836901606440769290430432914940876259398785914992377516892604936539178450930231279840597871882462545990626771428022625239903520478659989067090029495898896658540113797009108014706003561558270072226904706886335731703583070578835044374171767511065202021261559891698681258133893567566403794398112104476076561992202954146838590256718068127487271298312955299782520035315270482746881835548235973663691696357543148825108669465822989844487008719121331709406321022867425663591565603577828994228642489827017732657990624064165946492503024215974677328946223387474615615760143874592074337768248405485736621127286590215089749049237483285469457315187809728052085614690943919412860783230117657843385627055505530420542648864223058220505072201833350968523356551860957542719063543353173711965594993414826500916082607172103032597665797439504118543555129804242010258221244990660194830782951430099323907810460679990369402316930280426477032156041019481047549018513855746437769013318813203952751590442533289676009543136513189810675891926027384735447345072375665692583554875418372995715831132543588307582789548872248556723750136462629107807056880505290183107638958564984985340018831079030451872546107259298842089922699682596222891977410354219925913742066778765079451135962969355801801133686119661957918758446541504379446082836682297737011454481453950835606835586354783741958714053466000407635364318450775571895801990222440844751440301057427899053356972913072112878194508742805210920523222268867125359449938126082624279418644337343030245290803422870350543815324761035438226881229386986846972922484746863438150478404324469576561221152287130281294391790135887393594351232736903853306107197984071226183960713734554261128649929196626092175397775135254736636879792306285012975166460107085108321529713706171543185729147341139844446634866282416894356921972997858025991122472236667455364390395581639635493786585334047033641273629314374227970924110466725777242894079078383592875866874493313097887646434642481434307865647368932200961129449322597331329393552217414314101595138274559256859941232114046276189797831813523513225557339374224058547298865243261645793389192501722344631177289026201510629215840323695708948667241347798194496231951746382465556485610401549726951117524553730298580701420083275688426332767829156933010217570434151042764590489814792715343166589251026817619512740376272215073269939031181921795814294862523897640692085602983463884959520902242118443403122030537416995867085726145033500634196367285805811919653297736501169940032403467996370329492025393334785886293700094218993855182912179072987621593910361588124759722200205366914447979556301900144305284366091722126403222652651370937861710526812502790971127127174520434270086941179791144125598520532828201656518518893736235090900182452167619579890472391070013910458725320208175009582528429594939692462472176708601502141808608000909091037513815091334303102679929676673867059122057554656510453884770385387304107687892737476987537462022196893599732139452882641583412458451607131344543281867693512324353045043620942160813852722669455465835256155348069845274328443228735393196915024600312835097059309850073069855921660132917317069780989584884242838079336234683079055345465129484731272996360550126646780394069304426770265563429591190181926763725390376933779109522472188302241682166970860416301372582230795143318711621959559724681590386596998496055864974333809127094456873628089421691307407914370319926860951436954136498333864280064619389840284824185861385302623562255292007185157197372005744033390635465450129432783082514477515470879907117181737260922586026304521030315164775355047302566136468050343404033993974049400769672872285551006396459537117493712973089386136151899914928788477252663300418731493595535659702226636720069093415714630693272018753135070234489214912341454792588085881784825651406273769816529722828150994806791348151495443997965708661810676770697165968074961166002867099553299333976726077973421456925626573292993439326382206038381147562889990739964216774323046437352711145010521693125489431623318474515675854620156590703890199622082687583957866370661566719467455949367035865164539719576933058108659616569627773309363380777446868720071899611809978409887379943272996375297723188528507052130527255814038804138055709962225470283404031011163547011836291739309942687558231741235425851689371607279677592129053382886909089080595977219129632530575378293689502887081279921387692157851062060927598094759345023698505776568820791145158148726722084337916334393713757758458117407099256963346914374129916527171888744421398263023894848201482244660163711296248059526940278957545618927576545059945838350239383336486714682377485532748048553970369035259530236961222819916265418183740252512935628062663052679801884429470092354353425790595070349411621997823325080943700863872842040321247447152381403118343854176638418031366832948489130652791994064275971628198788286249518475121216025614557468542068149051862250378522172963262830505426228370178400133608793586210185504151371946111012484362578717232373843918211357014168946840575120814217349018710835151125556133020415994904675275328082295597852390896738036308834446117261023910725560026906546387795909742175379179494807286693989782784260373624306530657579349509485840421389971071097456420536601522240294760924446317649950158211626077399891092149711310001915267963731003727375613152641525006116119887695637159781367232332694520610864282072215867047341683886151255225207589190700659873549693096424526517148893222076787692216514860110526696729314659857749117724806188073769414492720556679343390300391035524426552332787926327839083413341308715007587962722165776394470707022799992122712809218795552553553866649019027945667878963115514807273497827907146523863036652062325434474570093918581225133553556713582004036810680839002900170030923013129111209971117481971387390052225862537630168674323106405432558876940601453205528269594628406309807242402387190722404464605109368820748046329513786766974598690263749489475325895420384936621597688685712464341554879733734904243970936924669084227680876728012166348543324901062130256882125392061309329544056549395991929699815366566961841526339739832657755302883337698793597589254565327521856430945155766353700516819764646499345147106877242102505557470079079620384941735143005411343679589973490585374836363223985821296426730763192692667228346903045872736745394528671296392357608524796327150904590521367991150644631524354556673259275410670948126905746398128637992819062536063986388682814456220978703639207160551298734470349278128095243672855979385598592682090256964741051952051964013834452407157407803394077465625968462312908434374392064655851133772083285591720774810625413899438684701530026820704440231479936847974584094003492336640141171872293696728372898172888214260172839840956303635006826299842708542023047979645643808118621976655773064656792608751535084109958458836750277112512598362876724649093760102280379951632064066000895093964023487255598165164443479723425993258109048860750211802002348804342781726352310252646301823888373881752101066943500685838780328824270633169558458376727437647496847442729556017056870551438596093418876111607976570923458644865194289020133991231648467554195055528152433543514626619002336123481281336839160099594423313585639808716066483916428915920835812309647280207700782575832935487631728733381111471876366962709103384723370265625190420699020732889715163717813109304583553970132667440876841692596119841378432647618099508144255895321574795320548208147315070897737536731764589938745525960814197277722720327344636476997034302129054574551700798153524958174168596892731045774534839932851407931439416150017732343873137059488726547549174623641737591302750042435489043044088480216767010998579675475562610382279157631158691212454375854499644255231958960075433845629399892030322349738847536240595125834988471229972455346081037558520021758102257880412175269732110852671111884634027317865338471957148282747212702382904568418035830997296056394147195945909553883948545223096152026621315196461244796739394310295904601639704807577600875923133363982661106593871740562251163571010131270513252591639195961522680869976929207657340852756678908375558650841524960537815251811930288195415180114257479995914214277955912342140485864558583149563103526507949942548417473034047688792120008636361921679775744466746226275216186263125372252538825324321645089711365842164673320604028622625386492966107554808787550391832325312553548961914386096351129841115828914999953083337275807880465477237460559367652210153142813485355336321431002131005874498129605172422103770349818275806853714263640366839413032496269288702029926950147513553879400438496451956027207188855554919893600655775422766275167302929974286765568372837727963834456729685996805710901952196764983917315409725602700315520722736146626671207810778026695324629096634611389605876236769479985885688563648917999990192581246103056563141842294890423111119961366775247427791601575769965173815686589537052177098604171663294240529996115819018028977872479074116214761188466679836410375042883433153620137375077944090626096688454080336853459454459855795716165666327620988957105538877148361627094744879331628873628143388588886721422063136336993440231075200329333189636941541260811111864912351397687135305619976286681227917900653757231808897133713151236082733900401638992583319671340259754760405185266760217821574119403599069232265376160277481363444555603051398208978021122835617832762669697295433484039940266972341990663739877955087611055506654819705826165657504189139650275531272871877718822634003563882402413077639578026078327152877514768113927531562097887454999895298737445619676938845032611119558039965056752776444366073294912687829300575244115735990108735510721751814851002620874247953749089881230526887450009056720667744507640873647874054281574910210122618994050786739131798081866116036635055955612360110832534832527922364575903293794395507347172025551170264771458174957291301473086994565849361583423385573144453597775611293816520211495789838122605692835236509930640348215442126848465357730829089610931778404347223444047549722640868483637125083883100620687036858491548671667900380242511262405401609897090920648994541321139627642589985451897837704900688082251193354555119945211769039831581043596486366901343794007686748302382567314975009224279216440803522204749329335580694776623942086965726145036851756965882994006443334423488764913767822514025040563968458228022551517162840339009208660680855027858405392887216723226692082592847030547740428098813415600153644932647110261901141196618369550000179539867098490058310120189558500042740984969901173217196525182040679953005203345734943938927273158545549592704134691118257171832681773792987031383125070723020210660584585695964456615115520378031213702229050393359294328503325517501206483823088134382534864867241509638329265875650269441728234361870491561828950841471210233559176682964187513389769588763825051748791025026395955177814671070951613045349906595268666333902305581999322615514294384019438282602693419283162566802140080917464603334191569799293857043526001752397121782729609499054047650090963062279560998466583500159788688225795837672923596012178717715227737678175959908015633937512400419510316715160007695844625433462805228751333689302548994509052362276467353677484172054705260165479803910533891687413867956338538620928784888422990783574171042796539529208230158412548313637332318870296217368945225370593163322267216244435466974488669127738015562706613815563795205745863859467998174256107141905452799331905259302382205200812098834627177429302563478358539473202679737331595219575044478958553489838043700891729974758357501392908468433590857426584677803033835975750298751364667424184822602305320383370879320216781689731658393203281283155852180896852155411113402903962104058352758646516876845645651623572546893101796292209733069982922984079609881148310999211392063734694975946836936398563396417408048903340967230158636423981950325486224743741680990582681440698811429624210945986308909083375815085679052272283392423262331139169284241602685111779444662730790030825285858619679489552792989866873767243271136018382377341415557447962276517522871496653362430365481756001977662565423790106923008136472901859680712564860333129043496367301637468743402270659009040792539800237540950825586975853731844972437616325628571078710881629546489136572453259349229508870586902786597038091172782747324219628073631293575124183079685072550047277356473787596296693887009727889097383040974898716711457966594611213480990247899647751801012074710370921746755464410548746920586412868908276244846068107123546123011062271623427433031790091445069017613647836199497246637472951747796579503380082150296383518475420744480386888413898178330083613613953757711646894130939733641954365603820332726965659720167559810588159872857619184767582855160708720420648464620219319692630110144579697556655107657562765521570587635469515108936244473578731167754311398608047874214898426670728271092118798087699076576136859690993188878204529060811536492164184336586367969480932166429435769652979519755592945202011879313953000958598337639670590959404331203342978063753578001497556084184778970744255530862849880567739247679215881882851518678827296378660862289248575661439874310731800911542774913735046659646353249855709017924780570607878827778216457891336547392490121745468297326462651655383835405528723088614843689348927718306381553309725923999981209931251731241070299522403580454128020467141137977143527584890792913038770572265340490763442864419843234851448444110548306061067371924292713886595620384149545739315475312909756752579864741927976359581841832311835066012546833715937519961166601742793734009480986160204747608792706286159191817990719272242228844124638898986905569977831976204970105113025381627906848683145832998517995974713703567941700311996724988741645356834927056931907767279505077168805717904849931141963367336468555519867615226142711294922980669716075639097182687393181663038428489981760060171889043384484330317301833406143556821496266949160379902751520411945258851627236823117081961161144118712413127501101185686633719724891655032623045519919886132790116074387439659805040712051790628650035942622167930162935666316718182886905482550705117589859661738417324570371014601742818853386450201542093408853447992997344776776193149837226648999412958171613721845012583387611043413743579371887178219634221503578820483624904291312792647485227687259491381852866043990631705800615188382620976827959817849215049414245916544537240190807839496149928119530007917753174189011515405358650189828271755363095971084218290674740817098446439005237087027893055692347374886459416826947423306751045978708807745886039500874735343482554997812868323540280611840526718634469671920867376016624496643904022707569829091909353174631654784759767547397478050716364886561828493762292159780530948692168405842573606417854371794806746012269908110908856786157979696635344383942895819996600919855085312953551576115202350051991230970744073433210072328587746540008173717471623677175164350293683521389797311373008751340004525978643492201492380955444267338552577500529204645235322932934561677097234229336795525153973152086524695231425754519372356418617533803699093481430263913812008499638334977445706627070997771697405704388420977398051325890156962258772163272417761065301774949196099266944515391097222764229384104270948298409923313065706790501920001794886910274638750944531685542560501975579057696522298366842137806577599723198297096886207967061579859694720709986986689807656239080784647928988698614123600924360410972986822802194419321256905933688554698311491177050955067681869836182615846958488465506226220104756840534263699877549440462735145522018033608563044170190466837275563859372609280764359245387967993452137807925559149895352737077639348391374627809581229426843322359201866088915414152705340082971079615371135419270385032548107400972036058643812502527321913811720560419378485432730399227494284715008454450387525789538050432334720993114755429917490876752226516049888262556348150903523635668567331723167690950543164029434960411116706184656895483715639147324553073776024644432118686255723201129699589208659516010298126571777198057075452148183140027148506611420627003022468206531794226678517069331233648188357519762576501621921536344468353876569626343887185056160978322172433663733804492475305372855149179301887370238143418954048895573939439259733184779236999333005287269600834113962603515875020680932936627560880961961034833333924843853521948314770501177128704412896215663800257378834775099339583860669365298459472130907548537618494639867476961446597524488112388464469932896246605354176800478801004557416890174061057386001608937113527392187560025974738487816862802479071493486886061864188367929738645749096906676079049849719857171453545204064794466560226388986196161489982847479469407321292294877655045726654338977317213808608310687150629646201122638073405993834395031309722871987142529397847169105587617370772703132728820623499396643427820045724483377339066605161721253063082503212058021633230618312277672685735443249166515245037844451019498290148454246839232284167243176480384353729238039961887591297587552594064121167252011118127559058688704698364927471459499465106280092026869131344522288900777411016684918637913018553012278910225524687301011588284518211621737552488201595651956648576912320178569423896137804011786464397227725617054467887375731595798762934504459802240526561384940138009077825763378512588103031009808925476695135001250720779533362692096414555612483611933665690509467787889444574627617162821196364054614349530240626346445345835574534715062761940636450253965160561290160463258172910782269530704017157631580559144793116275466688381228899781519100675209075121103857635076179159449366670265452190243504465941965996665202341968894323068571332077304078892249105549272750843536507513138540918305613740202221200297948622064651909488661595076980514214959275717035502856971143407250570726524426895187118338207031782620357329091531132389608582534090767363923502591997897974809629791320119700313110031418540485614782070006297527239092370985137305621173028578393359983605046423209740568677269710706708547501890246686141873402469370997548591122399876169606147622731963049841521946901775653931033232440517531815822070035634848949463224032007166263807059769203852293459169477468664599788764470483995556023292526715247239693505280476270105360733115485281838994728692165445160560226726290452907717494478214734753519790702783397487710803849164936795395802346377792088116538151028114900659135943399746190252802999710967767278574811506323507441370209321347389745871996596068384258196100090220715788695376032601422802093150846947903529582957599437184488424375949135709494004905908983243878308255023341866489973306868645736567117338106544480076616557258226995193805319687103840394725317630193207653908122340925860833206663654828963777386747934363376651239852337238691339774855481545526367587063391766134507418155307635993750997690088680549291116006337252644574578306530989751674999137730774312925896279196959051272877240002213307264344364340653576442704663909023123153049405910872136838819453766185440809647821101646903827111238988791038294696798110070032576425180987589072143795386598265644226823323462149513278905450171301474476633048189258897479297768290903207330788029183238232026401881689298692450377688695840229996825666615106031955907515450776814056792744140140119761638280198786510123466081022100143767258874172867356661951872188393884726704471981939408560760080795623069128877445687683351605263656606027950910269437661322312617165586967630134012737818315062022166126016915668339161021435336225830447453916986076909779385983328315828632733944106719774236427016976429919229666766814270284214939932694008818272067503517635381753162704494175667838905005838133537834265147619791321846568836515775989278826558580518480618692856066802918543803640038359867848648113917681161454275760197960814193954278188884853157047355699358816209023227315257058520462900817330951092490467338659748652204530396170662231754267511491358142420611097328346090969404722479678080387451349326484392151602830458499046310293102884151252645462741729662273269797974178917281179037154118422920090509268454889743131161089087344466466545820335277593809649261620476617665945832441441057533460218011295342175174513034274827761564987848663628935533098425311598247921948857042739491308305756637748618291884937751780635183617976294262800838972908213499813580497050672811579909010397603491589448400115329579396051090350756029688185213791118529116996367559242444529851421310894752480558943958764137873224121068766987162741665584606412177313559685115948275074827595713138556026154882618342202557404088489965782428982437840051593592747607970814824608768843704538502400841264237914287922089004883808360431286406391949493270519004559576724293439452988279087343003609865622749570211995270844905231275830546011772412510038037000505603110322570738206718898205880957971121816170840626497044174676427079623718964031397282871057499028362856464882695964670292997764809447032389115651141153575125683840587002227694064670211583624539422296378034600537968450341536947545914318334952539517597509403553805933157173181950801582941858707055857022170901551846702186107067117592719721768016288049138273276559179378736435674068537157608970739328732315496284579998356759167139994257576099876261522554493439632494867645617440357516171696996152386924238190934073858588778617154187901410663018532742678966970685283791527798214237338904681716097630784843412697592836470486841906973323812646129902445343307849955103142169200934313966598975360447621993085423957856363671010880610091461999551624862320700735911773044239038818521924670209648359715226882540978616760364901833886692865916044488961362648070835460562525485533954652109636035360456043237874776052802231618410470077984858474402195294328378199808529690202434707461370093889189254620634031308563867428635048346481773561641514798885485325088128319832563246132048269842487761038281871242027916047879593364263225911963563695007946200819815201063788640203790892075187636880128233676397828829923087453557165511104945936168492931329284048322343352946840571087646537565345245609093644926703296759305228968360166029342288539319437768573106015807529602850400877147235648036975281517020031333436291156745584136281995527938389021621075970695897780678839499772609022766518299405560411935127978058680890381275552180719079321272028707341424898970164045313457019270212617926294367212355145503380155940612745882221139994846302578697111800958226616322552982992551180245370301478026739920564801957565929100064461606917444194997796965675693004601594060802615072371345955808436542437842641166000196540338035002070877411995047006837303088684461534460614896880864197885006019790742702589762615132265005973954772554572414064752647349665521406554703204204017111752228034103325935557146707992886813952358175328837749827246491873703632743412427394164693667712399350344266680528486528770606493280703283014494845962965914636442219577837326028279663680963408617673389266733415245150786444300593321452863846039135942017583994598351376590610626666600083994560725077234361616255762896369911463564853652525861232712249143490754454660868493418729859481853070223533096853799622217340947086003653264880157442220245004720140989894942889297594862405715205236618201916820056520844497627658973894432310894799896011971548938725639845354387132167088125399284392846573052452992657936090969335220544904082831234271924195883774094974624777419980493570156393629688213047852362066852085599890048995402232111754757564692617459991674558396719411787727689262789626218444552296293575089270249640795120470618852089190036980965376689031660183615527156355937528890226764182890776113070739825451532435602137260005608045116374678531653436741400283202512967918577304951452928093412177564588794719349763720469836178925613015878375493214801126110378373924282293765535654856945041017731638212880507781410860763598406222400403114956496879355051202936551326076884762592962663437035052720674781647398563516402220015629833351914991195294333850874927087366478128258267696774506304131168711437637754930674918868991470478942555339502428276150211321883228542349780683149931316569680530930080824082710095015439588920934886493359843676885915460786825984789110107079035364536075729518976104549024336961707804979061810831537109706868490107173297618748664886919231403717870189861102761376408484838603117373377122850828441641038470083707562034579154990231744006085546698005710555053474739336036964715161897989359036595454694916673553513505766576119994907512843215729906224173061675844914090847156743722343056071021273616517551491723687681403581692269523484036007350950268821091433698766396947000249836300921647449596137881281401916377232783231698145704728396374096031037513255103844109514644794571430176417083638355636847264738028315874086682544235666456846799916784514321105273674659667909354305139586474058157460040782553688025320055322517112481141636101261226028475883620459634813391101303572972042326250254230594816425055355960118376553014929369037538935435703321298024059916039138342260782295455815834748776474077562502368925876794333754038449868922797251920194468392811929836287391867131593373389618846201965940418098827830244194569713340177853188345666872070430767461868812009926905632823916612655482588124945491522938002172522932722439097200200974359844403213181836031292857880641062580137772984899580980685828477644965279748165646786372361682245681198582928808916277083127645239754511689098794226377196937431518175982625997249720589448338849720614474763120177474685639272436160104659506643401994508011860408880565655334752313138099084620276991020338356688684296609497114416950189830025077514573209598296175338609766249849505155674650703980606797186031169659334076497616020803206564865493191248787354000209119932367617497457493953577070851440036706447963101045695834796551466343639080050017564632127555104515101071138650630589831822112638225856365232708614956354483859482307610894991729238084933775203321131722323623462921953726839712623033855986281122531577832003542151703310846962746748536627827266785214773226925685910462849554202603666063672937205859478861344014283324127447467054609887028683325702890363387172227945527730310354155685140464900106099702533283523398094828310338922516399410891116893523653233973371540175523242222802963231271912704365757495533616551235989252807236570338397317795659655364281329999361887930791797950561518922248695870835544764885992081968569785377009330103424478927683206433352491330459890597031877443351728988631443016864480951643722188556026587076367998843384275627657499457895206991682354840451963689835674733264289427622427419295527126879401010204834954795456089425883268215937297317305116342200577825863128620165662422962408513281718823488529300453212177744217994147641419982741117403249384521333754934430280025407299260742990337203166337243867831321552521094901954265142932406629589126107906168794071804176910444631226145460419905918339224115639745755082926859377131026678126313519828976917598388402438508736505259293504341689870966419653203570991557776474674953586153097800109755224535495916288111050568701775838608460585131184679977298981939420667833866467209155527914236804350932826726452744769920680458632006738396185407901857854888346371911095747177722195198071080007066659922865453813279082370120198795731385012929381601928776521873999010076351409274535126922665112671154024975873534012326498544377874339060550370901678431541975778919452974051240942066447480181262907648179752097362289962920504504988773093532250645233979339597820786345270782360690126366789390453355511290382210379212652719332489046137828919082505526528544147542180171216041955351839014574639549899171058092408045706380744554812680069971757203036603197125627180951266017247099157066714483978497561421677893072582366973721004969394751658405811908265133755828513014713706470764747091143094734653310381057553982008705105461239242467408741954902745195143683119773450840662555455703944560695486237578218212524973971710259137040645863746514039447076585667313851119752206914483100482094474354469894918509102708761150035747338329307057927519408999726578639304796758755665791721376622857098003829108704250960859965369951442705241937378393108344960719777772724737412454808531746076960851994604086593061177381948125429260850450672816816087975619353929720360081269589435523047049946235427784714941801662273977730255373129394326085427277060815505666269720665736400297939724955564748539847504745808061521761598769640157002646677749691257528144802185165826436149325800342129130615182544968820406979746590939997048535035404855670486046197459739758413312407240587653932592985123156669786944154082926406912253677933548318157290011501252458644130213547521791737236252655790744092220947070966045268639497951004773218442973176989693326722819837381354813208556814505426098692864337040691363003460156693579391821901056660962125499297165916382101650487413785254601253579946179448652886879309803058445315906971766216043161680950589614399304583009105276063846722344105455397989769588860656608569001364018857581590234801996547586047993686585602012269246116254399429970417462237064723436710098120012671527587699314646839336751683528542035060122538036132803059183650863852124153285842917547041363827264428248821452128197411498291972240162427532374123429187235185101764991036406440220812478022689391153563569331685720347700158170234850907803430846576114048681753689222290862322089438583990370542970360372966486711081410975600405975388886723814127310665918819469021545939697282332527358541102058700365214951441180202967020910880836498228371233611422899476326821514883792179546475718513763193971048930778554266670002838822386925415195240041909440136054162524036241265385849185263090541891439584878281623253983801825277974464694936441904613249608943187679485721138966911364877508741780886678766746780050079094789100426200543478506537588421106252258980374700592108396729401911335671319884171211940052788363910006420119973916580927980510937205509541563830178861417017892630338929661894143064540488687415157006119860538005332927734458123439340697043245650615212293531113765331796895358944317711185202934891340662095936530644250152961660036712272957791146140865491166834061508625191068339042634205515482865922983463996360263467458220825770608600902539219998978876512873313287447640786113054004598982015497568820774402278022029273096858959331799031225212930432307969295010432419200023130628966088551364908130922926029282128379464752327604289071430257768730360886484681965454867602521428115870517494903190095591024494342795853697486200501736867101413329769907467050932845554221611392304181764988032067080297329801344160617889385924476986540334581575118865001939668462911948501428306873021113469209276721754406111428262437880750066785315545769223002451200384609501020041043181040164178621500922251283477832115348637883470802625416126569036406123625640068728615451785893422580576158838327673128881056000833245321270957741642040114868257067874812120504567271770686706989875394383680428183105973747270628388542392265691865459083671375907969137154878084862772918931908465377290180425068682792128756432474557791581750839273695936890847232798670053869546973260012712470886489134436693588609397835494484994632796112735443851739028932570544530761530694993214560708564271063015559105936894625509252547144323616751618453955113840668506482459845094535287761603816605949951595084469771355866974962525567451271228130238904904049480988251362309201860114840227564283639065036957484806259388626040398491810734218429553724847797976596323762935743159523808210989607550866910571333356642632542771629237297905700760242508141310164478323551529126174234271965140833483224023582333756219574202758597297900790545803743975900735448510591560084386055386666288322726960270934205894832736444088930155777586973064122696007237458715574411457544957808159727335143812489068308829164594022604085852826816408543362716895147500582394800786379234729553793019954313007559975000150788108417619450819208055896033905423856034727762248842218090172107675571032567679361238445766472723891806783533721307806001307268621415269836084816365162692370311887046330017153172406655155205924006951787219145071437044442403540804886550734530948436421253050285703320739148505654261404749318839345407673699443189561056035634042869419563627866118718605991245939162039754035477543179538245681362954853954103210599322688557980278270385450489565135590712637768970430305205295442741878073615098355653075663917370170249297624019151571128138211166152879513954407692820389295276404598539589009630233239612903210939302855111561733526158651835490069427821804288925305726910395497650780776373174168884731278484713792810022802188032412850292713210908233636085924683465280705407353826869445826881308036023387356113192535252243356086650564837285508057981775725073080263484697893282747924716400265960605958915022765080954532668644667424586366799115352211048258785024148402603808441766662833603210654434248096116538247090186252008169845751102782579112356380713384686318644534374323907534737420500529001868522836353604391119623092591731864140475123609971941032220491884927819199640493471585772502782368908161040234818744701765309331587975046130612418069714849328203741116697365864189959147188276357357305978851516062301790107752358993473501023320734795067585985244818906338090879038137037734415043587256948299107490278528042735685866641211868567812318702726591871559866355609316126572421927523723494248851015026579911038553346814303959985913715270121329947657972639777048159225462293591349656340201231498961982220166035034080075796527203966786595363147450862784734942506809742817342063688759408319663407580756831930242557792825066430965511420785661901241711782226787962265517412444755568510529049085511547012314930293077027184554244065021116217853964263337917023849319899792021236767383252593562649095777969977807084319230445188286569107499793188019453612934438078881656629208711757680202339012421463506317721005444571991502918232172469922991720232643316719728113868384953794026106471821111962180975429497208327342239219812459847366140506874516861516622468206078570293544514288991269041166484091374508324574115723684689665813584968973433143514055453162209406466480926167910061015551409215612645469202083716973062679664248096450566154901729096365024609054212961505036313641081464902435829117412280057072166831594609225218765770496457794002191530961868806152228800501356645120580226164306485342276123944939999698866568220760629373461686128751229123519852229635277120655156601827281425949807013625806438819156328455521824958711288285739151028023135434817552742245479463476956307981122019799012767743022775851874038136608486164360199441432785651445583820365670123046982234113303488773483971801755894802659069635348750511666473826032343407814935267287491242630204423689415284531159377886768370770998675611638987878675473171139261817649941957452629918693682256495800751102957000068551842203963411637670976851427269622244750244222904828496987147125508803994614993359232457196834973241309956105280279468738155680752003704372934623062312332346647510657642697904135515214229300500917002195592928063177205263673660336486871008581848753193861912098846484410011912388504357950664154122643294036419646041907880656058357380343932019764028957569144733129105062613296859766812884754630309436949351097912916929445475111724302044649026768687447149153104387298381415658882596135963957634240617389603569594764662599881772828288566084071023466700955278496168094754723122047858857659141825890033629375294269441362953357312576349499369805122081452426965682502900266581902738664124257537227686170759254568667657888205963886525787180383250149291330229921838152392908247022690296229718499327898800481088057691823782401138715791620144983254418529001964878225420569032738339495527481942716211974213892940898903095952389216966196762159169122558147317729763597703489556653035695598173229621379532514002415081229868733333471233892597756375875235941236838231394794183944729626400357044640093974653314694743038373076785322989463901485611806455805294332991244670789965733987664069432064723296554665620623452497580145990392390114416408268134108987488966293495001325308601785700885590820620776244602891349547238243437748805666213224003608582676018093842357147573540677090699402604004201830403491151338201761518335515040635859017778430903598482877842834889967127002872134870682869374658773473674554902163327265628577787873402477375128292936814463083757759794563212877069917385448585109496423877430392468653737280895962518188202718214572049406646197937858070716524573919508494047248796908197147214138021095143210217617976089930529846926143220585620156085318161038674746356573781862732751820952175411612291489430163603267402308356872625268015405559921195004748898989288346842130262067910165862936148793011910726002588319423182141035717589591413585484814122742609273030273286779697929765439105457093613664657919849390427411374620386825472542870727359491498163508782827177959628380474485557164708909409440361194606330893020094178678858157492814423303054867085300175221301836498156830163673927351044657697908268081591981362407231442397377071342171222541456732548776299404843219577312460195638336025685956178870376325498153017856016844233853179978875699686956092448825601462632578645942559010953837474935526474224441824906052450580583013570283465347539922924590585257935725985064559317736378368905960367198732101685052062579985073169824004398360734289918556388460970522119605628901945651002263985629320215347300066694499541494510494150496318312718370434792329531305479754126153468942430252387490708775048386792892757959635530819659259110606742831437526556893451270379851638493703065561413359754199936049429672167415269484894915106978841284862813212375381480314488034895375460299654738029428234982947956700327608097614671633715027326710976672011277239064123126506344555135707779112297575220311453079000560485485685806345176247285499213547935504787685408977717276152022575006973819619355194061550206340997635748419745175865842029979128813482085949456228651871019394756029753487152671301747101687148187581308230281855512670953452148238845743257449553789358828723993931463600641993245955399512685655239075387822985695505068320525934511438712252321908107810824806142874898322654124721450687705013711222901879491060159849699070205434948872258632177074440880700949593998753773680855788562729165458201716816393311341141488228363459530626574168203161938602396869794074876075579253547974326710061393118021794813789722557641110239898364744683234301131591127972881011465005509593633028768094856850141069061471032961857448669770516844700355823590911673905416262642677141495234985281730436003915118344570889601515493847497464046527578731174502398949748318603141700738037886909740441688888749075814952379635051340978972003026947659152238098897914782046927378453427006354153254532060201212329902410362808287863683278667644288916371760225566036721964312411053345105165222070789349540378241501430606890471270251626715974304721046624429175161579058949251754898963905093434101764478894668738993648885999351832095949893266670212897070350442111945683816915370439299980179784500112293917548531151599683856894858428034723073587532519868574484607479727305265708635358563723450919462060374325451779483333838886123539772602948341155878270306899974121389639859295239181005195571932554675999146245402745591554023739165155129143526640450879040797742036945970151073031133405841496238936625283744102699334113003375012860135207977812473892819914692662116261179557461482546295861298846206886970687928347494565015560823734204695902115888146674690925897706608813954952029085349200510249155833203859597900822726440732432283939956739456344850691445571436498895505167156041296871867388867821566832569871652754771607765911685941597397165772380251756412249508148952977248942671557220283627502703287790208433490516759370322473348055708089582511112141584119892769195158671798867259896509176956887004552513011530430818285055169582462724275764962735172128899945537598020313813837223586182202694884508352137862715314039609230126640499299001629908014147655590122587106884166017693832174842371926985152537981719396530661652952513487402677103677302388121935152538265765481409955404016286866366954934940645055968199354438990682053558024149641393375859478192621273063672878894180303551043838366889877342241516377145724643325599572540517533038297939768363278646496701938194102767809601673200656650817726077264907122321455369794792348410939889825538259973993347461082153623096232296878724175934693503092557035028574812763487943924662933898160602997595986077048418641261163676521454567768225561038347016296329432473044313159942719647183813967860285324404687181097194913317112720850331175718790770000757258787402101025479022880529299576356614585152510663882174078197379773037703246501770784974310632862877839790038778806220421883387392011702081033875621054769480580555879487378842447744227636157393497771105341176221467688778040526533592633045793786529152110627681383133163073035865698469606392995564792847660754510122945192100551890523236565600516218166882539117242723914829586746988872650395080002079119179112806281063761069900360726092315309322247696135582428116299512617911338941158966050822673649698500176625372974118569153538624845663784011974949907441639171168426162781410659834088946651890997375178555611600001226196315374533811985330067497572318030184141373872860910723556559302572086167147178594917363250431034298323943179521926729254665287617798956016608036983194031007572553983244693724612298731279275233634645255211605635879430521062311556771129396520171642443137984186884300413099394479768205600829100754890095124879162509282480754615892346014756946542203954546626861029051109670532499354841975229764861040252212507838680055577798532115186997864800669629148393377226856567761443444604490079934207770804543232383971711365226597201024607997801250574195368992717477945642836172351308286696405316998925307285409114343923036845411086281409550474991679449242669630757773899356023981496095450121496537328365822734127416986262484518559466536535679584524512384312714421249045989964506668937972161178637723508804169303604535077028891182968140740665358184200317852899141735298826725178098912959856943466465531285303360483033535245837348002249279018553645665169872128676114919748740870842759164470077489381968889466914160776228628401779647908970080215612774214219192696788861681666757956504649691560594753732328088600013031040086613298347863504474663083660067747327560210138978258279816324052955799016804701969186400139733634304752613589476663127657675988930839932842464119426748011431639050393435819020911895350711834557013384575352534979633162235325931558941278183023026646477121300996005951027343462571688580759225488047676979054635458648974083330722309571503899951888408316679303012888767379604414251061040568389944727451538489389397050724130870392125095695938385968556449289107675153396201454968889386193281090640916975880848655576401440648721816274721779929439676211279337482798900552514388936984124353054617412175957009237373240954146591818051719297490686336318508908008365157904527495516297160384204165244210358970983270748354842179325876419846821974728386976974217566954547160139846079237706651643849738324535662592115469868566553358261002179684515982042304402322730663957125010202011175975323121745796113206539953645248031747703799077500639254448540090066904584177356250372591297703762360069612105685308283073733212090606888217127866801743687996229793114041404094434950125991056152450160794872832008721785996844970136234426926168178513603972873707732855448156263992664947597017451995633680131634042778678368565051612362035611650572342629436513146390235446263080664113770190211043678991912040048080884294686345300045087536788359559170040931479926017122509858096358327825624453329577029208983283502767227529968003228201541503207713443357111740716640670420653233864844042439422224669078917735392448424916936083289925675849682027494880434171217701652979948750162304871453495980597152940816922873939346898551634974910414326769268393825979426937951966280153225943174248658164108902144775776325614532322821412470530742351365512960786441320747817334820244474581259444921445741898938647997233330298586999617612833764568931066625687222671074912627854723720860501755342763900119653368030023174500188954862969548509717111543761092508417720953225703321152651809731940648744041717226330109376178768546751928703132678491963642849976476560165986220434316387643695498346045280796898314900243642449887797254609110288162124938779080137946895415790217842069011680748264437599343171132082080581200046734030021227131112138304502448406118429894113054140278956904287082179812884798386628000981255119671814445055824403045349391563482176639378199840925457693671404155431289374264183308929283127555410611125299810782868030342610885321032806648720310336967821111655402201853062897968494374911326832391501481734204938536329411053111510759097820904489137578781985119759687342309768997084555131051427864267217549482655606481774387473682047453687020424861621957098271729317356642571648423523208394258938852620680006487819432556296996302557937735690618818527937321346833726717400919530006227260343258667209570722091046779397732166147161844015122822204307880575484799508549107474494308609563895018051029305255867778996401053581452736092320366719249620766117148180968736669640496657111295350033103754878112217056949658044808591076560453696182004298911187286882667149730979304677219875488321415553335110185352362434125289689797446675316358588077501082525630672734163971615868622861411104622801224083609671950238922510731403406019274567104026565824995438741532015796765731801270533282311572446658757895979432764893363770873280498025631341918385020800833588180782587707521532633270966601737400470489157920287714370363553389472468529682704103049640777383930319728991281683449649738485512015304765157198222602690148528466790532668019189085555253148618877881488634169253513083785236121045534843204261447640452392828651196525595115425185029053327746214883277779959992574559492200923452184161954442098612027047478342657858653936811609899559214920065693790435040926335101054137658641447948629011937703361618346147505486270058649891268198824254725346804750942966387384004032042837606286947962298113617389940944271359480446601040981733845335190960659415398570009012885515394094058590264671023804420307607331242322044866701338084788126192725251654196364779187192086383505611998415801505484800679519947673895467671583198688570509482874733842823708850280148135504319667156715870233835729896700409447610890508715058443190281535081808889390379040943924830581059237119090872455872393120265355069426086922584808444281660288936965496524941566447581307388165928915850239180809145166612691922342763894149554796896909126715330923669788925356262088208991633541489554670130630984091319220480610812930129222663349470812213884672558562668011294753951133121442305350616574195500290985294771016879965464128962476289658463074054373532782829010790780901158089597868646681214288259980477314872471080098958032699865466875169025424920880188382433487713534385748488793659286368145716528255789492216147368144206075963936682200174607886904879390059744747242862062330788479981241348470574870087327925190215786736822541397106129391444037725861277354225205715026272711492803668904095967227132006618127785659088796531497903539603410761917437644305887673913985001507942862102503764233999368379605889074801837505291896597825576870733732820380700187381515793324255600024923839018375589425800532558491593415195402451797614341196544807252907212942800247997350517313331180325213862705799121801519941376644312943322797478891828783749068203341295153540770755424560283788617031946893085330409039233509040345591453267432310593740497523440060856429709203348161210454051820630412090487469475544797687843004621599228379464964852201723312610702139512429459990135952626047943483507068803981288988800862533448632121007730704819051145285021548721905406207269972735861267052917659167891077083018153133957437054122703652772556876920083142079345875910491940961867321651589065972663836009831026478470455327884690819170167227097327380060336604325812231391228480371593392268459987060594497776266611928988338580138934329951746273370538069669836698805797086307155870338114715936141884612816754916173952347813370730841492305470237023558945299479048681153302551780120492274256402888969126726109062157375400653862451175081184990959799472569937480956053947711334694227561517785961035567065776398660680992746612367722501461489702924892942883114951796070089685322734438928646026686346544897301520863375610756431628560329434392054238150687576097098950914745415391056644381838905674454904970553231196707044042416193359011517041698219892923334466896323275866203398213611091378919413702356802040996970684603493658202010845067845194343242618517856771624501428523789016930270944127852610064435903302870521414066055634499321990970332684469998942040196013542916660011561921360055359597718264867756580877196153543192294084560050588716660604579487430142432457718323383463945118283208154661927330039075278540206579874411224184151818704464298456380006765673235829432378340656355710360902813516327513179461579214770272495735958433809206046561906057784946279768692577198801909266379304379004428934311325048873382159474962602522259856944230501802077176892222959467558295328619066242713453510892272445614747241948109610593831234874408085349730355406809835874527775901742393787598697288892789321807555995839699168910807607480100832490301026157037294348140765089825387685601565487915246012263900813764528104688018964878752302360178032917613858431831121286272106158730075693017667329097645700048049189399426512114252153252521451828508378859391648318190094993189679994314612971999269274843071679013751544688565362704857995595164413766669847395636599068918733535582386406664857738136158508721144162402078546731067276082275884729493839597601883943095529929693001145361816876784678779260905414481760618159253213641497583712493651806780331449740982096536115158000335805565690074348899961077665288109946696472992278543990390940543152683040568197255619040838129056900277873493834930524344707591835116629398758940142637402015124902152658295443419484463499138743149974229655401078348266978215262402678933256793459981909906256202108292523635318273688858790745269531016781635458352164887646843539508195023459045360278940277226188350499524346364763457107522309548220413178772616667456704976734036923719456168618797690836378857783296772729609454028864398664792763136180007021333058171053108284469844119608111278372623817417076497001764536975444784267896213026248808110332729133382938529325821398459043892335368741961830618911571577289206354525433589538829385414874716551105986638844670608981757884402128628167044051976939180461720195356618780991122521480133080397517848881940740940282966737212176152422657110095026951838356791210193077974289330545781914987317456120448555335861755017076566041240723014190654524319694492035558183369376651529616213433491520602820055127866031573408131062330338489442093439025813324630405579624421283509077190960806664101578186412502530319984763965280483709386462212865268986577628064864989212680283210588351555156088985539065224674258942315778007999887501072501922353289758203220357117630908650359989966823242185631710125012923277923174579002378069154156723349918391614282240488214658225117173214926843116128056758728764006624007765943156743847367899756775231870459842147111576644180207854174044702735605947609641506260763893677721312043747215624229642015303032555226054368884693981399839498422260712741683513369636936479636999008680246098915103363034629131958137644994929120651428084303170651878165833077429117847329122210702090960225998948501683186205389869358773170166178354748348886465146010079339633807125031076834910517269013917854485499239407789820298121575431031955054226900529591641934158066238101555508756111356041878681517774401246721859324141359084239812377360607599071509460254764217446869545147463737176718230954921132751978016488752506137706742765401845317020475937013176555753550034759990046930067777292199661970593342193565257272484249033356094980164902081872808060987758753530705341598847387647063211442184259663760628990246202585484686688828600942385721791439516530449966286579410271087291536872872220181329576075903511029521867469240386596626717251817133501814242819959985602826781224859700044936430119710193199102310272207475868608465082852928445931447394839121272459853241678011908603919482184891797457605607103970019964339393024408626069313883434756844252889425448176280385883163614062984204576851508279604356054722145541116127815538487065319857667746570357154140267629869246727764742911728619909671178184952551214491678453832753534276289244956866898034470448753999188442432369720582334787214624852450717691575448475127743272684231964842366307255861886900748592482105576270793769062164101210409840511241599985233439706225393216985240357740963480711606316055463213948846357693876974799116418549242382565890984987511955801343738981523312465171703316247060485403815353759606485227193865918480330390942741942779445170581910058388121001385122821290765302971542831907564792259734201867104251969871509606914016697480991361336752632182543559855657445173279962918696879846935876676290878938309532874333025344837949452733908289709809822588252272677627504221777859393447240981003769145740220210384610769228863218367695887330594622684598577806534621381127621100512369918021189940761870900508159670456691925695646864335604025355019522307992666969046905770057686970913473490912335386235377379347149781588876573480270714405926285183730421817445555973519684568253135463243794720535694805421690048873930800482467818995530549889545012517582034988450381430935450022609788014440684448388660189087223460782399458068860639396392966206849154281507938655099397550235131639454801076437018578073613518928581532862605218399085228391920337035650737020012555753099083420829727748660775877605813100963314777129597733004914979639851547181221882511376073288550924889123204510912958256602478935721051777850665035613340970319326704869060212053400035067744502231516063865210443753088741982067032245537524544664166751174986182116406802523951611246319195838268468840136709446935661455377848860779090296119861559296827056320403117429640576985787958714916546204751850759487987492880857599705676370644575956467332416713000284171960859227468373208774160877458953125575596782046005910530357137776299968150908729169162699395744800344219378669874341692623155593849390773767643692589963874289201940894910183542211516692832632345675590184043787276811830147260983711160273185334921168273543335119769478695761676831545657581883582922141784537034708014711555964924252153548902281849136183211358194636073342407239670898702268468626006033811471026879521249464994559719348797518251895361248383285787733587789631531950350990129137925351282279638648520848830563514882016395397899198711935892095177286728907487182114692500336908481836139222486995353367796973767735898149989692937997105121861305239601605601160089853108073806740691649345529665415839520901411231387135245144258260043993882175470143924062592373717600429533458743749429401451537188557728763002902384041422581894404966655584719180959398697940135511540424066318750460851862076282969382383555479919058056832349183947932478569311231254228051714395238621218226564043658786611150309644070197003189083141805098597148483874179128132575104106236002504105939839039468719814453794543948298480499003315898825064366701679522443716649025952135209380774587232086516768172710004669456355287868277092585393387924924698157094915376754884792980694977687820217711387798249748287559092253673116532012267589432658785020670111584287951246178584928217328812546306390799365610074735415467704742480071418973460111780194602440174386094473041098380014737511409521638472339107460363534933057710870942946491773251755739127746573995714537410849221845222802108662364627723916170837305674011466465121239600010784922557697001595563544175246790879007501184447524036697122042932128009835728984856076748898177768944847686837289708050277650184706563638290843048087138088333532918363484561803135034054640596408422854597090013953526981897948454955143794684185777234583125396612444810841282322710939283311035584237394047890760212139545544755902064271386098338386078401570724783083668032040942029888276277953971636494744981969373413514023507078174381438284654636677788312864367535456651719003821022341436309238105331146116353958339509416773953391005249536156425862873442593368688424755782589282598181298056220590480666814345739622506933613425249984050098348106871459333405028708689494170155160376489386764032565947467396678371416907871944930013902511206504148730145983159472459531255211247955714848452915245887426788954218778373539972163108249271974937867593927294449814122450455789270429147980671489080162472856625523450208350331010102393974588086019338261730195130003311238374733245759421758475210036824866034648754531517770092204326004768667098164553707007093705404316917629690820493361065833265245278306298582762151293791252189378309782479031339185461333271142800401198079819201571204834071250790045267547960224608156597010409736085502846702838544929218090029811263082810861753307031037478138893043074623070209873683015877847325793056414172054347476465533720805282927041899754961229163747670986681028780387906048168095271798184357622195106145096546833958725202431285469505566323563925296578895614548997808376962464954375788189333898771460277859147129667006940267346841285666155429117233269391373699052290504363328174101772954170386433967308654101782989493431085445309531086937744217829826704927344555787105869886538287174185396066532566326334839010127257815308316624663831082083037912720365189312180902639862005753503996259488103557639569836615482342909605098918914140170603276565707763491186628924387954168208791930922774509326487518755145462704881029970331994198961813769550231991657386153152314551403766984111670303746782423529466602497766831528939244895833804443083517590799299890929489217908090576138029497517577485186318266847988612667324632003704998402619616841763558283014372747583631738151288515215461404425665042115177028854097153859209370496235037513559795516231778970842607017736318757586572652450694753830524649774801546000532332896752567755691261219640751983049595684192302678324737246451816630444090722919901420632760446417348750543947768584294932808873744259771445508039005742284108116212682160513972553341739750113020898756908896328414001107855061734341276689716181796864845605120611325233636221837560666494928311685562462933942329269066046253390615905121098992167345403688990079119227769714790562249832935062825214539626854467270226932777828852901337898336850732688562076278285852881630236382157295730324046996807458218386152946418220857136755209069226227132782273349268261816971932114397798743104429294529503506758397519928393061243990483637852025092757933941179795915022072926894546527796010082686936929736461727490301184720213643000359840176729922388373334448438174238593692451041304056876353989322296976295622459155679675578779349000702872927703080257621092117034953822333394508916976752545873199455446417752759447928969284127269010571941785089049818990342101678250657610517737240461714587296197397999609374504518360048289243670777907284399804042153401484570277684156070799186106831916632902880091050350582754239049749957138356724784737337513179744207998184994617895014250799998194734851713502496719946075843340614517387365271280786511175355355608596841535424869209302235316049222100547643839678908140433046289693911038333641334722152929774818843013763181346308185979435791923799090160852403537611960295992124231248294642395828257195486336090217845762737018502885992074330753936020780125006683444728530691785416623532029086406817942311995943581950793830840139058021307239151124381017184751247662635074268857880699458689562493201252191864571310098730377212201361400298770731992869968606720168918237939629486532144006920574901722627090764172272438600308564498252895535936523401386215071653383097927434170822420857313887758761201779690851775002317945992757919217765175844151309219433978353314966426775871503355603644419604532437339187976706956119646681418288596714822342685116742639438029217834893673017317335554840748839924881837859374549573809935113198698780490100607882478490640633435650058439565912912464974399440691586143840628718643876094408714438837904780143851374754575338451897645615978724625124667668529450774459735839792447052411293843717164268890377098813115846553599449021202626880176634049088679844363870075270583547158950251930228600379955646629947350012947654674530886106566708885939379699509870019559479918079997579178335236919155558442957115934126929227830140773414306608654374284794940472210828545679284709410252644905507516022182118000279952771154875388933861896854254137248158242121989745532612985383073963220189825917593295895693934339515119315949365806911424585572623807479856820421740863178725148801602540315396812422255222599984830656125844670267772111296930297889353373134448088658156505640956279517462637055733585624055325617211637080843637285241391257815815041125605447794514487402286550264791345795823916260755970005518859338075089071753753663736768026034971136085187489033532301727606862324577097733700414941768400914890499882447986830858941163555058230882092243762759274502053039362306801756369674624885902163968991677560742507797605091153948339249663949987191541967003072545662990154651600898974355065460123198972281286837231462911434907251292584477006125851478763253249038044828123183689067830834900660768097570673271051051590912357220273481081565740655426873366267328595346873184125224813896580341631702974608772206111701297681247211375968395493274033088244190029785310889545215423652574982283508193726505401176261160290305699699822910046304317186744849807169245388510257205372567976477402361352631778146930665589895536277859676400303159184733187083320594418988414143982781659993745666331894663854220320277612198318387144505856407945160351175077053182371557799185703443695674037048161416647554865346713947990584863499800887106000977606322729462425408345837231084839641964723702674787911128465516328222158600013531457896452436046708658632333126610105316036742884920992494083795485210871090572970074005672040093518603334437450348134763101372340320833467637160167680646146945990393240984516561743375866497097269635939026809343726814451916749437183981472021241888129056935418954988615684746537280321423914437283969932950644139862396747127895611799622641650032438565373328788304032623968898190107377915358069451260864264236946362340668379462479583885672720626105562640456517208908576278468699430260589713517113878975572310593024747639224736649257163483810082100898722570600870533850438034243384435078911225311440505253412351879544024390308801006273753820619578138719474560447838428249064042584656923143966968685352157786432900607270252106503248613317343232847150065337589561258527337665370781795080699743582002494311127899246301228493337006478021177565149840934556649896253356009670494079652394503093738495126269611983934550406423572585473586939560165718309311779756678483905149933030977160645599163635483109457866057999865412699162757359059813794402959832037271948339762725867908159387304162696167346436809782354493113658516932833679574515860687994290443567708043285377721615441470136714336947378482988209984529897609370803306120102906533449188556723248057492155222674372832509466274830939505053750014054860838805211029609042074850534885595398702686461301818784236141355322500680241599303650746743434769332868799373787520039186055240916008760489299681284913112146317797953307820759908346646003337460436844665887415694006950884714926324828488885398703579227837214431682345447204710841821261470852989245197094301322423425695686773804341892014684331378447037035292132964759822207916327590470973437859541902611005205072892549502017180080969273807715815858228913159689319648883461886447787429911170330219962369616440494851343888389498649376959541097418756002434643682583141250285811667496315351139709068304965058809654592945690827115551854672565606276351253790321088334980187956976907683669067058472656237958835844912585397126141505626043074292424731655418720159912720037079980540509515341283649464787010126064848085720427473916138478162995640095733322303530085796292276604223944474823266056934507389018550806027487258249560971385865454184662690623474576494353407211726625256746425558894758174215350358933793884162891071467366745999976896963658976285737565327900012814247802086693958772794957240187758730751652767443181321796791404066627278962037859618219818199158720354371435531488896142620161050290628968999078556978457176193339524885441938190107988431602729599850071988548819043197389610428966525332395908637281905399736914396503921510977246640075457075569807982570467659973422020568377531870616497948341799876523276050649980566489935527053018700928418120584793857078532323210068733929815705843308084576984873643174155830470212675698719422035964094570243509401041656217929730805398067891984520297089950761937637141789274149788406164811471024167262404367885481263047763930902347416629789127762220476234095389537453068519451777580800638152968762766697967238148605275718592523043529230912807320899793986254449485144654128396163335705805843193034605832993607839002772440197427954993425765400720513802840518753557766045173436674953000664138277535599955991157084055884832328744340231709112637050311311808726469116675946493408964441858795791614653550366589185695875309143077363917030949916769984620224397104589232415458857445025709924428405795230186065523824630959572648833174239103470109379310918548729722479484170235302007108265388814033780821489879749289615601052677598833205266765976969430925796428276125919863653823333287363461203023865898415944450702930106929378520135201776101350154208771830455319148374354515763719254608754954766710345876361436839749726244330568534185660545708720293505402642726083511270651202089295865362934451481465843071091107829248630347684003409870731250998820584542246599434443548484201323612861902283486263300010740214244574784218956665947669205995564535503986672686466964068549459067040139171524695559319919508743167420729646184034115837320372356314052305658571910727745498885287008537741194894710285069326786619317531968057513980257440044632603819260149695371662012047274558452651633345475743698853973235294065042224948898175519879514686085993159371572144005745692547855038437160498493600378364472062863983195765124688156402002450943303256220465115354124211233737366725361229447112364541242960182331773618155974190336132207036241864286902489597904527335841113853437594767068388858915443889805238274296491960490403647616344512939496332322988982244460929567067192919081850764403918552063985913225463064630103392606575504901752122196842170434922421739716381915558382329247879531857537948871698936744927517125535616959147297646460303850398674882136852749827883923629098502608963920620833084845019286184591047753239237517942534928206482819899903933674103431914400933113604626646863201953000571385881408124477107247819625012161700232375271088607306075112068141898885234471864809779142658988293132566474199882804710061845848651930050480234566627475552091957894543888422029849672614769688856725542919014414756661495926019691701235465069151219586811680865197378064906056291768907033396696647583305560947416223025448964294983584723469803579525295757629526589653602204500771617904079353944524936605150197284180044151926967115343252735122578807539857596175887251528582672272820101820132988164629800416276207561654293644475200759013861866896649483149185780494833246519151730567334125640293362928722321960454383486682509595388224302327255210817231537309318815862729563492913830327478214378945483595825178639893577946757125927512067239371662059814463789086913150791512383725763490450040233190714908026420231752836107659929538683231814321452449822158514986322265713610814439531395958338945580350349441233891555551106824514200501928743220823416715887896471949872242137131427030841036355607199091587650910294086146024201650235159975319479419934236200335074929222085022822958095525496569904304666338935581651656266594105534656834282255677289396490790826028912364233864830289730088872321565006297304012368770529474789480862306298496362758266636443410345083854856497485335025725365741508867750800041227103737009723735949258710272124929290906841264793406320339348851932139420640690451987643838971449266149050165757464891755647403378913463545933165977359362417809483681483747887512072360733600972335172834813935161411312785259682587268227522891093799448750438869648134963316748100224511763439633911639301917928901333818552371475262237530969080453601261655344856595647314970648160433270678168761528532030136874755956996501346128551550003663720124032572789313676472686715863645291911108557745518767125878436504231852270243115837753383489944795756186070477604127551956035225446198457671822730689948761575098708063153208589826994770002225284510426946431792972763946028748738572310911460021409265382031194927768182749922345456003750823846026849277922956569738375258008334690016907955479279706207022259843189028952541377183260538179367174818636274310259303420570518900460663898818082901562807207476100394498725636070864195732537143253718543122795785561020721816686148945303772924110036651145811795688864709244181774002787255877472582360066733466534450575849915175761488311249160943354935437683334104374764285446720167448252791483250853481842224872821395011741134722406242992329389669359770098916505895289121899825850876645752631167497742481774780121711901696456794266737836344472000392141001924172116896660877050211225875985300511623038946381342945702672999288173300137500501711019707396359651218275898681136558696057819617830094821362690405442229980219299280665772508785374449986184570814086826766989080294104124346795198552745671867856924954564758858706088097936291820863176765135378395992743812822680708528628111844141547616732546587644962263139446057259886173270027556874979087947105683211798814570744706490680047780701888482404705018479149759460784467149638170345991964926999399874264459904844879077675448262202896710489910208098610692859495394873457457139416836410054815859866091707255227954898152855964684596354838696595490340673302111376000684443527601777304271842748678564531328988941052518502801670208183163754109225876091368953499995656846897905539706893762523093682030470047584309408403692130364371535116782746379266577782769897787488984439933253578900603451482772695081088182350286128224489063483023370059034952722671484877831803477163176980785795398485870520773025572669227543066073376199501208776221436743620766878133065690528585753424535160615952765208605542183650027826641731809712573052414469973413647018222345636240935417705997181025336471194386814578843604378483538060661421906945428235695639034540143793629530078524882876177019941776968656635302438188218271162171344501607488831369680576439866926874506941482457993801281688941080396972992283044443606497039311222149571720551493004760405938815842032568855165183913506137774143399063712489252137075621300759089818605732456908791409977643152052500913084716290391509538222628830753486973919591750506260854241262345470371052273180008495672089886280668100201550677593682464981822137069962082715545896043677025515898881746834744474846032815427874215349885543433852543919628764340032086244097019466716851362807390570958548943412036398572566215262014981862430301181323525267999035402026967522421281241941454731581690361477323194002834230669868531155034075201382894274666805204700385530874821072633012687047649646236834702957032892561370282980467790365447576524844112236198977099897197510506446927136366611253262968254925365107771744077944481749524140938966084524868909627507189565920151825145086167715602685388787635219630556921190360764626769234704428342097485340296002751796701839380032193580700745464589046689537652492561086530866941932761418540981446719228644075117738079349505053888414268825883994434474263731430020607769707434295564949509382073194414230261168330098928141776845251131459238364985905426506073353824688935462267221515129479679612604348166649254922996579798225618645435630561905181650410331466261160357611855388472544874263552144053634305265920131833808205898472249120110123694732731310035158775565809775751821406650279016468848207006996194625890676986392336528002851733758039046133349754375053978486129102209743011797056449902911287610306183286610804774884724462827979213523032744954291792467471834065458240978054785085383907600957952890114185147197783038454229472809250905665515428706057425684300271902767237008100479958630327426688715923891774699158144215378072705846431839692457946188207454547022295641495014933694049722291858620214261878714627991975750454479573364746799120613449357045453227506268231267343669624897691558594251892726292432579087443306642665926781903116508000989485695471234042413195019741525171089024659840414845814073409247997730482838918133371541631487465031610505860603770636931037231736092920101739942117670074660435050072941996352551759807929145642223531242328879101967314876609023990961657155038919302958007774848835173064779635441544126475805117129364798797627868565110385875310563368789190195256514650368490840472161000515635161872571612990264908305804536183101412017619667730916753101278934038112043321261840358422203500686004348811804704408638185168850200148531311488143258571244824805804472781290515473507013650582613212543294505920077688919553593883107918448951307733485603219276162300860655913663170727979210131617293276223543929566102962856678430074543619044068894453737941680533802732138230156524467381490852875742155329019681092861621076432243791638331896284577477970803487245885855358056124296552280792521127389954791215559322046345377143709111660693482503687790107466755147492967378331202615134570865430389978520058175942583621882080600350970334040333801336311381823198369490474085494538768587286365078864534384225262018665300461044977511803017216821461286840425519097027023783932672679356396107806744743724083400001210243825920343397191525311851948078603044735430992739720019685304175894731302527162159691122998119205599385754170753208829428211951122894334675363905289380416755212648346326310278304180094398149249355881098647022305520743587571216407302272110633281198825494281351900755051638016195327743039724066766722460721309077169436304346344562184118216217178706075340875711134216130364135688875931680864266914294778510049290721613171506750073416279426256790644104008957679251442665458539007222706451542885670407758119016830872754775444618269268281472759879158533050143834369663628518920036864889998159915866245594310661555637305565521132238151463594926700215467530850028743620334609613044115546835785888233944549128384561687949194905955973963378031398131381476275786510478028775576172369602511012201274942219030155388843365833663335407124158477511996894972038523027999060997967932089255022900700350202125787266889333109191010489835248644646102862246978068159902639608524137181979717191514083666667501677386023714361037929051198607614364706142374802901996222758819714804599507314211889405064563097302313882967179724539306354517038363474847341900562850838275388818844510282911793145158296419627659813934622120337207134161655080987423248350349739377701615107608613838637950887431493920639680252621772067897409276106600393458191194479756882965450862119515469543069890114497748225100519387863603474052192302727150811128536352372113429704236223198468164536320856479618668846309694458328251497552838523098547438413726057968938089485894337534375832728955538598784309075363283174136050354679742492950434710231545438739059656978653275579021880450247977402360713662677209211920566993354191674248464534647205101380894777294120929506966382142027969332212588513283087182149769552389363470778377124560906924798052136858042266151493845159119723059691589449465878375193815558780151894166350668399054422121067815479702011746811112651820266064965223098470276003934617654906608830891198628991036917670694656410373995989088781462678974539779894467212485640163304661643631743522782155703706032367937781172586615576367521404764963977151772006669829627787110964020592524878655747868064496458005815412820109516636688978499102350201728439728832352427981272684206404547683610033810228427811015994761881550479717861872618654083419071540840372834972416514488593669075878180110434608429162580601683998328967593631006258524765961375571229248631452684222066903140030247936142346350162431761547490135659735315704158999755973637378825836218352505160429096182910927730338495322999333740299363333863013224222256819900005623998900684111392035588733985283178275090657148333114424625278141752058157913829461713787176643794534889786588652187994976419818990650806030377517260210553311293921636248159181471083537662381126137017216774401968521091984097733661888351842114205496709751886243495524667805389257396486564267776239249011257228969328501369350880254029890273474898712775487827548840331302901985723535469660371476399861901033568975266299479478111977675256159562643353983495416851531202782174209826358540474873280425610495462972558308389698540200160730407181523006891257357698322994608105888941699636757289718521759539185777552881462323766513906469767918274488627329081744703659673213213624557729411892390439688977225784991887775839810234182067296128921025272762003700209881529625912246510487799734829271309841210894456653909719322990673391789932772212267889926334618270969454041887182573974493745458154390396769015548806699430595468051465284904177323487670031059614066690797260593507082746834741104872428512368391692028481117288322226356846253112680961926688350558341076931114036003696289533666185038095105429665593252107012059844237843052135206175804250946890275574325321603931029685641092952012575081999070281363118998231871662575556549571016863814703508762118723948028981334302949331925918340731279115920689358054551333985433453436792381971397326563648346694886887487858297286542224829726611220999146933873575089605097802209983899195111852971627749424174755615323315907304777152815193449934356847660797529647364276398153703191380444709825782671129697968014945460254425769531549449651605025345217402783856910317459515897244707349649755704476896841970084570519128354733102968008210646098933815525832671910741111955422055916990673097002939238942567623864715275821081350662659603978371689021860982135117699647288040272016653247450041418110389282884608690073716464264120268421742176652978538874810548313817679981541475050744893366521315548089785234132020053293223596748273625038047879882004327981676907281115888283992751480468809538304553748854439929619975660519719575454689299634399715700143214450890235364143989573344195899667236222739342609182139962489332785769559723567493343873192266796671431621138201651003988440907734213902914959241959288672097063684430511555307754892486788494050580336750468248617775037754782447279465377323565375212386195417199918498846412148697405449448263398521417849339103760237897568409874904760910671425787278887337876069332571489493538355015264268540496462278017266571489518798494037983020380535222768124379946026115022532172685457147652242322305916277208702768648660865453106974660655985537317909003704394194704350415463327339434868669661138702378874527380465494928754591585022079687699990197557219487345030756363454626481574238859476743852644319974359905272493073051874419969530906248899769229739456580473718280510343265297950536326788444553135536056065081505569904789796979799756511895823223299311395861882825915344748180143640066350965069911432140843111678773895608975211003268367778554026124698117580413949723633929210663689367341207091829460007751774355358578547989600070833922833217478107288396606053373523813486815552920472286515947339532507606032775014197923408504607477658374861932024297572352727568336375221642697785157230584462896176761405767962006593574393740496512053249247831772229670769176780537592457231342519870717943098507201197215644049386889170521926357425036724283412835224446723722514488866199476879121273902224016756774571789327832097292888365746716635347878161099003750850380092160592596440071063416848647336611297128857875637505302757861231447689670126786703387882705320990407440746053929696585494043125313804340459087297109369031595069010977374077763661804871985434172511726539395192555886755726174107657130674819677417434026665558708182694927665078124103311050902435087358982504806472686087768779361327917088803083584273106415306122456005875721041579984348895515203098673611400956782935380414712610578428307050323902208897751996306491083675749183459070017940544588003443244719846890781655688320119958815066329618262124582988108519836651837162642667030460057670534299961527752905515793140018811824673326220740976957866308348873256914873254493933087476568049014216887750228889750775895675092365456401601054025054659743087993133879558321292630632548438023606414745315912059944101489883158296801131760315219955526307890426275498012285189467831073553427442600550759738720644073181690690400224414416779256209825871038848518256015469580015934318657804602160390735369413958225503895132016601708610811335651506154609589584810503806662536396058972682024615951768247841457157601300379118751244606039744894869513561132205341263014120589696213883102784496084014948282028525026060446458829029469885439448991546733871827767300018483600410300642465184747220125913485881249563082526393770260529350449273161356587599149429366304533682351951018748500496420911170494375817809464879903390974238544539053160002715222181645599449820028160240557937583490227824589273582313773368411281372494458177196494800413931385566258738560030943490191829431561022316569099770172189415511772444274443038024921373285062942783750197341526196446297717477025143695358603755169416924069538509164720859050331578509438826466228716556153294338727180543407938156240830681527042479939615522880173369581459481985751805903946047138064979018061718168835289335316998052816533179899448226387451176097259275041688312532678156314686431075339149711358182874054710333998868223601308438836832169184876265577977194132181521726822062392488431274636621215243994241909928115994172903521433425281229882659823583360768834845186077795025582172419515833655352767814866311502981246640149025110886595591225473427891760524735722429580634357460653256369359549811256920144321270997442122480990741674414579945539783504711895878255321233628115700332142234152819949729292541530401583472818834300922724175892019682574471126941735953783115394817831146526727072035642639971322895144999438600751267955197391501553819681094613532543065565765034632003970591872339717488086837685361347232304888477522840706475374857595543741942534820708521701512024566578845009573259980811585487941597510115442409451449785848349428671045487616874796587587828786474564418694090802348960740070952345784153142880428089912475868263953921484398167663847392303426112979378218515196257515568683666561633944962073898010243337183858063710761954480225441994967327452478608925989776457683245869199029732286653248772898963282807178272922861331920214858085676123268365589051363444027491011622744074684482340091503791717949850078515104809528099261914239638957983890763849979716343103672463180636433149695678047299474571560347126533056376534293527871361645126166917544557812616799803066989442283946627173594197888269653877243486331730512750525487875569491954479810030288822594789814684540605846470007409636337215639115685662096890166392888699982412074728138826039644475939720737306034963866850314515272648571036354817003131739857509830372662032912088411388518002097214357556212039077135342434553930473768022331208504364554681031560105140221449770799218701246086351399938233164507567450413607159057888654254939933493446491518183214109342556470965257123430373769116759846755354134134000856840504367648659840743695256747504352605268520800764492077994072499179536146423727562541681470241970528127740593463471523138255408155337203787196647625872180886173742290679381637884823807904136721202849646981285024028632251404910833508252083406997282113358993419087455006919705838351163621351641812979846863831027009439801589489532587985719154701354933667246226795736649923986951517668908385429719030986532191005128033761529140159996791604391851824585533020850128829796766361386153112779642902322618619642317075208960370204093138122842674184867261575190552328052791975312448842377051275501069906842926058258336526451451660474649557571194490834217078758452422016215524597050241576803010789325061252903764386487338074242579651254590198927001602448867382311195590941659781953859253570430788641829646743372500940030480075642031571575296509728394890783659613997119675256198090830373594251777436311208563941418210085944101066025958163791819942932182644893544998379209164122559933596157963289613644619318048451168780392437580292471280410542382438625418476097203093140599129554602762359987753100102707854830756124968648203539432838312798773864781696391231016088601313101764106313302614099143577179615922964325241137199434757366257906187965375501863533528526825066965648795710430213398391083276932343331449504763954198626207292004889761660606525088484925572827330780771116265027198934200217384001148936256194478746822871801812231508958262519844089034405468887791121891803574289870338960448731423880173541458043386767302604187591216970623456180221316620339882290557577472115281901589861832184297385869290930796727439411455727997379605308524455242207562728489191360023201818987607487142225778879985971111198372765594925804116521695124319858011702276889277860916712101359550895270469874798553936373556496700982711706368210167219329304745177434400582713125054532214893865341671488906829701531322976363379892107153146080244843668076307178240354740453633959054560701968722916971672538286731954748339772103805407393403314396694592045422208258463358832637277731773820367067779928048967077432225816113350219116621558068855408507972460626221866090602092375072000713752977684665380066619438655893408191367583447903560992002682310569968776350145103765859270205628329666080004270791799751844452663054636162706338473789026788699452199148934819632904866520692561432964935816903282363798752834009096321803860976152756430074713586879055925607710003371052187924740138425765508548055118262170391400689215443460671657521367604984561869967586079314771008125108184425938833140690123900883978715873070589477077829554446587256237482028067342595558896526775497380449909182487199490826855614473338581737513794909164294915879092524758265102274795471992370233476440148730456449899438390787870037294078329642949830022395540986224405858237605839512578881012873202509316015394722507304974545271945209995844199638400190433980367541622476590964015860689593334632835864169583813501394776544567314092647080557969768979142969319473712082693497307537601412133632558599628110357723091868940017465175294756632615409629535540806162850363526996012122776588427244430223803689131790669917021125226131326299083168305441495882918370100213702940874931338014552958759272476276326833213865967341780439407993028038289120665396963690260670627467954105989410935219911294876557685292033706689945386184438595828572456847093365649169488750806334639751910782788316749848490511337089191449852908625156007728853763131645735888670105208772019413061627179277350985525506791140164212035101457808951525721169106392631636774616296152049799734083091086226862230095695188038465318718824735669267225647219662648105586556769664210381822515148205107602690380170257749248826575504164361928762250003636253484433577348469132233434163785567759344453237013049432390691831722018999116272552253810397948361497852449575240860427254293230956554222507804482042704843317960733902937753115879640620926337965250077810803378190742223962557003423860129869878504117788111008382889839235856257962602979014978259267908815056345952779609848177075109511038059617740183896064312780903371665532748099971311669000770474536348169920815962844246373831922016732949016549166760150002933289137804052581658715087054573453955988582115876453774984663629561701444776452468646798854908786326318811226098910606295203494598435225849521365554525293044586842895666914146821122353955869199289424830660550835116421163586060036289372792724929023139600316483340693012750470061409367087821083121091402520263282235903433905377431511079260163520812575117677323163354779098388872805323073650827070774613282848467683588653467694837900866541045522164171043102007589097653929995076182533744215465501757592374990278938926109812287969119903682269596915732544013703888314093838590488851623535401897553994259300317896416240043040251266565863991204707963004775817555184650196130016480428891712544386661305151964840320734060863294875307488883382213715300819303279476643617757208435571118940438831700287717664950024978685639157268569792986066810770551768772475024065925743583702573376414733304095688965805663032745034925014926791772198590621950353358221791511548289394948389719189123155476962222796455882197027708253331855260816615465659989477229812047689345107316210098522309594510079411608405052468120890658926053283464348160785773367902891476730013405085905059828215218408114929771910702391343399498667689179469250459692757274511457138208101870950781084889288283033814987964171955877359658795310255353483543854551307518622870311139330669477053847589675197726293516661220394424463821919279494887768711153623937282491182198621458894087638901519902280749434875087164841539575346640135219863660156639610148351055398528820514157373446863988792200517569944507386057659043126221874182679964441969484666193546213254241730405971699879411620242854647762446347737731351017831836272784035010142067193268488241603008953363031661879652931862442244699741591789595554134926587150694760445943981352602736348363797306207964907370225564584247311931402545896636621413703385079777070334139704396506666237681072860723543216520699809015068574765712126196724815970390687838810394762093083575209104411552004349411382554780627994174095679278993011402824184348879232822221331104580319849523467488538243593981682834757486415868671665957701447943320039852420012877392307767357175122178091982605502204931710058898774761203380308718522815511193403210208665486413696834268651093489687856793236945166082143857301542167561825165284285451358333656787337014726349173571513983525914154869485540550055490544760624624446739864372534765417686831609069266826442230520822079763630971004860138904462646166840464120752470282165365692663897384500394885272746982266826767541736439831119115578528943309396712677888847106464780273708853916276564450838680007437124296306718657114459530361494620117197167706370417362452814712417438785614719313952180803275306766750733296379660168884597522488886712364171162219383129671471214135910301338703064773738756385773554248716796181848781472720001847890155139149462461116765155176253466704406911000421964917550521041032320609041540508300165071115768191384530778020658592746343993659839607798759783782834096984292607127855700163474895189265439181913211366639560694597521550513641365677280113985611032169447815903670007235001088089794418247431401785504945399745738891907132763822739574738199247958068453849689461229639359315303935271569056570126878187426678783707536663489849431533048994476195744213626599214127004503860428882536924146325764469016859203770381420909842202242630639363745596696983944203473805893379542516807897399948664755198001232563860563214115711988647521996735320341744559942572395966220068583151399780629576970821092845772731413351605334647542455115341603872623678732044881574514978544579608341960136976058131765254222524770643072455353649578438713912395751907223197441040231234686192175922290571904543177541975137711853856218661871208250754263687752026110657910288811960738594861131751811355215815594415535701021709135331545545030608701835981950017334466629784099468875460973221482882836339608125118854611500968519457348490441280152118766236388780138653270059281856616205529296194445639803215206776823882448478946380570500956618152604598377175962184318430402812446280167760835577934731086995073314132475824568995240511190138758691167105841692283961474645133360635951213517207220624146455241395243026170033719558266008216895579382745601747863258229348747677566213463183427068024795908647657463676243800340117770297233779622391162288821255226790990906018445727294043770837215378309651659423974068297982009044315301857684194305201907988447184665072845857416777074680218016078932455145236499592248317183566701612550796856669028765546765920931944902668375612202936915595332196431085386802059247231842982687866372302400408917536713963767733392238972355375915421729344521803284659172760055214588912828950292013499370718320532453579078173547113834217490706537797039407771451028288135531110470992080860489137228686777658528826223486730829333238601085154654250474952801023046131330662985955036883842663373101653372293704447088071272351161878926188354535731120886510374634710735619183103366522894564748148060821205498058631322377691267633053963714735231822268502759813982830235520626485643658555502590385252785359082616148843052152667603916460655343163013124863474778330926287439584860726438339641305675015599167990731459814148636923272015775131182048626403225473782772382424710530470638288203400702918218744050169615480397563367205538886250714759509576711915393593655694973407534496591090206492409451439080855511895126540324002674111972099128799675980605408004645070852090215318598352467932877512882530031137065895683658601151442037058302286477919512845442919698691176087418423176467659690471475110656343269185461025672617533840267360956938753879398244458391351065055148476708117006278135041592591972381613150272735565860831884804635223755696056977132353493305899960894692584932704498499146723040141297049202336406089203418312167396028598619325952983268272380440812543402707075661306347245040063546662010841219170157520064062668938538128790501224247938567457900746134805726650589341687012189328566466377360103828893474911151187142301632873187588778031030174273931702560742890636481874451493280914529161000127600138204978838335622606578670096753112692644455979491413449425711617529550057755489139346328403396916152727570388688546433766812850143125991430183373408540660660132580431284505398437063388095088200329717386916364700831148846647143272703638440761445747055087338801941200941338206295463630828820577798050784300962644143853750410295579585330492729181166016131174406936262683848540452445520539144621096252810928246926176257185416004597054760947973426536744391184828900285089327318990300931729530376670083505095654239030657793605620933393054380870629757712232507961531464916526291188016783875389808827609516464464557460082087092703546682327327950088707342661734486142297404503593246800169291579859790395599469304768249348955131044646919366583113722839387837098237012032030900660744398215212742025528785506902761376654304844292075023319102925078868930280366839696719423239824869267505536844420482688428153784767011448765366407168487728482695528227953457582587282599274410994929136644196071196561347242283210431606355824607127157955278154691044741729504185107841701878762283837543050471315218149873433058962579975186401043732336272717452933741071841392310078287898359494159498689405092154037268354110642919421133238618988066598764017926373862634196318863575802511811948945740601361609708571768690620688421073659476741453509901740968236128613690848670718032215613444077531519734495673361451513621685715977414775382724482136870784251381623413945187262070266887049343209748052923243056619471327345475409227020653483378877113109452858561141255590221730184627240255329939185586942688292530843828087940779166255160608061892873008811358043870410215530682843489896083991056846418100637384865883930276425799676765878367188295311578744203737204390821789496698361545879732331323585058532302499749975744727080970814962137051735432642929923468253019254873147907173679702565800188032876709917357867313089600778273026412138517370511014220092491881723217605154079292546238272025620739989941719013438221673752460965785442516779425314873572722760749589016713503330981270762818791229176074287951642983866587071052975240266138141350564707368558731052443410060170744139786309549022229463278796892944955536611435866979292588733567813913560062960523233171106789252450292205544901122340378645968207945912057167475108480028398905993107504867517818208091692026323204462943468780268882200396472683498096948581060004043830632177090276653676075213041033402181996553718655406524169317191015354836050814858164515576594037186118878531353022929870284283275660968071453127747425389920355154292939797969422449323949790025002187602914514527208818719720613130050540181579914602962559106726111972536790919399760683569812721167817022810524560927262185098933447192261168660208712427715484525478531103245585637552355904369360027700399301484526332769765188789049848004638380221099448990598768018726281185729280326069241787203435334139095211397382899552249782130170924549459951311161329278702093407475357062585367834635587229456686743801827021077542090574246747509513412407958427965481060177717400087739216900078559340890081248559568249605799586248128191127466034288598649471066266542525009619568672256644491439441713911933445334623988044379607336078131396613079777720873479650147013027740891295995459003787425211718944091239763027010717542277545797986356093594236201319564767031716750547725585597140439099739556073134115750739276173965862691002134475767155766152638125029241394873671663279040542034829588109712697526082539414044326134176521645528023721223330772064074069394723148530083134046084413741728438079484713635797135604051329498402911688255593630974316515732335593550883371595178599763416215777913726230211021799150208917937492472480775179925517014335465653564370787062365211771273046664585954944704940890113768786784378810946800040746715235198521939226846723578661952225010597045965225531730298299061636061127052647360164831739586592880623657853475856859160060647842217379272147534596892998547229486199611020918334039707686305570336257678114944084797269377104433521163608318576939690229699844379767044024198545963789318925516079333026364213779072412086123422389025442041627365656084963256422217589007850352920443276163000814165449584234204107739176950536286870083573655829721926693657437094692275000136522947963439249563759589815032907314170607102245249704776966101078949755594995048050534402036932999662466120013330456571812766946130745889120698371889038396665570482435818228050382978992492567807042653966599136204713851435573100397339364935288818036243814996346370761246809518530723009069572806123142834892584947316533594266477853709125227223801213388532383091294047696102469628752766924260294052713371728634968149363599170642060515996356689321742995705443040754150387509683604878580663204970808774904962542237863939929565678983736657714909108131687892039444570022677411217691881321624646821840339003232693997891938326964747853366967695721474889451798120827705630549963732801823377224733909821643005096439370080955041746684773917474083949585953801797788548165615194943893944718823707905202350421524268235445772887814974071021175723078532204818981639337021665276474971894080568676776470010488430290706449411669368162283566042981161733589607631871356001671975092128801162111418117928410414266259254922378318151845370138299281591926458316860810008520569005925005735189164212878757084698881324777027893648694149548207518165126198686908298838700486757154456196412387434105765250418818610114903245227066933463351830989844857336131661592993234004511377326875676809827148585734613282552501602786379166018013007544940782968518788106222781183518104276386229651108251985037277188013152091499080689200383739770617106606261930807042384968962873263374027455871830681447878393413766227832735863425795948276388307667798752840442557362807154562718742328587149760090114545212492589288950141662378084990227279650242708742847991480398782155808977301349119607569661181725445617786346062616090018659819153916005484427012755846074667588193708481872315330914934025168831929400330771553955796511213225148778976991028258710192585728834929492530849630521339006472138383677833638852390005685668300157385733825645712016277245703232099051620227342033277472330098380198147395822776081198926685335739306419564529316107217510323815137441700821244366299463430396641059912538159039786556496493836758072854730026050053452625306246852897820339741894954759155761171405529130184869382587651152552181621262273195088190771316729733962374882839829955067525777488575331053120738377779059205769645346247592546384773942679981234546631974978164600434348154302204140067067266917378750209083159826117010965335277691667126572751387290503708781738190583954285192976106708239247945187182097407120024120846614121150559684762676313627988018525442527337121894006540358622339736196035926906426734567535719407142115885943502640078475257017510778810201057937219603593848587610807251718510316007295394240463361622586971917683833413593566044445555176953864656411573014017891125365188529996237181796975143141495795586825564607498587123002834469764493200614228894419412929065496375151278580729864741605409250627030932605725998551948550423439987202214853636085446715261372551778261421651476984852711492212082725036869588760702725152122179139396827334816105324681375356611701427892999192866513885254075337184154483702399482052370755665634849564218786386536462229693865068443947238304496502684389103389676289006889963664266818813001337209128087563970047195418545619582737354426946431451055337831763912320133707481310317181774345419453192367230754022731196980775491502224101879711426405759276009001468247712113335760277708694682082926589545150686555415434604514322596149173249021976952384959225262555276776481128094344947939914933530215412031531945283401293173156232450016392790023614026408908911732537715081235650257813391290124894611934456493371595391471856586950651852187287788838184617715302887876025155982187968765689678844461957662658628401892328376470375893798871255198067881105770966960984642199888421704031888264551155778800961203197653776880648780573540649034817554413490994657534501459337281626161131433734342762461150929210623504987809142112885733962160597876780440156033083197557790682989467056203083091366451831658342497576718583020584358419749503007423307511885449638749041910280158747866782125740308553531907401879344565477157458936295226087486687952951774899067762345742083297247315103119033752738239317138461774263141739782445351576626848633889741956986416184076635994752028210137217228960605173180844439590549789414969470878327381347754421121908956055838889909033208835982538531536939058298566476881881487981359563403975047336318921905611458306317170515958344194765238251672888512246933135533598823448678095738173593631406069443786457438575389672696606580740154170756395301365338514081775983128880615085330576566190106210794601105973464492514082539681196502055620991131515191599911742294359334132946829284568439717763527707436545832464137474315503923404435626335665983687733650128267288893975904930523012681732985019418103196532176981542521937886100152371709272574996025465357872630821242274162976933085941162221465963353799711079589893417632458490168527774330572819823970309437829538370049391924874342935399131693280611721914960642543992877131240432255145176887831184995556921198362963869408674117384060313121799654631686723670474379432189912866715337655652489557868091492953525055098313677797584963502650084578190383234343387720021060076203013854159832792805424196319376149397512765584748390667314294760704005081852162420262840548983669953026778387655547808449780242543395840623747067653516346599118302325316326967357783756424488194361130168598277672356450366707739944204564198398287399884343524597881954073771952819823918542343937972460702070373704780335776320807699832589934625405855549132102991038245994123033034477858855934309756041817181904380261250736904230538233083580340032518609509634732964441325663776790852269397614191872684280387114122017373348925896499214438617818470631836399212564431530832185319756674146652573496132673973255783450582835451754941778524348108615989362446225033968922188130000791410930215081282468021181212301508626974430759906274266563395599924971439265446035364182085843320596867514732897096554934630167921067313576708155270578788511128282062394825797008566294002463530970788917399086980978197177939330952242357774865071633930392954896302055222926398963491736147696763168167247310192178914407838824210522590463175220827531024394588342060974127646244820341174972531244545735047790872738707325737530253773348277207830582238168336462448125505095798702995075593853575817040700329757389715247601073572920102148764454803408032232653551209760486525452551868712441357774558366104268682083859106106592424694184420074696997456942844037241884543400209037169762832144996366859882737078204576324329710384735819854376536139690476469345827458249719662886732888459383756106336445154797559411950914812159858350119259981026992250040898070693625112446987753752728026155921049989079369211825459226668933191733382493108815907503361778406054840876611533829802453936258789513357954071251529036654211483399385005415051806657640998033803398333017004504653659631251445718078261405546858477408219741413849787087947096451344598704993840643688645203528351530828880018295731731450028226688075492292345293551748588149877092757576712924356376338828906978976086293244841150247303391529339135138205075497402494418334857615525304355965629199380952858805657591979128981029000712368498946978929630102808803643027489448405844581848188941863201362569861411497048796616249657448180349799533877334283964357132181263168327025236502249211673186651084940740447446718647703814905487819342894334260821996373879388062244764502941007206789873213665669765536142040671893187913552016942069361813150586906196173832849697742139276922398188299453093207498263578510518144437037755559072988392935743716923485728843436216476758758829035210993097179010098991332361989316575631129225937228833257391788461742533063792124077698612170958799513492480220822184279072911284821195245666540072598482192700856200979884295635320888698834669870453656012710363822726385827273526986405409773181471202638882827317083683770619659815854243098851762018451471138571784390022444425721687945885782725834387491092802343638421155705028033301964188721621740728497928919490106506807009236786850735319229974701434110639768840326555374059252577420971941916981840123158940592658121861715149562202288793508649290915655783381073367788072778943469132119375247499066820457527742469814194251657352387956125988762854452522863598589474739239226932279307857781735558727674179641375716125817122099538274662988998248276832463146507593886802219418250587909188821124570872288198209108544574970082705185964685692726522955275531127251945382682405882394059313316594107619209216051964597214773621111752173929913781500057262470723792682045627691635756697837274743794482659743391654536099820757872952751017479155713555908471203387053090298935920920598663373881977490442352324458634295203295804341086699497321180596201692881785634050961030407660991600815433434459284617203552073612120573377563203829466547740559936331105943787247890468435671567274900105569354388513249824671224110696152952029251568648906790543455527262997204092813721832648234079874431489586946494777143866428436655159453502963064132943561872433066851335818730328648431045933867625003744873492061036884677672361972552420551568930113391257778579660426365219921859599454277700418481666911975215235824246033406565759069676577686802951191834318045984700597762168053523624653129776407013369384201408406120593274142587106524923632836474386687381774267758403641282620856238339442817094861671893470735022445427025792058085128764857155597845803803722497766635709414022141533854098620764717706285081921399780197554627103328611873237548582950850462442490006825944726565755228683649628176387011047471552512197588177030088969239988141095522013013090941811573554224965868420238539116800747409944414896144879346791315608078704878722590427755319237421078291120547244689215954202228252440189288675035031951825750959991341178325980625423602613393323540413131687338733914920726995434241428395261173110870926871745921667298451578024546814767651938816884812997385972329185953824375056681396515325002400125476386178939753979594148710720954680899794551945246466248313596119849475324555976814001943352031063839696607132326604003878646658232627543132413301087139478699245494201877917089240559414991670863787284514585693803085285399728766268409004002538445017425884942020386498564618807532024171652318617634793222580731562693859607554356803187690260044903850776924588030428153244844387058397640709525538802354834237006502277535446468534102738271656318225686076868879163824634383414434178117756304869427733708400811520751191377258375850795667148053832784395924390626722469773012622676445836718632257677883963761499743762670001705593538233062378010998760684284103263764996398942408990047411515717834507138541432670432425422939753337531949510939370408790347297443183220993074484904985236885799210070321239790750824041922609016633315145948911162420915752857217848412085466277939719047018606602179457849733973372552440892169141356670365020448485355428423225169676708388361006989620432385254376390702057098077681151821711064247547901994092339071843852995453671064948257964199327122789356736493345482000159746418146442590283054712555311849955403207747559920745396510484537671224694506364368042620778812284998811340185851826572361410132318946394956278703441936944413326544988671976607787297088270179141300386062472212135236413760518730518548193186592258521774910929345866112505823190532893592186152383640548034905163549713017697071930790676870468363035720974721219000636268977920869223551149845690749954989945915197903979314548057381169408579532065322025035189814723395617293761222663695645817473583240665682395386117139342891387359040268094874444175733353466618020581308189170187044030688883509956886420802589176030158207385093423907494467721138266582721386420886297243586819680373938041282338729868929652396272283135143189606100382068843576921330828649479046270424178869602306382472949768858023780728095757021687217575111215173457984110963527234337946780718305535766922456071220967183372853691084844637646352274061358796932497879339066834014537573753289300044575753128344520758264996806730182291301137421992716102636024736290323363202301103276595498010754006026221804540025232107978368214075133436028346995250391178072174975927837930561235557623959444394257917653030417915949473067704316399364147568957887498349466565116033202806028514349331155568250563859735442386744586416332474491287420945360737812361551717618881111269499472590972327688957579016260942580459617847048678653847967007278553107881615869997858852812369880154177716760270970538837510529420715724515946638419746692431349824192009131398144523333594005959422956094710350218275307021175093525705777088530010904989590235229871781775126106438483108913679877497758887171634910186647091667980772971318628016977665929084849732101887911880275973864106839008342953899435314499151761918170645827816579179487796314533356522463596842379964696314412596613541040367523364646024925341519748082609002117195192470297749995668087294613330293218601411203710548439405865055737419715779043068614823784307429019333375400069226674197844115172387530688196262237297180165004379523976173090708621671050256918811579568614780576270258750679560727319044286591480224593262854820503244984263994724333615647412512450509483345000909393450841474366223238658991111117877867459305645542466014962423066051445678068393971503348868543313160168566874636623227706253786121801563796719495360540051085025671123313658309451357051096255536837656780141119430098985552118859923456247256125486991538254147536199282161178055509146798613047329178521179064222976946368597163126492598586863731175662291792304103207676513851784189688989531167981012532998581472855102552157615760025475981077460168395465266919275968714736751457264647990093657300213396792345851600291833463105060727624567750139180506276891405373762730089226715116529568129049566833940720277377325268092138276345839045479071406355444080486373735422872179088961125761799132979889238944855865705880450273296777813041414774992734036644047639102349045706874081533375963981331100569202905492398236961705502113841072201648813651942124901605120740213517494642187704828314072619653246868273678019413535559743107216248449037787090836544308048182575100266572652702500341040414349201365878088089476218935755128262059643573287183421706110303436881427085015666874029090176531111559389873125500037700254880501231946665076573564118730457900924186342191191693519386961946034639056252200349552130590832045544100797462457030969944367740499902422279295633467405902920988512349542802836976781921384316801733503357024098282139119467825261257378600553246862607929427148332078246000813006443333079063490699625071263836667264233716593828020088496766142735990561778314655395891510380615838157244992135300544554033313001143595509360893521625093227604174857852908882552126084370560871308515544780244376901323193260174228818465212433252985402795741176987493445774271497768185854996471613792567498928819350478890656265293187471029503404226611905134751017982017181640213475041919559274073181563888712168581250407940370136529513866048131354736559623735937540437291032007509434654731575462471354093874323414612447451256594448866266633524539768260526853674373764760111740581644799041507868699071309969324154309656577065035067053763681479344056980160440076158475164870622679487450704088424123780790078104946297079145550981093234586267662184953232200118887755596453672999551658841963809888933931249946056092920851708356910674652023243153280141923667200177310803063344461931953758295864985500692415407308813824931163456358770758450976484562300051366377717645463859004586740646765551303179571473698177685794762451962095205120284547077320936873376271170097631514350821247752437627399429174424399291251872006283111485127858635674292065341910521824962219621311605590771538379014789025292372926501755423559165609971339569014498693954701679967564737729561738161995307791470441487247192800830337059768498768629302727879089534814310197450560411559332021139490917416013692246095953907416674445054426514286774673537592950396416279234174227110898159030526251746205069442317547631182277158595258840997073064023960316800864131702280095270031030351184029570738155511835164838417927124452123475622854687460307567896423935274229588901785469736451730942614841540198147124290436671836223154005675721099654964804785720346670969225445222140380790777404884342204494256452610099567987857601654837782892376899713650368091117811950428753022767019740276824664336780868147166546233378955810615446117093114965469112412745457877828812865535810491164504099386453065775856647114232619786800261490080501349867060983792408337283772236164269743144708614951509551873168170229157168495844997800908732774460605145271257231920586691640008593627653131109395366823845195575073803830564005601732420913240738649163673603754471380813270485628839898009793740600406602431384040152060235429967433082015049193866310496282949877580941502676520001357417282434162498409439149707951234706270276743392231958194941076736717970973836206448912155935154736393114438900752263402056276491670936030097504003316665640249708913295599877277553565451360321164537708835813702607069046719227875903706089274411241308598716530665783899897937920055754477051207180069134035680304069956622868688195378293754702819724476038741100791985784521755337578091382799942258722121055390356723963318330020980971178139626595913392546400569233112959364286221150440286143123821137467334707045631101352049612555415682528867856693450286004506028729430629603831586120118609723013278120449769018075631292135546162275987212642069404732982982376575847024142017248520899071925828027001821750759229946155619365873723790263693958776909845353674066456981475030001499593520044027690345137768883724093516800783653242333114383080053441493777061730506251288107692737312223290283789131224838635086607493151735373044581513408419385420420407310868558465225639626506585604677372773118172353077084966935144078661232971840659549314342295382909681426290054592939164934552509070083319822414300577252399736142697640188696237229082188375660956297986403071788888364495729922748885325547332057680320609879632681912612437448295040229190588787658554130090643997203415695591349573378980874367863578779848055946663379571571930975688638305160050055667006501610686508660099199871284736492572526541057616881292449002023446768870637201617644116845173160148659296099427308579136312260995244887249972579726380942955924552475589906910190287174910230676674178633713378599720262618402988742853241749142619526132569014489680385549484555562179048309345460139175930322136187733559600284271891090510134332308659583222676747867319936389389627348391725122511351611091871340255560764059980988567430493443253771567780270619490430397438265361042158730156996194632129153447553530186816515951813691949865673949857799385301325259380383324005611789179209842046829315478063752688893922673546866776164872233904706360107045235149914121296086205519090107908394892186997795538170236278208121435723407338795072804102741143570416164892217968139996691764080886102356999135118132663718172424419542360537152455302569240552065906296518428156522157011339991232901307122208659638366827800965541499607736834481839878594715433167196802421602191207739753917655340979984516858830893056497360570564985730492800027343932963808884253612423559549834698698018321551419959692433531618866161471240827389010401640015086138761664381026093555107072880103909760852697189346778504727257923623506213379885176270779690910991099529250282490233860444198597321908786048791563381251414616368531676105732252186675749496253083804546665941169228004657821409663404316949505821254522725816578108708102409652640370294527127593959915079582725104941767823281943024508446989280572981268511036965022497879278781187978712293502408018239998170308153134542771453236374579264474562951851105877577188552355457763577805680646047279580055559704703560337544730254788984672511749846110695504150199832433354184733679010972589312430297977693321905724447612251904947951507371144997360964363407604669936793727873909762819908481721056031868930416942405757481328092816998898498805031173596526131311982621359721318440310655225468779675463303672972891581351459311958691050217274928384763084498994196067299894726157160197093925226909187620247280796346742144140899893840501096202655903598711571960518096100079696185566668524006900298937206768511623510603877009897822586677385623178073524718944986775396851786759065191706329802926462848391192834792425418360180818681906468664050173689051707083646607559765602159886743663788769653805531955857107603072743823505865961947995126491698379702238312392052810908274130179074726590850966828363640540425933056849479136550287439715293211418965420165435622188429911578018683016921661262533480363079025458864864146536412148373497898287701142159404820242238794884985085749337510767665017819561395227224830190123811649288070971778878680655150194528078097147892567979333502090956889751859573826355923257212886926401703689610821898754539530323476041944089782639254931164968131697902278864108823117365045876437510153376067256373643501951045363720445583223539112885463961273402142825275479181322149022631472614553867374863865468168004210527940005550900487424781501534416321035887950410341037561690601924678153919023810523968500428027946514960689853998637376051321034663056917371251967167333207872235642169226467762200523896310499959997900048928417370062877208466163474217133428692268812353868706857196242556995199412857798069205868854272449624825107544772003247672364674489928607031937060736873411174831865088129548008438631026583108624246019549683015550259131432480017924065519528640155379914432013117126305945606105549722554936963326217304174143507814775451951295867980424163512626801891619109470211701671888233615823407521227828710491947531089149128502518516275464996098152480133534889128819144008373901500951956093950692463068332519191178233407326901748054175900412593311758210779110801428066296598096235668579832283855541056993359017792519915745442319820215722108105185473598576389906619283824331337029970810141593183351260343353785296107792851998816630826702436473586017757506012618641017451222736744750042197388974080510256240769463075191699431213810930135544582710347757579171846091755654271029908039851134448727885259489084015002466652325554693474787083456751388264814122326903712842300166416029490887666915336046080185136278208168777071256509324402504511904618385349602282074473706701975786441194846420395088967763234415263807568043568594398110573510472481502451742736906392883236841322418717858822460151438438687587816867933741849978591685349982212710599051459863641380649588217570579545813596038176110992996998303720989171945598680895283855837942502013448385096898840216158163380456335570703729862817686899907854658047767777427940892970739385466779622223352261531186180496910974789756122302966661345693180058557518100215006013319343069063980335962284584601495727655091382739882449498914381993652377280274469939522721366548440744209098161405228424058436601249686308145402318035591640919333949451922534206825244210202710149680578972603646538326305341814525739350309904171338189888149702777584311499027805447154883135749591194835674556630224246868263631883348929636396442891252467514535962373344738657585152137384752743129880036447566996742146063895947406895064765544032770324770661171546436891694676563207997132337277637313321913664783817715360466486142100659828986063007011000882909026560792862622310459786866894082021605728272011931361701855546957569213541840908494189826020760780459346107839744847232656829548461370225805097211519851889732791476262574959811976742207750584884245809222611361906793915620411171004462292276209456466888414071874753207289690602206375163073304288421306244092117052371694031353066432999612203430434276875422700951265852727570749096154996481473191963730632523011364030267603892785963260092611174517317354080635843221118991629110532023900214525133406941098277322699188891331468207545364497288928346038883942994306146034078967709632011057935790340978562318066781291573087015664849757258568496529037810011929564147606173984297634873100159062407794552870883051629482946051934229127812992011817367733057238117866687916509183114642324450347280370655673398449244303194999122215213136680377557148927008554168183654147615648682912060293008400892898247709066112162862474389070187868769123751805788821966713639870531083227329478824277362223696791862399206424088432884834473187563107782430355606095571423404115810886364315086393515307010991668954218937534175490370103169001962463523073325881555205214178277098884759736920530727704731370638972591831214763156170785712739877440876839495298540767588137551503760998249369076754440392161865167871025152352752104861927610114136854946529910846339872170116625900588500686157564024208897188221525444438202392553816195899864952673141084436254684472386161009663397050147106882366679026462393329373715733380012368853058398258372563023935819009229633797032236447445608602232082148901252963071704512761019801102723431127409030172735901179489954946965559792583761320776102325322645713832273198457274603442250527192393959690272422992640818587244809507286331835788842993904132131874837778936064045224110674031188068469634127688171932821311444793105815625613652517790466655756966176056761053047717056891608180364850102581153194536089937725217213557037876974657419589962130100442511790686490857072812787411538344198074627106128726632416778160412150387874362870850286192650549788354051669972067840151915053245027952027900438632536150176163995541641988084647541560661455308028297037593815449406126454385031997807807053957145043867014428407544423754084281211542783309706074965870047705121236204301984925553577738242420630733810898979166650973339737542073234506749458662045292196157263823553002831631667409441611955094784503614827335866911674691946905304737534837291885745725932950492796313120832197782168457305938763093439495982270488687209968633733286710762625020372839100537428205310633885733269675573897244218463156154981178678820143890786607476299350567031082821236755257255517531543868018682725610499556330165770674886497624492562593349772891874601404313792224612999423354313803350066114154724463445047786570733626254884902294641099903165732389653881258611448711775980679209113600834493224310726418167671882717969881330807050034040828739153721187606459354636792272889646307226175346937536231559611817224008938491440670135512843009933953071807345270053717381010555235420029838568818971878096534215792891190321152437538431812502768098470384839195352678739291622484549155818093291670372270465870435282076383071982395843629294280773980928457329254384627990350716675917130156223287315824236801398724414584704214551598308387840193523303651689423513903935022316110267155341328555808225241875655126737395812007456537974135948658544575563063293334445043799823842254190982607790850772988706491237929336755728252225591708415481748963513006124219391911112600453457910100563942337368317526710605035605248230033855385567084267114412400737816436424564111556796789020886220393751994747775049126741958133170690551214467189917342840519298124509980959065806689132006990277691437068527319589120962022656274108148083062890793846368576317602473803621774775513279376932857659713323392272405129611549222877840129482914379838807638929937430010818931432845576056602653220156281598780542456311514124786571726663549812164800655587992163899387731828681103034084318600300832157801458843529970830247190366352094866226454852700202325279218507709201270280478964774468654212499779027893890149612396147065872649902656618893671067275030208231720647212108925168723163764200955424005130350302021962656924790845161187364369408843939003498133997028232322328053275427719966196640712121365588801493228215482298990659752961570521843594889281202180228334996960111244979644690215923976850397777659363656453798608901013424901214634348507426415699700022023857472694819307610271745502710283338155503302145241452555286488230089368577944825083341230382226568328188433861572028943774306313050482137104989727265667496324427747037347711519098309860216974535682415954014732134879338177736313820932651804985440997405116946256386022455806434460501394065736939303039794963502339518918554057171777733257174899849286900958810810637355343191391336441274896411045502827042114603036331442801808833428662261923886438317075146085659711902841773603089898519167335808680207438781769945407639513298095300324298452114532579557330923589261478532755076135759488789938552351379305581152637599660292755905838791290538091871726876810286601288351152624880307706590309206033412020969236815021905626698718127972887138596424366994826434540029590218598132240426531863429246927849440294767917122131724685525954413755676823718904659311211973091757959927461158465707942422024304581976088512128882501841778920989809715361932054344225282415879716427378088758220656651430388697206483871611337876620094385865907985951475034672688980319276718774198519062282994037545395068439543726471113692598873807500617907618584645118891852984729250475982698163760434483544553952334023384425297054040829765050754638671382945147517371607464441604169175813243056346399134675571440258363805248443647221169121026277417267882282701604800529126695457038047129957369351269517822891345301881152669275590527308366688261349917040880847289789477043519214263781558847372807380788808205982759579264974188597354832300456867828377404046863684783878044399195843690224792881798007976862571325498754560382341178097120094326493639029249240405698912940487473247931384167905151613777932041881487497609862630927338883803536221207738224724073849278424821603224401897260049795729210957872041664683992860451048854051152155016315107872257341147297998704523646497217245698421019062914893570014408544347246372143813510427433944224958444704130142843443515653532634763320922033351227677229955247138290212105569281654250317443687128013177801832760295316626186183046722083538710413540976206008603289853241699745688719407246294131266408892731876021897761766458980353562205136650577894896848646929373794943658837469729192836782647768940636363795744028701396801100347833938168130472485187869349189357822324687987192377536612753175083805858908581134570231299582354944377217390004837292695018353076026019594301373298793166508727150672996422266904816204542653522609158972551883769102904326712554668157134428687115700229328472298273545767811244815331007183354332485153005038894835848929385603223868294012607438369438210273270714879694911022362061547051924476421358445254155683829041098881842800485125739158684812991620689193200987166361408493169212812054459393919382688094692285594416801141475640459011716106758323567307227940486453339674047997196224343594649933443016041162746462107825757485440082688203223782785555764712115826386732791960445219928650934653260131812036506984184365155627020808243153100819486434317958913441831873691912870361048365429804700788669712033629149680297352252607849508246975142698269682924748645867205917146043166794194163074599997139369156314192600219056205680901557264087286398795529900932732119227399043814038946236689641988257539166905249705410436286404338564078692693401977437978515893621705821186837480444555666305125688736075665296957423194290677872789381365248019600150381228103621912487508800389088424614364095311991743395076411701627553901854968557279402519123602938584656975058086296312976720669272592068407309396329400577630946080937075900921777836903801180776543020087312833900389216703376382545713851045275462125987698143763879845839602653485115461811656853428098041688955753115518346708292382130280396036225613741497755805449500288911313998792989029810408206367312739409981350264144172880350722278047721555631792748190656423664667197951675341132199694698283046407887753938067023716618478585214657343041391402580204832096054885762358253557396231130919615899844852668638499979272406879696221013260632883041614127326016167958074389797184814539300639748177968569839927783793294776403645642890055326954925508930927590618525741880978228997986962373941194949830630273591113394166351894832315712129876886638759694233968360495463080119517566160271688612423524796309224370462432129716406412529654566887709543309696264371132133700408095713500720891690564982194662840215532933798775569586814441668842404190950437032445659713360824025730767866774810939322567905479014003315797041392261058376893470635760090558734768270065677073285989044408556654721088481468529679145027618570201326670934406496268304463043326078731017556798891652828082717910594590475667818574980441581472154443622785339705250639831698782121353377596924437186386006441616950075359508727679265381883809200275897472511324558750750332561942290889645588978581264232993071586888436790698453738242821997778885476552044029546264435082922421089816729243283071371713047901738521451615248755071867495791040897354835732523028544789420687002909441815276404228482798967000068684627535488797154734854528000054196906743465857207650375755323766403246971328457997554318451187792199063177532099740187370172216951893767576650333545259775225001187608232236319532871858133584453611182241784917051474403789477708685264482940653888965046515321138792059732465846301743082355404642709806587696191293576497325769295559535675589627431202212685591644764756582504560440306533286968782494958907340307865170394044756881906119581685507526827926074911547929828030788551384263279469073090067797050536087238626615649346817649785459912211352673963922069813117193320864057689642566030464262254707407289002124153115820036481499758767999247635405970506236861758622064070185063088144856467678423895158086622652441056734679874305489412056551152424588863611869844326833487054008832155403445505459581821639765915330225301444440000311796840317583609721771018909978899208600407940637934839695277048625436973085575328646957300882110892768885003149172724253255572616531511101542911615047011397869886262086132160773191514384005090738521469407642271897979293517319528540067999634186929087235728022423419808118954475514298393285361174068265130745369178874559752203894499806519401369786441074398635757287311059003640325483101913610457192329545336833520764470496188914031959157510150924311112654259986764884292684728837656869698921595005448786165526187532529060825864941219587794650238460232448320269126353359756373829335382762657119835812626969149993535611337692258119106378757113528145468030807767098585387470520392124836538992717996300334000303728611586138097689955317777298083588856744693849898706268973331888573260175906153567789552030927961655466751513992612625494083786814454868906776451612051175079915762761206783371719182406774153217873355716690647011865432949175193393164829051898551301557971457273267979317152051467035018552798365685529755897239812350895809239214460166123442793722683511973149737597705146466735708591777923177417394499369971393189092769777089659639308169396275437549664446371768560385737820569586684893387509157207262049746021586014986262929341674694452363293901162901949679409700009411149782043903322028495611795034243231577513270566816649257770968020301162352350072223441373794423404683694899377110338127757816792571138843812918465936909576669818002917309672616007610307561358214774206975080438358072472798602726690758054450801451031343023629642786171975180166280093549958123185332447627002564704521000723253630169526485481229461081163131437863336600920663764518683343966457445891459100784569284073694073267485321013885847218019379157194118908774446027568423982002937135542863472281473173283170132367852749670038419835122326402101363706336494010510530160035287495065167221637329513227377350181945166551309612390933660608519625137199613307986574471703610731274459743773756305084931011180282342636942298817983574893771988432828488964350585867859483620566324428900123187142205545641050854918396413839578760962207813692142040565732887251212412937644963633159808855141971134232418734663824290444671317751227627032790568708279581881628210674568171526989443446684136895256284166987237414594043518994163924798464613474278055786111009958155493676835900733334195127387477158054208242129617486356411195434594916018077477162207083875106375132136393688036827330378983384720898798290601220268514507728022496395403388372671196644611504550044438486454783580987673472274682522509409455022762786155604472176444902057661848430098187183773102781873001771289066072460533204598803860887168241292181969152565824423657723918131376603508510841679622409906878694610679385891135628401852453938131758878194511093308967978982953418413233559838577447696209105516987798008165830381236963783883469319205304119603802952253904483312261364775129233824138223600930304754702471340822857593381844356450655903035856625802923473759449857610853752826806299136187153842452462126423793785629130691542277899460994014175073780143176741691272590578327823593575007404818768382099051715694896937639134563722331459065028045235794339968988819956611356323087560815759640296134974557952815219983464295137355596765588424436709153265060737216251656886165996687379839448232517921629011406439125216538388377409911398618373607373513173212416629036387592806089325711997230017419160453554910921520366810405140867032873677579864609487486066711961341488903541603996283649972275004909730718263710228025688059287267457738118790956798170745888134171023984953153263245954698956857262162995339101178118427993183764399428326524277160521438630781165052943046215901048516219293806243631857567150160636488226151641711367651971607468811316230442338026332943650791143735044529346618722080782958715924877827450729349869536330208949649903562052610271351204344135853264035483395042064302009921094913995047073331683801916845765249753059654941051198239162182803170401036349569955742122777355940618174040088137812015021548701694579017160983553405063875510626889588150931207805700955414428835735580824583912278928659167931455173312023725005800524864805307239850945188232105464749703121319973798614749231365780616277023673339721571132424745566747388856278298204149024792132801296667827760902525980295799986597471292047661741084723618929416653348278883706086520762105691313586146278009957541685632849323574020113327786951383883361024948620041558744993335723939349412040686485645199224492295575743799849364467680762340913727699660795827893763069187941931269851073448191483559168197550963376282085715736692313543498578198858576773797268486501878202168173142754240921938238653775523625634423035893531144740674737194157500846274656271558046157205400598988998460623543168175953000583902736750689999957215277091826585427003709440129613786883951417193213450094632165127554431384089206659707397848251772969235181259542106033410132630733703738321005110366151140649456308733719826096079242089905589695344313389333171763592930698285355647868032966120035508312755709418856160752197840570713790634532407950561791508951760946470122563637763267892450069006491683448261396167402854641070249856154643152122787354367783149405442013032652890886055286730225747068568748888992444821851675907781456136903197025290638803473730716374143711925987185774856307810302239727604562689638139783617289190419171916700648063743158976222928308723542583308118571593264110556096343096762841422781978322680198938983581456556956410859549254755545987403810738949930903080657602159533022093121286176998861282101561239977561021916183873086546385200971229323117133726236820292536581427191899138317593403185806249326193240743953575829365521705697767018886015440667432938539303814506927861384012885962664317808626285280340002396878023583297198437453813392869785443071358118979757045119905061067330997270545545620136702225636461239894334739379103255446970588315783988150879436734330007581070119704042474488407380084643738626463667384205779395235406405881498835094161575914536162765430759109791047291768857822565855335715724394888994862177839664006504101199950179489722375297706743257381234542703825808710633445779247283403926410887625648822919111437028169511068901058090070580964259413886769338490394735324259505252922018278923401500405704200450723985532393784068452193830122481693185766514008537802459367176984023486391419934879872125626316470643819317010384312308705873415996303513089517417193546359165603557922875215432485604770881651433605650602824910338421162401705062073838874544430782968790605848190708662066196037760429534890897789252675646543714198235740380151373304335421296673852113214212392651396062993990559774681912357137225827611907087953432927094790343092786062302071407147507778598579269702210588979523752295650764399889976485394202337293413974596769776799340334126280498890899364701457422281553488946006311875472126828829735731033159364137462391299801258318212323378660121912482879671779856965272074933071372409610949688725327420646497978210906326039572189914212563893484690894851736864647051164275917944360497433857890985044971318204078288795837864925729983127270103217430161088308456898661187068311414180750281780568255430964359276700232116594526114202037087703631757222258165042746473163298812317061776110216967465291709093942078546236039108053814725055277462623999496789205143348882005296610525812184846085197595267398463742526985551836558134131656439373728595228604633202208036654979586041355952700015569475174084012788876860186425470754268867105728985156161371121557502063536963514572235193687742042209360684749927049787586026160577814767910187190431441049202077535960155042742434099440212364515567017080157447306249502974356104505498392199345478709467102348622762329953239322787234280105835196256113443604416780771785925140860844036803121762039735493441919224337689295154571702875664152092374254101703589682855408622671326684915362852816471575361790647182968315627514258840313982421832386728926677285917583464896818378094770843953057456939029401727747390598657759741417831805568720269309810962303593701852804203218013660389206369968933465807560505572863087414661371311021408255617427094242905547120116622209794546814334729017538057998371975203539535746328681533006694754332990817786309869852554433294045775831915417703993656095443595003373265033083421811087418169281586482126487460776440252436259405497065813347666632580110943719988762009747503790949390850481329762492470773502730985124668992977731720449146560854283132130051587975723589102360510502091384537365807515831670157325656946033308975709674096239757711500568683824976410258498157373055340810753590087324879344957819815379002474710732655339856752207828466311693295382722245311623601012773223383476315043634684136515021927263313498033647371643738794948720903035659986393536705181232580765908261206092096404934323228729561863463971705278704871143015985923441367422349070697360415254158405617643258771418100953484789666001313352862154539078798937573972550117917718766916677166115469380532811573149780501534281811585231104071644957135886159451696755611433232649507954959609301865287738081650721336617624810751822627793185437569016200991840668394339295483025721876601537398047606200706372388980351479377446984031776073307312593132577432251611228372473777992545760982133643729823444848691721668186678761662860288914672142490774040659839366483398580047750493739477819022904144610778565731427023164596759372188946513783008455269041764061549153133219210702474337537966365340029887072943053409394729434778713542479864788246924557792095673515724152736090935609980525249976779872286988314536659971396215748688632463048122042648829998626236579422024037451615522003297208563931887694085110819600702369025775718053735480462385338287435008784202159701032470138945670250505682672537584606177911047358950265962090755732112147862041942616212319203445507538886907294759789126024166903069554702787893155833253272362290129466110522214993662698954851232261939548958942408630671214487945031608630237282658346590757282827797162822416113259695398354648042599433421009038919409995112102909253981865802881349764735798174685509918600547322526682214258220751030955852955476045114551329856104290313592054994577242162665606240412483221121304811759862236322021470108894507873506115506297473991958419192958326889043814214670040604162849932607625360985076994231739043930749386762166399203001942463961880748636769540699197831013877900720196644012572563547386461772767612925572505371670499314046931916042695987754435604693116780260317385095123058230347327919248991926840518313015769349804196109171912581177040045071337124189392375654615738869409396515156921719721992688208367132245785721345590772877043216769078989816081958398078372169277344794438762172826415968734417942697483175101081398441230167987086517644697939919529693355340331940946981121076278775161734618188787423180158393971167580915764467397987507543424922100156330895217818423223196780740432376311565240326392082896416915078330851868101218982372518242344359271285276497469663611666338068927573999079231326637495608992718445351465422468043249442901373589214048671445358412160165797636716230574875792803611975019423261041709135012343439127828460896678695062823024542068256978463468058036586608995518830212140540393179042744919060346951915908051473725101055892020110944770629881292397115056603352550618832490706388486079425208159991934258456518439518752410130849080471667799572357061896662868185298066605471834520270285433517539628230329772276321959905199510280275799743153987779274372044180002523328280484249873258115453520176169470521219107115974466751480514818679640631833282877572168781213066290494799480304230745803790159947470140291776997963342134493906992462608612658936128593290480723660259935521586190232678379744874688958408789390590999641437825787072553947519850710436748246516938826644655038194993427383312354210735798163689142300528806429234528296174720200090479425736647242038732930689093142944589878074402203244780111344839026441644799735910601135541109082122344876272155632889404945112720372636992905555616724418246389536010278541618950471287501904514816276250645856938587437207128799301427119435005176326017865540175554607929910323383760514868101419301816425073077273205071380022783131036093541216179390339765655601447312102277145116694250145730253924503737531503700953956111416172104645282732083327988624671270361211458143593672913685103693008418210322403230058477274716031494208426741654807766187225790207364734819991709981086049450557507108770172281521858939336102748818223774136727520293874204028732928986374219744549314347676553596788632622299043442218952564637707721172116148694261651274585734557092181073075036137838055001689383846393628483005484702042599124851799050638129687531737975942401742619434558423261599674201158813265234051214448647139473418016462864546904385783651274377860763072709265700305459650156882979049230654399896663909760312681012320491393675128628039510601987895369422060327976112597470989036467375960984962056511674207319900104690062643502231196756201467650733452173167032266535468997255506118425460353545801638015646137892655597632188534584530267796204479562832686276167215897243143453347674683479537853755353196769906374643465720112111246425421176041819735297611629196893680127583495848457576668420264191151691792957010575186395654950030623764764836659382583182005479952452458325329777560555929223998282785784808618047163399595845610782501968042023631605251167948809017429724581817621946945363122987000706059234977734361825021522052336965559575065821699090578481760500291465629445980173600719030803238466898706564455967124483002137974099810267740081570854551738233108222130799406966250929187926237646459866576557011330596867310581598788196815058579606017005952571296372261633064286326400912582945575304929616135860011152171602894087683092191942559987526207154339637241841468934063850135108460773853389284489147049637619444429704204510646877626079824055434607012818879894343253621836991125324776553579879175784764458191160550675169442233693752266567830595164116964525813553687124124488616792377627533222140223191253781645033903964469132108374814736487892122987621173436637044424774778371245002843881791764057260228079403296660629395168694682978210030998025059212539837892425450744980668296980109923434782128726315506900645206351280566918617949585808428699701540981472855961717840344308639454055095592520030724637349793156413215123237796463675235653042436938692123469364029137788271831465809536861870750635933154393795288064365279858641432505643423171918585297888589224176024305149690601431951053493414505067387346475037656809838277540429272580204499946189429342582864583360452956832756074161112057175319964155407199548416134211674961515489415323364097661937458406946080925836639531253649587032077653536036036558218149800166288984605937276542617645673617321941876585752822796401421610628836968521561169526831726308385602601130075261530744654115543400668486386838259817136225826511730313616783035055310596116567011724929830958917896671124263637205073245965772545658384564753616160598302060964555774126280500374533002730731796935649503007556726276537119898919319399044538483007711363900736964474577861648191900185996634880334116217758312929734420310924645471228420310018312967758409783631664677245465910227779651952295644715419715086125639986892479988377438916563197343768663003455775133392972454466573796151452017586889479287886213462977504935673381570000577008333339191235540780048052602995232620814544478769339492430131752613942639545139932603433989609723992826276062459430028953677219287216137463433114172456118083250495173127616979045764889396898646427979508208742592506188859057570060736254656359231563695761578553771737516442021746066248329749332611807281000663691981070525430844678674035374757652206700881082066524384689985415361900143050908486275908500164094219764203826555566466334865501835167523502932705429997208714916139845184541575486491756779909798653123097009431149720459694277291725255869808805253878806070491456224639865431350815827074595399277791138404724141111096065235082106646380208967660773539957418458984221210546564243104145988377494203668151340415434896851080501815933367688775191299340661013374508461054389743287476163439876371239885558630746355936715421308087652892126778360607552636031529818075607557167516128728527343614166097658052162377019684683261728533818778924202751717076897136342973476703678977675144923766572999001076245520934450802589193868948369619665740649970168121301229637194669238700192519326375993902869155357609512047937265642423125330620278950549267092839106898451047983836882106892815707398308295123731714009630394007944576487681308996470453776262242292371287860386193615420584104778478572865440561372871882149845065776652581817210881794923669813619650167807063926830802620796116229312246168267186463503106943352670991426136394056982334645868057480400530856112447813210434319473760516441870733860846341231645841458146515823973359043060047585112314396623215806531858060235429136879684716677582542565230738180323696357612617176413968577718574552638124285594093998960256024253310753774561717423441638375006651780746822247773536719649830760682737012159470195219350480921277259228317473285939147642930086103350749404000585726920145017253681698570038101099526521163567672837208950628555135922441220462138428196288075012960100647412231140675504622639148294846793690606959212492278305930028087027578931489817743570978191862586485322833904412000038057533921332621067608302417361048553823857102659977628533505480738828963971167317360257218727819597061041396766707340168135335452897393741537927825032736257939323529811273131550353276815948987516014872370283897929329400933042893001320055040590520008290642410711601036327150111439759679643405652660014145129471224588476700758448520129138718752903269336187904243641138118788261177287045117440157281025090728092150989226773219844738519662370507435943500901487080439474651530935312366883287686538749472119800802640461872642536190375135409569662286606397764998629209675076082092166217223525813580673494651599367651622163902375321498508107727351950879208187675612250616389765830218307546130720380020013633396346450796257234342763994659601989523395465884766951302751782693060650526899564884703387276204653605568202017031581803425823902182868317523967399820626414850675568286885489020779425052157804818797365004510399285739314035689315463066174180503930677028519115481938120858708191976779583726350933341043370253903373749262561997703450720617444904063253569896716049600310614639184127753848990419963004534776303866418254538116892642395703616225575034747292894943147541693131558625419658673147377162127806131234863327460171884577240975867999050587715654138414932879504295503626535490829963791344633110917495340176049149787213106792080829203549296943463144652791573437305215006813014070954983382490806515016757079455528421175159335281887508995620426996903553957312193799592146161838978987211116679243627315818768492348716645745011781242823834551956626643258475144137598708880899689726285118571093607683422873058005661124783094546754173023763363647858497216715221546996875613376506674224483698187440951069363908529953129427682941966901707254535202760241513250646183924027332077134066922864133106934307374902274351308809586878002954819557546008143875781670274020659259307622930993781986220992967805509440491299509975969565514821471647136588210931359116167158753857479256785286534254561805087162827912257530871317958349393096484632713546717416959679639860214852322436363354415764142572004748939908355326369500251034326039667901980575830605437835810927422410040727973961274176832914467237824128520722645063535835728905697680960431680987547537539440516669485723069528105690475078649560246992534793089868961556211473567880147350445902024930143469816380000657396634070554765708168398017347146592514252322544340572821082917171522691284104896400118736294052431770316446441111176805830056047362603383020933900673855708122596041299091328434260562497891396319205614837176797996147111010803696343178756244343501151596071007872071509134631381245002979454078022137314984218850660374668743245670770883211114173533136446002818984554000996513812693433656070505373674389703696933675818593158804500495076267835770627889285467285091323910091749595632930674789540178839457006703337457947329859042586709716829014454863612268678885288399486798602534041134810008514499500822484448994964718164111815230463076980299733405557748644565945480975028985176962306542525440573989310600653493887522586789292663313224361122938411529425642904729491368725950789042714056044621130585022969666522143998863379990566723018982519104311407182959038042535885328292484761144196761035721347429914305114119726533622763739622861683337281234756149735028656439202799216857478269281023256849987736867456519465145393556191748569479507708411122042932991522087214076842110551675223267935195845226643702922102013611054574167996332467558116610523212695877866271918387272731448205819542059680919050309396539834712971481079397090966399070026837107885789159405901413139661426809962543858692744634665341391904770701934124763064821593393656157310586150331794411972938012434597140562385720873073221170076172603843311955854606967269080369149235277046617972545859209627026724622025375891548248889658220417259849847216021329387948729367053986569788014758596641413679810653907117210975065328185646324553763332117929487766046466058963199770934319519080419948265719797223849798053612078995443578844791152074674797844651887841097908705609206739070678602381999947624333898029927853381650666243734989894473299821924347843635183308050781254925847491843992927344531003228508113945243814981387145373696878872229052379300637707665087259440898835612355846512018234391633459665547296749132563467048250791295794470120214514092889066761327454058079634998280163310907568539166589169829183157657689696737345616424731123288171168883107679052588010844119570642548860579762966790481863655689893778201150910196255129237884353565487572594341393097713964239254792917884053400253227572359761016569264123435009601552361585876827573667376142092391120491069610454387592043139463136394613266382525303995450661922755761895809690968254740165164972689700210074755944531735856029881842956727980963803830316390198360798586233831718716531897532073415511039794558874532249460515201181048003977026246042561122318692057534530474582510404253905031806214033762923140035489852853616391786787092777060848607567082743159667666608637233221642806807671228036026968110907421573459434407789374866505725999999429753554863245281247344876473978213031606721169947183672936430396664314501648566588552219536078385567694294342964424889336818804388474376343488945351162842181067886244689910354755972168507504952621961981313674985666312529965859727677803077585140582912924834029261216689296064785605740957391150561917457285128548431975947254429231499263920481876848440784400877063826795839849265307012217780552757491278166281341411064104662976703630919960898432050345415323297492198937318671586710191591212169792868931390840218426884721198321637012966465549215833789615670653235314663786416892578085818485253756388553113986075374228960960455963280281210801019832551023772190811370031756822298591002247012333609603797007413505432268271914980259019024744003988255432445282970647930402331054845718993521476138947057585256363905697199215159765640421244399086125546193522399389366335879143327565274123290270727989829535982711545653070935124215076864796876014763097855402711658184057640926940515909478501996902447083968001880459997898489857200923563483967417637644678893427546010762542807142131221763714784784340209508932923646950276388461361742424640223904726702636659291410067184223564915900968195898666955834440631744067492132668008323278294332121652386041176394610986082267399127752936751844039779961371399225622137215055222008272209639330405576780892675333876617620433472168372972436246006968095987276905431681043730953967179082459695346680340927520642948325761687174475048581544181821997621947116130587745924723254871790831840958095047807258396607474964398507003756738494370671401248971985237910802517412008569486180160527834320326171901805358185980314478488299962340772871847109467210968092187430096441268056743636811831494195224862165313001932281683708360384394773574259784567573407684741274605509853896499873765181744809400174517858240084985796267876978128654068790515018057602120677747423345441213384376263417533060491072815802579091552067129583181984412368584178628889720724025614445003862485469382432312453978519388866823772877108500361982664867948396466508608174983731636502538119956288174534565742244448294507418609809076440704027928662922296990965722731936870539918132318827721940309469221293803699205663580489122411450547885326906454440357489670281205333452634577425103797235086402226871837494820712552534297613005556092519701134704169296663823619219991209759913989851689309350739254519198200877878682811599960834288061195727851806103576195167003404757061902501910106648325788547475543090581554887531967989082231551292133692985354857522588953201716371329398146505445100699113819838296051545808528020750050182080148393583406661101339597135029860728185127032793135800476583260676432308995435385928637236722128585142884846310975060687097887804125208606690809121308518328554178502017713559695259990931716595596915752578000087693771710878552997326209936034186148621147025241890672447871056156522598155533927021937444482217612348869001858877866469763664209306239698250290983416062450853385933497208132463640982866936062529363554725947341718475342347543769358249947432910716893720554871953909787227682596375335503222425083920567620120452484633589176350926577470363991998167492712565505937343751390233653092718923714713596054961927137307297592868496340408865408033193982367475584773104916116984934402426261036119495642382919346720302946164064730072341129495493528476925978223794537871647707306126520299738187815025465438143612324818001585878209121460629189217350913305090491024111006388744445847590983433793353838672133490158160657640491779642100913483116753588667841737902059058341296829032187520313965662713643241050515396721685155192174671522313129725784326699263250201089027992903689045801790632066124319393685238307495044741968529393641330025158343627695158460955766834321337522952638881327717089695835409906122327012416512019130964060630442747522612342769115107255725119875835963418987200707166763315902058875702807204864838164827465612770265982478241074479474225814252856381179873948357348594440799976340259699778305813004563568083451088462209606983768774585776556725243233663767186085830918534701569334337307841055747956233099868345208233961393867154001615214939907803823579464262932879191533369841661851160960140912091436889444021878099909113440275882667787281086850412323961756590813427886934564156082051069577331874235938429787621785596537148684949866139297556277063236569713870585678587519358144386201696029592924405439055474168782316790383997965967864580246307582630708203902238450830069950424850112019846573346037898930672436653458568618922593649927804690817715660191888025346460071794013707401779745697466713432845564279972148026183685465353127251737796065935680928392098143139829923715997514443245940786368880924992210126935365193858351270930483302999393153937966387030541788639249900121981562656315741686149963672820819696062244898632127500417486308256245055744566885921840073450880689443438442481126273941573112349858090574679119758298442979619944731737024262888314543386091066227885373928559515006465988130829223876918305793196812866716377011729971791625127531400381538863928402717510382625676673520915386084319801968453122475469141171090767208141667148223106807199805310694409818618510653938983637055940931374964743311978772359295959146556729839722870349597716789905615867861217202824988896737651460949926309247693044308317410961439944765504877843057928750107831238585785552113973354546900598456784214284801850081930560149611980884289638449576447544461476532080400317918216586326137721565485427542987313171371406581783024263649389374590514361942320845695529576075151566507571093119971084053975752275183587671693135662669411235278596862745044838568518501079756629670961789446771135924157573116809253939405953240876522032420555714735112129091630173549586153979837858098458017785060909348614503882893472478294013802730997739964304338186673468527325522893919253880695338693410457128069873565231774697570024505276087864725873243427879325358826594405175558147827230971399500328512791766961936949734893257007176228592899931642642613495813959520720230691642811958652207386537105409274266831228203718038890268087973566095235854897609953381372415253054417747353196627445959480245704111703849235049301394580384405962938072115278977095716357026524587331056912225646669504356097295093417461553813687355014193232343275013484522344006396659759146960078191249497046767751649330102927042344894958166290854814575539934920200418056620667169559229060085343324303895100624452795202507518916650603364502863533500908652429463698040385966052837932472270393141995580538846346469587459424715592063415287035272075592383448999397817462006189967332744427307694383218649404552677831064934655195020532733409206253358253059495923515883563918933929888512682945274369058173557105078405149354767031147607062221180204538437001886794281749418904691391184163536253024954344164196099817763146935281716352989567726870667678731973579853524415889597293440055803786826977282359464902945290533569553077698926337232703122602757587893095665534814821518601716844285600533638849439331338601253560856992384776984941543309215778244361057051068860608843880050384287501997792838162207732372706725581015238107120091952109492857416447946607064255197797310585172164897863306635440202452777728283664019517943402960189014666224862373181572593068148760660965895383223812579357304212714772775680527078765387957604964959010928220127893230614780914305908579269697446295998061454126130268631831159712678192680636189582863463343921677601810154218345118974630340967020330646126344381527850099900209404665649273413440297047486141736985830671651217834016994371015952334972372507215816285956717171754146901075786989096570045310917568697440396082044305085548017022266642598112616325661666640117921505326042336393246510353865509067585644203334433410884898455032549235134297000790505821364195309937400418997297265359889648695606284379888155059669025048010348196559055309264000639489036732858936049134138285326986000246578912509129780724787382788061767447100984512910515058408809671993332208138842086810661737615446178504119768495795481672701441981459736214818202064265633591612609198927905635062918819451617869402578882780591057643977706772133795834655843034167170603804007283480869487481172483380651391985887939941440308094182694963680643148518619862661122161359330118465011786147174553262192320086438315203633176513294491982400934191923934369376205787743198196139031690998904791255159606804546714323328927582457845701173103041740511425071705854278652312069117625754290296907368588800258512559295255522936501133198409742734956376349949432131792412037744355408817893212280587302868275881582129991857960378185086537063745166385418331642676116489511251945676870096235631841389171557258936619114928812172788549466223062919302211717139966042103872293498845782348317229667692102394409585527410299216545849165550022572558934483058386198769260132414187779592128289499035851502795919312000879585821923836246621652384012134272652858865298960675291191590836523551232866856976510503499862816630369235471248711284598111958929699137412265020029833897836993070142478902115684486008579973817452975009046983854214463979560462965737875794193839215217907026405182770890625306587095550414593582773663374887178482908333856581158464018156113166714763008090452217567231099532716161863039047630526414391888958149466480746853143314591121935748918575039503149946376373926692928705332973819345717733520511659304783537971097209173736325222375388730167275709344092325988316049120316046322162353522459954362969341376103968563146555148189798274880006868139438412124767802508877744162021258809899635570070085909182924087132554510479275386577714503042865524098167681405954450612601504921554804731692638664463039830521654938959982387225943700183855268474053354080565684960802204221259151322112329895689956213940060411718124628484259730462526110069985244225813917356389933181272338675155091967593014981390492686646822613347385011283817579384667783069782751582263298763151660433869505335071498621545283748283919085213277865478863459205160821986840017580560059451096000030634510531929414348283834557377371485457330370528522884350013898230041692071223466164163117711422705812269006804345592720360660033806440995876394543335858436818406117419572002908018610255171518175161759144922086697363957878172455706061010932851161314592879611144572374019353427407498007940392444135699368008354010041095676193346814739142994119450880000385452864675607729660298175275641006603691759054105877436319401855288649184680582296989083315249176101542177587453238442767466088075298304141275553185155254249809229637331905903569752944807664694862766646597718429945318768999313443901921258281045473469660137079367662627766123897420628558106830792173894404229149283992428467512154381756373118882560292298143646017349249331062816235742903347125278321091374193192075302716355602917683880360938238171235833100575052637039139025703600400419272118051961573417046442161593295671780502105345490438680804648650409031997555688967849595902466825381804875860103710910584894471643823246537038058132679149449211166347456582147681630660114114354737015404347495673956463790184924176096596543519250619699252030289962401921380422774559090490932663072200342493407380298533370168141007582317199426558639503388311363540186479385413115328231724985420257145211202403476994805804243463044135292484302426366304330625807102297456346571351886560459198906962030509290214514517908712865261797377440551658279524601876400656601387581733934666497044922382931836245123543245277113222901269488089373839883494104976984022887442962064878342077076278803755721539434873892492497065529895186905606062152152469106311490354384242447556540937910406518980783891807329917973253192586882794049929649820274416982418278044007193916073697770872109889937135778646760498432175631480283050137351523366687223837119001749316720821117574013458839970938219770440496865964991452225056402578636649121347453696737574577473865266717888979312356299561194316955900536702427027028656741570081395827753283221031465019797712042146277042818390491514988724108058902666065065609944820754761221885626268138317986838095972700102766720722445294925003744007758188316908024461805281442062367286201921989904350869720063061420013812100849948385096648592736852525748133181487761772247029504233257069817753698663112803173281342724789417406554743424005526688741721363466501574138400943230464144392757049983156367184012856934791547553382070849805374424903359048852878987009668283759997104772103791156426796039174728170883079629620841952873772434274464138418770101202803411525493049574991301476861747816346861978291062114917322486436399642378774670393450947853224489022439375998554000504797220409975190569638061185697805633109656058875997434601732239929135261864904858389449425822634655872253656942032731532101855738695206902344369854139138466450581341158596724941866976448521121195376529942148857253599060200453913274712724676370466143540537383244289032545667654990830230299758278685755528035074173194114983859210729630126411865800890519194265382677122920262031691066004176261583093606299522798200974580617088887125239573148564142902749150347948156409149022341101008275804203011080377609875886695431160853302317960259893116068062936638236616995828901277499314698239990905077120919450527327496744726801993614142715250955506547977131847898424309819694053630216100380617707444999649534809332301570190928579847202414099797837132227415307273589250172488766302648526011781944283128702746791031497516001605288250982062186857346368440458451784199593371268900606222539797026220541434950829849166485827643149962185231252601594037729206649110277622664010683498677016378365718849315728224977242286757076280596455578468398146842642685971002842143017817708741438977751375785426739688297377405231339198749524131244116158113422893119399665879955020700142681828747183699123837427369845365918769568314489209997088641247061402199342197983322228276253323616289077109448769486113305002928699205581517875917321368642419198720631765853288045997831924015562031876267142725915369243373208943505499062473646161546156097476260029285927017344948996387448015464832130215417345751327719934047936040355043754643042034417946852637477771423393442119292200918162825872585540480528435006449408651425512696714550796780453991019123504524010054734819632270777784998114475499972771714597011861851177873766377800461847065930106594707338898292721504544873963999062992472641590947061735866289371395385633761436418875101455291511534188496396859768358766821147942204474799956025471454447883075339252897904567885113740604984518913738197045356535426793553733786602939593549369305810578425324512011348305208810936954663428834102514385539688446456650094960968029075737794146341114736528358637855277639920676153775848391152266260897006207011607230738015108134170067250527899962392089663111954739692116020190942438953272313605089655708253600276929444287386352338095757309082664791871923699192726913453334556989155346918592475578146563800927431390913947167943196192367117618791343297736492158295358984950333153699094141267810009854264647266782639268655520297224099436612661418036699395435957635595629774248633011036325934688932449107952932696338113415719334238837702418987573701342400925134285188804457228962523031429344311174902651024951887969386120768425873976175202852946720161682505730941839420299894928323532616037954501763800362763618517043132319107558915503684306914662102878482117113755179256595694606854000246654892521073406649906161647346249549957473174498483634050681898301563190186140012928707829938672783535676355081572347026771399700411529082565386723396876219337317166772731979898102061930395422315775335430481478910537933253474392890873837581234364440064703740898158611614797781781378598451766950699295167386527340900973659225923772330480385592587881897634199370367555069631979634376653549783570144945661301597043321808508845813848419987069017954176042837283502731852072262074996877767826541775836692042881606794469074996289489633005004277313085602143789046118106588481981843392787773102619369901047202754999483879686046422241108755705539786516492525449467632622931934184075963093074006221152972737879112544669920153613310920236498988223319413206871352861836092440836370887086911909040996613845803079515658516634520267003682166204348958352298926062042392749024775548699869805037109243946907669227983680647466788151680658150183649399821926955854389238486178701884729020796821791942724769933732581682135159836734955502346163740482131538419491229320043288632892750228985149567964672362348462296324423171314886790973982170219914664779833552978750002132366032396231145385281485034433102096190266032630392718502168662340734643211442402162525874251906855938790859594578085111556184335097569462509637957425277943090283937465123678492860602075511837723280475733755786685079475652074970611203707275958772421392434215348357814717122648552026033141824485473049899566322959397747952391590788994824082989527329728662699525186958801247300737831743518278104134242015223998369611805149609567878357727405395493688937759200633885534457957648944727414732240761720019229776334593024597035535834211855308168129295629777399032470306397370623757950341484364299091574474369851279958216777453064328457885733944678480899217901084033944260356871770448809615557226256238958067138099506523506350404386970809627515685658372944145163236245413754957804012668174693467480207313549120055627907057272253896567123286526070584346823428835656858569566114989753758636920419480355022402959377256615665444812024925000992607279652220221140236347859274690335160211729764018092256608353269084239109291191690922727067407436272902886011787458342769678235827408949120529499705706230580337730684982702351983618926426886127273120483131340725057785717810766236006106257656376991716824233998225696032272507490925290308771368249611127742807396586409145597543241288448142158061444796449351252347222106702505511689189583114214273557389046714707163403829264894871739147136751258751945944953113689807999278870492104078585753307416375722899950831460664999471546990414221312092520087466886551403409672131537245589507741042323011986318081177305581290768373692903951752535287614622739317541178345387735603430113486466163119358787101831618414122219312745997679891809311154190341331241325409172105534523502722412152927391965103578251513582064593114115045665325477441726928916548014153480122499038147955461238984480914431104913082520930389733299872674065176361744326411272671054371000984902101637451920521974520510129151952354751167675971728770931854377881997100377398097274888761726841067665321865985729291040766370588868513468860798907864145364989928150971457362993399200693487325609509334802833600923898360675305858542003741792207504320367752315546285483017268760881872357908897201454888452775114514286485369487159134030593427294033879642742539364005407436800402451919228468465114902642483166613209611900714145621207740510270034737867904494852234042263626416210099259261060829945216454140564877707930694446235662305788144467802270674201334666757436310004221971270099844992019921759218694762657561289861382696954960323231128933132223533329714642997697750409004138071753462190976858416342603901105466218443687163261373865610273083066197667506691435502912058427330397827254591341399260701479526719611918096631945629652429421679256358015815903922585515864218718802526988810560505466951443902548633770095290979134455115256601013575982962157492603893697924955851469668784157387283829305760517240459532761529376782164763629050490147266049625312201184104153941323826450276032204188215919900656624515286865093751549508382562072025598889849238383835847760091812394849147101084114058105901253409262444076038752490025808726120163452867837464931278184874247510129978496817602169529074936584066275027983013638870741903703252172376271571716295446015811933488732608372438886701302639920501367358374512964268141048057405911954039230761208655850375903478793517023379758543264833073046948930466843638623803762625214947713293065656745069147321408120229958668163404201213363941293906335509497909410378474394567744412306615558178602412521303437561465215335725964336331944141425793271154408200701220022036293638588705380817429589608946484921236934623928901850351383703448265332859997994930094298427411032039783529598916193427623240221084638229405385985275203313342678997283193510188298382174818208117023391671216865767192323794263524225122346439598191330089972869696803149838610159338936309576245560121219848459793554592214654007668208659319660033260285628803111266867177860034873552420742565001867508698789028776206565906097082003514035965092994900090933130704391477787729042292060519476394965276339574379836257746927175641344812846765499070236586601839920444942762497206332539456609347911429270891583885396153674007172151955773066001553983281288557033314441932290858464618719955983961671332408239206583748100671122027875015329251113407401734581052822569185987948330009019398390034036510172639297431297554473891600446214201560208393748834519217072653908437900947040598289310858966576602458397002953658053376644692060997019695479812775488964568243536045330502728102776840986774592862846956255770913422662870189272320658797813602052676278332260370145505294391693700587952556315407466280669308061407729639683282009656542683465084635625919735492631776397099875024348282756023647058361408813651774942724240735362969410917906337923284362281867179279194427626920618629845471285729771715382236159164684514359796710143845149898472069439992375013330279816167049272315943883221502827072752231596538695723523972391959912725384510682679421885653789201334759537603877692344634444757141856419190952062506286725012418887864955757911751404423273932993190177337030623933278929947041069106837415408603640039173786419187741596486007603407203883256237174079244532812233392877297500865213937745703215674987007141278065638225366221733155935387553521828113985000326888002117330788994677372600717413457893931340831734561381730081466971589317611327080424387414887416466060955605152960492477390866894530032559381794296909631365659623486774730561159949254401623099595084668815792603934729354170712064668290935855678056273055034057031901075790196298838616380288671382240621828694502758403887248545326224358471985021961662678921761819307220339321246020493499787215364642858153179831852006672647462429764459645580701844699220853151784008276689531234972875804459625235610322896601392867307545448776653885819741240008476854303245040891466545385375595226338630640559804921031345550917874592788818159041620859121474459437240740855561976192348328130098759539280953644178340171931084616059850431413304437249339888416923876820463868168184816877280157542401599499195836416682388936908152623008253590222718798143411034245049729844565272144980566402502290787984936264992978095372974492373482908863999629974120988103288481173415077681859092500366682105552177261641840290440210470168055662106996984871497246752288646862925012567150465686718648307833623274093799136291690336856824780181271886406671805731843505027014847759532741572680685074495923276988603278144439652153886232347889798138242648377280141593714262423396761226990927776921516201086579364827021826376847329583237070917338217391877394284685537290877123594215987388054553534939725425129219524274961339277806609244823954207407888319664880043473629464567801402396385589895717517646250541118986348753699286846362013854909030247872526853787391647366454085580545237422300595615631674075027484799023768973474769937821515242604476592046210393585902300609089201256914947293201203127053688266575889461606333787921129406953143568141239403010171183585812373237288903119322583946497518786923790785121688321034163809337246036540388498981622282776640178716990986856176929213313469990575570776740544992610354293110707701090803655858906930254632943258023511341167227045477523063083610042553533117925544337721999548487863629897834957012551671823714458108654064218581212424162044517262601326409752610566831030552509614155399158529101169869541025075640257469190468569658707115962737608847822539776943853731702930071087315855435784259520162365883525844028578429672482006270424046135466375005883671876549480303626303293249895920593945174636650232190218368415119699173912150039995015712278215309016672044812471072792290052772263081448716443655156956902835961692002354887781394698342970599607493034941672089345278071829873055046951665165328049162235388494463317859921088416358720527939895826809315771509342325416523193439165612840423407819840318787547075130330971021215789199943091536779041293040456789101218139050294596443758172829585266037267182708441554382012091513819685786329227018302282273351255783349022104758133886669186751128363445287712373942551889848314994959404791438659868375161036342531049603430009601863493694524195668041304029936907564412632278101303772457575273785761481172171960354724252802180648862325351837011083853587217427444726820218683560858158205131119191752746237949636630287025234375118056658735752901909658527086393304859889455813909032231975813787484438841696354121190436952046595046506657555777519733487539795340887335832386157064168665749581153623538750638335445022644559976018289117472968849721946717524140210261636576292603834552254543874073887345924453241629502923152957735046960625820136696684280614310547688895757282996290438234235586653491535723332855519445502731047578042837481232005508660388057916334524205790574163609089031352229346023830323332235178546468423764548304413382654808959591205883788479970009107983520449658860060181070765793289648558094978940417157924909137172176477304579211175894939786176424173977950463220301727406309137729503699653535283314516637925486864660497829046934469665368422255468207073638908056880593626744310626424944894137429327473179377580576649775740977553133309598976622038400117162553858351645614150601568850174140625599956052130297221482942029565284622780507628105503159651251878513100787654179839307981093714133506612489640178215394587813737595907996901479843268693702272713723032433109088949419333541375097237053328967686548963624022431025894320667880618976830059784952133153894156881131520800199605094384411399895172343986630552624241060872036360957375149879621889636383105414466109868838352642579768084835755155588118369086501256738481509328719714651189986789623950114873052461458008005602125730515213316769427564779314905553566838952513549173131011106870786597181017641242344004017200862340961086187412030328293078845058838060725790586459841756732089092274078431731412956782054704024043543047827366659297788851497932652642386354318192020619687952324603797907882263024742859577846521008894095947602137738712630502799615437274470497559735612883996081788737542203536143132402210215244872368030302628109145429998414684167065049714082666447306608231861123481334820616767340063450380873548417730746771773986384968247149861693155224506873060218043271868062459832167728413262910798056495352822035408728460851314960730340376046352147875518512101694382641664404881185574140982034139105660007175998444164005119689681873153223660409222209059711189818340564837632331205257408695017291540003966272121687865397306206623537852556400816424644602347104794353100986753919589193195819966344229941444849067478286994959730875122195888272279134473656215304492131892435834476689395376919464372610286310190957971409579251575744591797112063167218723795113442302845410485590022187477089049718165154952094264661277303440880485778211825411360373904959130749384609092994015711145301086878640128895682100866137035536155829075608075593457189018927858041939116006913877523298214576816694002050485792254219063621835026831853598255521507451937856267118170099695610442484736681116331437418146574682516545572951105087066766005496288127566594227232668632593128516672300044474745396616379626907663021061626286376036239024754646237384231354509406320719300449895909522590103873103667615038782974876153483863429830876724578741777244208141612100595532078931981735603184506675978506546457596535557015475875484241981676998532485810614735610124373236629068752438408981098061650533384630163724263879313101869082478250396248622691923126060725571696995243929718731776139745564179125132423168541632660064421117686503584013175720985904684765521234731169174760325593948079052636816757929810808670217006810721327253906993811279097336015017366050044800930120792347557175783410062014265649105612886491793185433333250723766401520432225533568606984063727815380456134568801865302492980705645878511189416633366108435839381701951812387860518557396542890775035592587264768511289225380750793820134245904514941308564882070620160552956613965439571066356936205790593496436447840613700313745967537005037187043765252142534767043673163109277904433037606657966401826498181874676585915154035769816396897606237149323343922168766866809329252504714048901304979327433546041612600270976521360208124081176913508596730658580844356362768048294916095766999006209273988655813646301125181879006392045683018887634536485369302852321873747517090537004692010709249956166241193422650886092259145305624391570406374621791650793518192032372294045509593809125903452429993541588339788238270734326768524595033698998353846684584026594825274453302601011486412561065129479911514642990967537204065870142933638222133681092633039720328974165219767132408654893950456338360953245962239623548598615561999208280735011956453012923888806470013690704641494019336785078406484744614338238144503029787838890966153270918567789425969085427926578177784392688360609972691258532090118104985127970072616449520246929620497068518053576530851288623001226505519264942311035094148630980342376603676717425616687850426814700632289572906077642789408323856957105072867394186917748450241399653704700378707843658298030997474190590323395001237612882795676015386727027641022583118511985892477074630891146624243287000673061147056966094691072091133726244715720000306351786935490439454918887991604242354609110812626264652329183971574664966092839968846859375643999667112889645492472717160104308927277048110997083269840946769188394985459345602834194703080961697030929186578709462654934436651769451060428273366812360072597587393564851083743809709107699438106215250290187829105941216305432301168766786844050254053763784486372441115069931590707334356610734245472425010620676285185544012135236541514832502243478052810751892672669946521279613463021884793749890319593831780129777144536533097069465802376022151551533269422276944857362356078615720109532973628286912771756892694086765362775146434640886574009705203689627402140168103499503196479828578549443744086890005219347595508837219215675380783376991868263574591465700548695551873679139522173165719253344033415153857988885651338784618116479129733994551937449829012874746630598079701711669581868075545238833165289866818267151584506492764013363591617717789857476435666585636174233506534479908316557184662895521984623388635955889877049152656573047274924037507278990046962321025969387983299481081557850086603876186432478547033993261604429658782058627124518601560243501222622352814590802139622891685194857284785317702771896054402313714271189289581036711343380675048071714458144446527140317028929838874933055890871011881771822592062222546425360480658156853529277810793147129101597701924004195277666202134623768718215940862559275380634690886161738388300107085626250582397188871945793250053867901072232255287578943010991074172750410372791357745490983001710277277390574208444414066644229355352249105680275232556014986894469688650564442487273788801737103431932066907658332280873071083946265632969674217370210017287635094976916145517233954006039484255819091438326961300930911152244524436966554791026947072032600562191745135173044903137015573995187137378595283373968626918874489158237875867221594263218613700456850586654622026322968171291075855440586984757313524666107198516592159335929609467763477428184417581165263953775940901911748371983974950658347523157890136910462446848568242760758157755402362399942012906733159272274203024068586210506897548425373147995504153537446456601868791904745999144769274200532959158819059721485568710832824581411497626776279308045594117237266152656566648266686512854135984354892013570714173535897544411228079159756827516309317471321785369404759056081204348598799272278561605960476872142285893619619483933224310084473291383448048463333837958105640719337315313993209926552528689451417580214659583774592092864556607547375814947453291479879944430866150842077271171987994710437376823565463172210529210083816624998287232052918535879092340408695293765874001218471081950129834989539267173161307784924086501151804853762887720126557412074928148265219749045842997309144741187674982840711259501575194929334115136509186067233250738984349324394759232932827434402506630684641271650357820183276509490210360672548990755313005433024283747630533449575040678044465031102095035249261211288412452680582616095210826637215540347225452328051572094782142281162350834182711215056612390505656254147507125521347153519649388616641803894942187072217688008406051670157342904629891293614786106303016412319291895516941775681637159052828009710246668165823757360338508682478856085038087301041399372860803441800241795361812497993607878448914016749339849370299573249049353817379876260466286362638394901177648684814388711793876715476444078251141469056779816486099270601037795277376810659903433058734885035957046039081749737154015524977112531036649060054457423598402445628846784164509175390765112629258995152454583492599284898261760423625812370527458299631880340305183276310153675897175833969024907548475160344936749963036986646914230980297343489639499509354306552817486101779217655866656170886560540206952796813309224729370459411542879675066895736703833372446249425345762134129506025395051865671346655807227347551086153545473903223074046700285039437176534117883700055525017694821965345482449889699325308324238359079398500846035354249101591425693848288409245277039123164411740903291689718842997293460410090808148773059959519838930110359560337608704181863149098624880385967051200486732518137048458209093172845524931648435239174783137953622910557317224991284634063049282686682404529529954456731953563284707361249364615665018652183977168316152227477829218760215986041909269608253148098654448520084782308195118706501457941613486766946756782570365388157849533694485543993041708460406516118016202445271121438386355311090908621394142610978942924938288603642989496962330561059405785600244879970344765664284029551410146010417694312848365966051932992926680673530609117139416318579810668059262461041260039563911838337149297506981151064388151662128258808115000751868588293239118746963394639220033737414019861277319849367009990849876516173826049130579790365871202717996679707169833606924223162835353509944736919256746898773442938625261343513595765444926387198469086517898251885001250926438968777741060037961788637002380243674963938863353340607921198130792510669152353515269860359046800587488368962372245225399758803804014497065925307642296164586905919019414879596181357933155522438583796587124595940266538264316018058157077139472967191114907440784763776931896605743192595439231596018454155709222090496645266485975808525333138462261112610434115408290389671121313058688368570832541800050711863115477132708199066071665937511431578418279182228320696121291156826913932919544236861039377242970619679290770027354453831388454367754771614071137478618874266411067751640828127521748846355031046164388074471255020629128446797772567981248575841207514484603165219243558741872888322133026540146059242018666476993538265365910553249606119497817203963018906911610381861261896337538203094129252871856466397577832485600246893502584866477420307890688857620875731592435369369215695387490554273505790077894680383405664370501482799385917839449005748180886674211987032199162233887761288511372209757432677887455824252331254025363991710185023456843357367017845042455395516506088377404142773336928208600228942745954370764444011132336768952687378443246355697038129255605309302298186622429843759805243471319551118231572682511168013625479905410728613029652268912720077846311782343297869432832603589585709905385964145593636265328367396520850476351861450904629520861988591917006939422179248385985916623035752017017009926175182185475873098620032683863747531072445151245958270695975801239576141820393559989868049014169241715220116034229003144515261879905960203723872695893235337291763916837701328663054615743561204823534533549333998889554545250118626256842225037818670226511417160152618000253716562985149552932812817444261909450565882107188780296172559870434753497835637869614940863222179739754978398223804038674244773389955543252633893923953264254019311421399582777155202012101385359621718239596430053686080705904380772231527451569239046714504764877459654059942842476500977528150176995980594852245876024843018926760283329576064715362958299605601475967256154212841335127289508953765592486963291353212049332489510161421029568004029039201964503351909427701335003305817633576359661488826134486634019210734542984666585995225978796133105031666148724891856057293961107119935230658432065708337971235674542363679888008756937893374240167208038398372337503161698006108997887775775620014179701287166895961093815638056135491651789852903781387375957369649982617350750779415870246744398910985255888017547357973658878747283141385813154659288202871624081408402142558336206913641636708695374013687636331537186461770699307548296579311736439445374736787410612123509822089914893260757644477946688334302235493123502306408972571807099415397049485108210578819348766179473319139624729943984414713994594715360906974765761600083113416843927097196466915091004707597046434605169334412193141188209691042642471434416590798692464612505836916155445757056476867680780140143122331995481024449331047843025114704217229168631131711859865059968449122497199345696497042259850289221483660661616653636966372818619598364810052150294272569251198824211082257789257884825195299425561426314513029448536345545987565026644146774370751833428892607568235345596745973934397689341477043140292696615286300935410126021670102304907531976333431606203844174510409426807180529444626857551313728539729892476914719318086718404174544446347817414446889054938670351933617084499617954545205731763402077658287734004532380163199513197855813451550621107774084472234434144476311379664979931539800318872589018372119057359551996503174235449965715411006840196164885358618047758438627002482776710538240007621473123754198039822070038024229477632551318645673394845028082696426135132031419153085889106822743559759620100396194712395510996492772198893850080103697409036194366432567992831994812415423337747772818046768663680612292025395324563720364917175545007398322738401861606129283882595420843383056143971740387873820863448790358089808861500656654779342323857063112279455778274168637805554020722313849066816216186063957039790129946672545504088460461043033494063698606167564819438514199463977056534476119961668151872086223423660358541988529558635572036449576719270699869101576676115872011693161944698655969130089898241349692079474100655474501730601408473062362700340554934165950102323911303017354781324008648409054939090399836369933674284700391204233245093671808168110086699953483345665421828230670705449162541882660758141053870484547240953794524224933911473738036970354101145162022049203315909238484785788490837704942561689374029582266800367793322527396747533334669546646600037902622226152681446769739214754861663234890142605723830086311071594034576774510404554790150849004347926031787811545397740725505677788853944240622626061915030502304846463826305829122569069968901187882838240129940681437442383046224530394756994448567320082437973289696284334052229299371697966705473612364649346750553247250331499166493687023683042178692010109230678675829273773501605752895127189231121703693803733260661760009048117814073666680534487461529831175994912837917592019159886854368101278913125371449591380453502338184475173336542191285517942368536103869155733173057780499686728776683674340243286699315516471934856068484571340154307774684103554146334350742899013266796609510808313035505155120018491815350922111712161433607827751282237424394862311655609081141559500821482601121310328629291343925900603034346388785671506394673921508922425020072302764404557105162430021517020571381747248546813745004402594073652417454736260048810024347309933076951722575120381502414136214984454625421411062778530569816866918911795508138100361901293462463651819815630201575127974511919561624566100858611871496245432899817831401951512698145031145202763867791075207365078536649049924619963087035654674551551384651181039639178094217679330540354772546713503213778756458794698452134366900627456655057311915958465132950399371829225543828220101275540020457971422197634468373333270581696987536305241371758954649150032410103412548628037459828820289171282668526993959631859966118758967262235042873767958273768074658335244327794232628904596262874881749221659097416535385034267417454734961287856284565605235453763396344852398155748493932460433458901805238513810708619103840761893044605264125782050284007552574089083128162544836219298722929677524958366304805622098773281605219809784507585406245064588254376755755415727763661156166304482239050825206076622304475466974340451206638749717196433572907779581510446928283331878512371137697223832238271105659028350159831220579645934619468945168880840501765158075081391347106998588811296583421106251149253332409639349238158435271104217759355448241275616485200876104234450424310420839704601740704738876765801778649772336975235249582116827680818841098653348502034757889057707656130002702614096502107898326565017265545428743265668261309039414823298854241011667231236872721151566191181227121503078104901662706104072441684304297957042553803636606312066685803722509115209919352320803141735632639690786558112025387056292640355697080327914413293059145442101281658704555505912159360061600598377495725853399242599128559720355271176812055012860019255064832069803450397465313076121138167920028543532524906798991976974474067783888682464562248875319119561373009959309352182079946778820469124652768235434467459571873477708094755195809134099680732001746019998322165214297634365573511789237682652305186654753391824385375327455049411546015186075905172410849562811879655851038074459677729886322988082919886216953527830404917319213034957441961354072123125438736943367027336346743499233371709545272463801977796304464330958777629584586425332554741129302527967987167019534733844224864312638864601212630935158951843709673531066297061283569179818827545447297159211415303421608650384128215616722921278535505342445639773354876290747385222328026232683045047646385505448945017510392790015419681457264645537856008523515358287356783045176570614045692711368297230991606805471478755510692462220511527824374593374987756508483107078405563756979328213802744292062709153594355051847815381350802864612898634203131126934648399961613071129647094868074582188684628597646617465269616210428309053710937033274673830325608532566379587329354089004095500867091196040820866246561237996597053368201689574026979877708422458273896417059576897699016437620782852863861868639636458522216608961295008373273947294353652657565088468926745356515778196197489133768760475546282293993391538479491435372350835103656958635694036055677461316786617427624852139752663055885807074498612481031600011097157986578791121322532602843904394948254778314227081738529660701578985801112114597372850949513033583067918057009965037031838103470529550076416902657954818703766603001395371069641996182233543476806707834805146182814660787979749518118836269075876425188691656690354008790451271723014476627363013831172259177597248052935162225494133835738083258690879029122038455067032609999558125860913258607548066131509713206917280669156726660241683722448081484739042259914139412143541827370956420954383240827037681651626280951426568028112106383840648562664188321569264660305333932560150660840999949207695723731005163883989387291260113308374253329130493498242672274075051295617945417225703356526737020995998703048110778323452197378883315834915477201136773107678356509548543335622615587199342107315913933905878750785303238744112913223674656678912597523834324557378810936718944458258190301395753387511788761472900331645088276123900627496056536408032486606186740658693097182284947085135642576545943338505053213438009589087779802512590683793631673705701738858393657749577007658944846589282369532833706745386959561348279134141752894360743015523726526592897655706061125899032321340541936824036607298280938379693334429156658849076001612006596503308577272681169528861902174581281114207304771042999571613620221010613251663504907014157908424457633472624593597374051350958344394266777530681926301091240982006313015923765929300220684099163240714831066400744010450374215778267185444514996715216531275947270187461441735363017259315240616425833617422355126288107979880903913513637905925355047764367923492077534332654932464530448973013002156404724021859410405779523242992971837102183537881197286642584996973674852630279551762155645929419678992838793050261264806091631489406571665777572835435268861492977852384270519659371476656185589983035404680467437623738807679990049884069201843795488844942891160425505123986883720394594080444905521783682850121720270346135313436430550675667823035153118129331459097508587901017638794436818924196662733266215075417900557008195347948022619004285693509852506058008063407289273961151517228269301074412500357149836677232149709704164668463199629216738275640703399755361421645516220138028932081791099840111037776411579629157895610951082090835779433778325329212145598081887299990466489149094064321623749723433060585342398266302824745480537850655341739307107417406668615458821893560792523410793574090648880424747184822344178413109773541285519532758036159096627525791879205242835223951002181359508529355622776137843728404728025775050627056543419053631170705188694153971600415421298872540980018616004022697837552419326716952667067597527921749976224489789924595440626789174502467458043052562513710359054407111387709902681776668858829873861191073583793780987472583898497600923999472477161395761962945777100732186407702575178677147240802703419388490767888538727458818194744630722247082414943607978641806033957756891485920637284285296979856301489269307470291670650852254318275457400214618013765786115146726962465675095166329560917335886344043053214486208926756259061884797475609231136817582296854635446229008088893802607316589310813718074690574480580435081904781075920780614995150888422151094908993320467227087912687167646710082315191835527567475781205995205100530905355210146289089463494601942142392947540378311601409911972290902153408845166346546920579620552188379080553620251049574159182288691607956026537934497218540735824760009263428507768056005569031476649532893192127545862735885962143476312791951278439306480671554990396189094414326388241993650362920279609649689907462592973340451946736583071484832484065047214853883994945610867187844591350275189704533865187752372833275226233864929036241245651800957193891318964222826606889317802517346991622163124394320569254617924183257237969273118830797298534097953179974737309891723766917395864934960797214803691997590828104903792073175234526460767052214500967064288145225244179953922627131714919781247370547026679522490828292980421935509046739822581592174945909129881648717008477015799864325631621877144698884107206713520689738038805926562991635178053155294515425547158395378737426251309573930129211638324505375461416312879511580375421164046468263699471280844941319307411083446634847527688911016616409357611345020820658415453977190637154308103771408826793550325299918581715988520270767099482631845291864221085801572016014396452839711378522111519491299044093702645711425819334426854350683652584180687462698961280961468210698294237205185279942837016546934867876088814218273401450345247310477534325940345238391878500135410893451700652380348830133727429544128552489986666750394402793900901917907744280329908459934800914856306499662759782069617353518863808162104195917121511306062325291612532865274321836346393858416901245221409662637948320908636310375771718864099631146239259464031435738781355740851358804400598771710158853722033966697348481353854598298096987839392475462114123157645904752216975131518515134645224089397251927889478199648089567180920473123842820820640955596960158337426080977811759163239907138940340590308657879606355005927741308265069567698926538139635195526889362482783433854818729682012513664556221515828162832025696796337725487391071686439582704858803729773609677863824673026126306003715445789835081613805681475041751272353856988557122447665722408873679514755150232473082939534094391920998134468146528581092643522811524627064438158912570431517593881110203696147009849396848559732534863971553198371565332065930399000843803321582383820657580627535503511556966764588199865928395977768490544688074355120080281617102027286167433137300876432388235103120164591382074268282467892820499591033921294721195754285659069756661463783733739185956048220549112476274387997733550451519355993656315798301265910288380469519500205647929363523784108697489178656062667022023161985240545260396776217272132470367110338779136642556345301827621830842600729466978845615923966548433658407229637513151479815699268776071461715463521732598518409408938858588485015096424990632072123595767586786896339336906186535663635437629094534777261185483690879074773899681132693470741241550071650891551279651469212698188589757219478873039789996494948808161303069921982395090999803594856022653873921830837957357060896780216595315638463576323891932179997290994252278000146552810417150875539179669603804721935010025373890947733453463576926454583105045184513440621004046932352012605003106579353748176362662558117585603087462016856656304726673540200845270736736527747784553334985798339667673470921117077809645118684956334916138011129529384842070124229299615537906805464016065293749671789610616644237517008227696513864072914002295419872500808252872277546810402074936815637551960716773910897452015605044066308099157905775824941654035488015410118424403796354309713899335068413616266879417296246114775146503686218911932000555139617410766514587730326282456503479136360570246515563658376809241652472507201324732191141269738769271000416938296392780965423293865154004727319161843340736426692731677760319601673488178103206243536807337455139930879034974354250269340479520971709571502147055706075146026840500439876034471162573132273915306210511427481521185589689572304580361861030629682841432304369861070001518871041374338538711065935975274292609092039004604778246559117340969584473331248103982470800880735239601873835901471189759454853492030547986118391189295647086075182318230659473043348857292874477901751200308740284324996111011022095693052267462339143386015101893542167533663068311318768956210473848765354028457002885861560703920824148884011811452867048534442517890872276367263632287070278960579630109110517037688112371483321853502131008261146916658518294285026684977145829230068731892649713423611819822846473720958537688638230432978425369214675068364157222395671847724134732271656183607757603203949117975591374429241064475540391162612072172318136508223497775428277524132972664508033481316422911119076003027088003228770912659544803728474175303716945399519893422399604115871225524505737818462391002303433436058278782589046221221357210083003102648679257133226205113796424481155541472602318244656733450266042019610930077772020216478399287330027367986439710454468566354725853973031520251825280257604205238702208983354765284910070025962540200775659254469237298285836436391601853373238482705182371997078676488942272249619684737292513480116113783340955502792528996119430986340138984696847053284870778731612736234772748337768841313254654437080789206363573478169752875218074445098007279837806475812380109898736053135845811297456422250410042282886285539717367025110468570327303004304198453253062034322563360776481631981668704543885846608951399639820645769477030595202361690661713767771051420732639450670830499695815000875324220152538420346822317983456673904613618370262021008989874311307627963953939865957595510944966696639962175011851040856800069839786830080419382706181954191888027714663007952680317595917101679207158074847673651242035738161825427312157208301170645716492374458810085743322483180413595274466561779437921952319062150915068478199664192335940918169887330251702272001410706932789290855765801556251328366998632674899085986005259356979470303641951423763584288878866291615755188397441105340116013340726331854317841641722761280673816564180819839758012117099633197983699437670562469906780723978432951882701120011878197693987659602484443637027104718530496217450589165708851773194749182542771662951464262977683670250552415498649586757198658742714242443615446023075334747318599125471397662280677059591612022775561544374307419486373900230407618150540157029064506178467177289962724218870034897359627667119239433045904422655497196248366961094371096439079345715906798406162100579770305482057383153832777114214439842160413336560513548977083373297666901822226503000225972924973745010430237803110379054853052018772041758654851567677230219876619158491434998448785000842291516514220993379916147146440768467920408532026113389549202267736173177645567594766097725283179025739427364211650603509876453689915922108854044313893725477749761921393804190366472930217232911096806984354973054337111959692368215390657116160668002822995668767768100609898705077092670792263949700740573616960186884652808913328026090365887401788024867256328600227198107732158831691091116550415644776935063027043687825800760772346470678867600565171401626573895364179302920371698171432710279547675055183778056131730981703899747582560691106257547591518297313332802758537713000170993314038348055661092036121487617571757451707513397044207070909132246925070005915809078843699015517251640033775610918298962485879308167505287482336550142578356754414062625331664115640586353861840533505990096661104359570833217951073034241789580450371483526751809268736910896418186067592520405360241165772268198246743654032187233402148161720669338825594773176120596039780033463543128408193371591036263214910863013705914794600149818188346956691566394196573872253210000228471133007229016844330378675594230794074574607175417710167220078746274426347422679885763942510493941473460025371635100936554947960958579933364425185143568150412702927302151378630054580538016108510963780929284206227352848738349263308830179774186967321226414461294838571157529782974802851968829539984567062317054259433208468317746654354499677087660650146387218404486826629343793175256877812855190682873536995724440884149754992383713136657555451833085324429883512551232356338773394373921210936237885117000288774451067732133035664916081328148817697744737989347055091696285952441593963321826844088704999794956983865033795319432624840124303046076336115806674853350494589521958865832057859021090214217243669542190740950335459728130002440275676872601872647289693743435833806839565438576445961799935213055405822432979904135486756791690690694502025032028957861179126581697424651205689470830489475209271888426321041663545455471134876258483114857279662897448413139336345085050699057362054998260645020030917206923333475097639032490136707447400047272583334029576460025004631293029812795333566792683359769742013970122515457784750990994734907070206473232711050701657589673836416240718097024151883107681179902239294523158672121165315680221120960804943618808081188412951218068884136570206305732952872395189834742927064876876343256425055891486098410039894576572384477261290162579930846771953568722398300083989960806580673877528896298272419148973014983736533191460007036345351118207922990434022785897630163693138574238959100623472009802936500258150840358126855618258296948394541911119554975750336668583595921018052233400985068810934675722358839846599723362958617710371481627529744852099738354738109859187029474457063734203301530409083825461559948210198255541133941485348536280374067068187993330310291689172966996240299174184264392246752357076569309352766825578985808348563124886820808897254810572655849668000489230131776966758821864139143627343375475654691761399008424646416112221110197717776578029341380934607025202310804508943745433522592796406925083985453131319955306696499584213605036581908365768070502795362831639922240551087842949823643078323246208742397180392891797624657802680113964924318729415972212779836106418252032329709428651959067800341915067118115480031572573149592784465213435220436336170796520110965959025676966201859960437352518267860845474659637336155121599580417844549826850009890866718317042881689143551939227002970578642749703935267730417784335140052191263856400162076162260274107447680034620256339870660004847390767144812587222084477306582765801562825087903423636547689872198403631249009124635912890430707164384346223677709187845699687907984263665778705168657548324938009060897126834790395926025042426236125189799291205135506700223257485777427261341519737708098844316905453234399791288191458447137677011392343443186053075105040676351554653741098338487184176604467438834530588382009228527995292990544608916840361765234951126720511679832930644636411200294262787890827845581054242075178076246261149446761752520607941017421288470526013662596889260407051144718688935797006549162619070685146205025579346122052515228458337642973560793608906862092893240114882315265741289103929801861965914557445712690291922999658011317944560351741606589851915112829313217048834944499513971657243848826975750613619302135235110355879959690066336682699355417799502654511574330478278060447631956027891490853718906057483034328660414049760612478773326185778214902512908078344553075311428172830163015763260926723671429270600229596894641759061576701436434563650587262003327497323468461508799079388364807443291655272509027899504791601907219958302841800452357050817938465924740338161389101113595986810935314076103546930000628351062556609874768942187382149496435398173318541702316082808315140319579949078402021006556505178637142234288938628803762193334063184156960907659567765439357796462804459483006942039809146569279532198412496679088242852722212759420688700399592560279340530687080263984105201121879536587561505183427663591507460926272783350242643658587793995734738165046343875883970575701307005009021194295138605080334238578884372505464882251784967565056156762168857383311659461990066840731342933827118339350763759050249757318933495632727134667932232192263089463701778451834179354167198247153461720041457979356353153117008825794245132389006442706824698048723539449585689708607782946847058852313388915252757429196660704276430271797095666803295606288223157994535960230306036061498449760285522399133868537318385633362744506006192906785381901138516911280042384743652514701794282994685113713236744600099994496652053955479300146439051266713636638467219345201467012221359482740321379484257210798454072156722387474755215685856169805214746507506351688692755006112962995635923990401643181395083923868895479900859715652273556561530100110883543628856302578094139060803520465498525671514506326964932247683409564477037727356677197162726251785719344455056908345045697737123581176728073186942995296094143623855742315332348441358014768746199294082420616239531615225223197418926973128302041282781276039108562861235503867187149844875072552991815944730134841260805275891987720490490665620840388143985687866737784768874369236744084738955334508640413663048236813406982890962164756864480903303503434181899743634533546843704256331567046066273732732759687517521615505116700658004581056527705471254065404734956221250389555598742805322676753087201610904408616907421059293459790993215544343079285985990893729990646788713757482554227368096255503937019248900259984395746130468297131106548197595902511480177681351890152611662620848724277830644508513578985240217245799835593311927312918944888997249333683435009734800748493006804819901686367249036798521164130062047576516337355046647603671209313595678547333165650540812524784591928919266544625864111381107876675535648367437440973613762185902975344648707968325908957876270532944774742155334154654650043397041132170122137276953882243204825521196460787504875402570758505203628856622329058943424018441000971708410053862711971331728670164694319970282864142610768200905433752606771597744936188622075528140731712940728006073073291637258063914086532609057367507189116243512667527805795016598779002527514202470367270008996911043733586500382076744480387150483168486945295162305114250756711714631726875590887530214007951275995911030148856978426327318826445352761627736057328551029751833109077870900430280905030744831544951180076121524812999528705323206218867762581572905923687740340713077151919104165317994279615428279913477824338506345065441595635151188534675130414508445601217448159082432681530571511369131961696551048503346303292429965262517722257879526835737817277221469970024498300794380784352114115747086576296233042778091824696605158929812599595318139385150229188303216129739573697968232770760408761669675577680738762292857495678706190563198333501633312309183348845342004019217043608725368103839045044188344928660909999809893744030733178561044102778623472084480982863955919527804626138864248071145800375334771726397737452959703656283597984209079487826658599190491351326582986926151775609376620289712995790188311122965648970424209683989774526038006512967416013074141631411458945533794820749234906150512494960333168517558052678969540862508844253326113810708813334192309851771076072368082988291839430891339145353191448005252070275454208256034419083689740149795901367073401071082667267142856134563623445614306983690008372091286583755024517839464487950827344429373707131672236934092298810089317559454703514324552440936167458427864053679901943443850521835625125508834148614820264143940019266681457434039969603456237128730728929009615469526438934056406222542615470958680928313914320992820969708926925913232186001980950472092263238791868681402929609982890111332404320973774970191233492390456776715676560442235956906607755977697432630597826322919148521650882700050215955061131127769879114446801348373614196806203535049648545421687237540402009462066031230759680758630558836168856732167504101214024361160559302141529886266275352613858421545731436271558676425103054645279255476128743601033922943229668066280466016719468763598264158847313750852576536030009661173496569322912045662921005793833159791127565035418071925873638878977583436005473854054535256714528606066888695429000092509380308391610245386405146286429220475743173902371067387615846721369266273127781728224130267243393023602839781343875975832859694435924902652788211339630234754277870201966590915073294619755894544086604611119502148996203012606399657850157672611679278672024219887279816268440621201035908959304328839553916415932231409774457946925907831905935824657171239722199295736178300464633464383331469827634370296379234218155199771246987856288917100056754731334279560102213643225623734303107428467113392697191670470812196047688325247412236796087031450650082760321686701268717066646683609341930663545795428337435428097912334552355431638290901903650687367462533689481523084388119076295810797282242939475725908718515982117379268628975206105957029091953634973229055947927188715104466244660144737518248976502659743994253708016578262155887182583523328214640120272409608280881061248849732163047747402236814929141779026901512443349748893092816959092960316087625765536311419748596810782396290005096792420679218906880070026141995443229928479228359088298581932137083791214523233261150163029512984266012428781116075934879306897866175871396680264239963644122839096828290241224495421088074349142918199965039905065716156518633073279361669321627433309185930841272795901194353621158958332590425378408490949564644347679900247184384024915223848394404649379675628032353506856120143321583791984824496593138765536328559068646643700214995100294151602147799161093048741460762567858702243430966196365866259562769534131228668471935697935540519290227915652513636013706028164068792329284661116479198337730726715024418593953648754056563340997695648953968301285730178458120090732476653763455359613421917598389282399284369301781254501788980249574369089465418291809942996088962706185355130292030038853606528166072219011200146223931119524591016380537456209416801900545916556654296646930480865039768057093448699285828178772956585229573502639102825793927432395309461134202867257958974851347898713361241585642572205366181713820305361501978854820705838574692376368031806658343489250459800861852330588400362418682696017879717697561374412578415011004690859111196247562900771142575089827973736162748642903034059233621571329271498618979589138437786323788357367700306404257440016648685839187623879604831903259273057851430463756929906669123417940465622722210410393942989149070208938162725414568538683075029023298306425684521645208551544734409402917282565518423154272001796538167668718893934899897954500239221192558858476433068427613529824852471034576584423785545141133108649147140146014830921205382975005228610644720044851938210386536256630970889436347444260724489217039995725473488329354873501810573440117246429107041901668462205263388887225273136855594370147780599147181922362625642413834027621931616748453616816036140731318084302051730887992125174235805021158430927320786283427534913100059074320319786228946417412944421305691008240668839936385920239617362323104403806194593552197964919292954865254933897838012907197246614150279495986213652206194320443152123449678698872807125976032906463614314474441357484169726371484806815813798746637903139173998525164919205503814577627260291536386486431985069903283685298643607882312012802986607282251701323775148161246407956801762301075287709514701138145987955614377390225796500531380717545569042931075912749476326652242816616797413228297760320293012054437208260586247733990390622700028871798110934203338567244349010176989577539252470690300230040376425011320237702984856160276783879738011412032017971716661958388674088983349246112354555314745565485934806924044043044408018524558099799905733930637810668186221926898773473324430493709628029281275736506525967941694610915764204600683815913099435567360309116100993906025080322333954116195908466836624776979996206335181317473057350417209427129847254720368528175109807158853708890607956789044380957237014473097194133215786617842372822645230628599361778893261571072655646228711016890159951669995969671107500191333341556167080349569395592875445804662827691015465430613793483551016455876113839638966352615101691854181138661166822146588665788038164901150548647699901985912271001606803037458719772115944208632987903114815578612838858643906414028201219646432827301549128210113728826781653587755898109626838276344608194360583812787798857452430487016335779962648839701729296034332094253000535289315172409582274881352339026926664657928954020726245847074042653200246797454368416358488848192557531717256212090613698963320727574463388552173988690492926187512892312846532716397696989083653149946971202729088622657194998603974489623119017479265629827155409430730436333551028896935094815837389674567439441552714517358113802294266018038187824774347068620218565174848836747002824884866361741390457031453755795583393797830225895980704223094285821600586912329948315534210640322337912592607603426980906291433940955008975460145784358603590888834105185395936352409924827397336175486269120649687879380276705946258742611935078837639588854255952083184889466908559870688300626622860353867048381380810411659333213629304569852664321793848208523575915717804677029693285207763610596398552210293006452366298138222813230524129409528361216346243506309263705593196114086063816347785639761336819458716378800870424976734275520574900927398806580109047505596964137891829636334643360313377543425003011832782067308457316745076041390474378126007665819028281537017928705876466985769977382701272196195494959764350969806808839909374801257262127312834144468447686950435208028502403165740028177926341373248022280991674115174610867792157880892556399818828261707228638590670445520034993351321254960317593229173049622047308448353587326899736154061985813268187520380995012629407907195388016024647642172531461942284623424769497406677024073621782253218085071575500073704326637537206274541406602172287601893961294743446501145104355645525718309867190986490803839875221199368923200104122189813139312080185631879125461341312813031697601283182959280065568593558850745269592068786357045228180299082631974215007264992136051076301302619806297719878122119578238962955047970041536608389431402273842670870039599685675079381621666900174094690175557635552405418699098673054233432572320031898405602887141806885698980363054628310261325948336773038258007875512018226604081026547934031436553996471370875190652447398740666577395964180848514901270178135054299001954291683276763223355735859276464663966294397754407326731319901403552657375145198215654624232604510435280583732685716884020124067162398768665579867543114966487727077887447067177256454816200990902543105969471335192550066167525457990733360672858416845366725699106415577605663185437031243156359052331247304411163868787637620966170482695489843001461921732054375356296605540628207729650173944364523735673798682933913193417552347541233735958655372160448511547670010815612324505019041754698966680036847236290598081198277727289014628842732409182334040053704683481133920725496109069200094240480574336183979630174710226368572712590030904257796598848865539707770636194614267569794083001639922839939238341326831104957880345310272165878441760085845435082013592240564880688865513155426637073741220142970313442145782761475560626067835470414722515209114273312000097216297906875285683646220909535919114592010790151402064897206162572461518294081807418632253996924730055896848094086950100348415974695496710711731168697816338128526828555259663030647984527769293400269762178387643760144780874305128674481687453773591656612719161778531640459658747301692299272362337309121589067932876372307033417700865631583493257163688646088790611840536742773385347030074460934977077137282182367068097821325834538320030085162516114092833014526622148911896782438574173375010606478394190580169511631035218809840510286285642501727858386988979561885936782166225609756575113258280767870931308687365014432515332414702113663446108489746273355251975013928422296202735536687469414858778285980374567044321014288960508228825488610093414265690479225688294451937888657372618486000445948278058605765787784056668130758477463864417162862776098759200662927427163356413215314606734022154301623305408900757467405393763222064226745036958362888500223011267822610526922805496322226554185789593199102929384032123489617831326674904060865977434209904932350530525711397878360453469788661813012522000810539505745847871207947206608953202552910848116106473486308512540013554513157509195026729631620395444747671782260817775979755086360942360367318999888648111247614684892969484455061156521793944251638402590624145350142258499593324417640641512648422397005418806783563984155467819118606817002577960302041691899957250594379962273098052570947080860408306296690180967711242579616863038319869420464643873098548508372103588075900814973352393088784324840768018021561072518696616494437714067324465153854392456380109104827126304797138890461520306661348144207284932809811758119076231969670905790103972587304894394533557202930045085792522326175492716872009560551427059346578906245586116215691014465539035453608190005020909332918552671746509198251054364829407400183214273963130823093599569826961123262765288522055922059517155741567883416508732113177639217401700143172196021018938542874716356336535104970022282875242421026966657616748156588173389407235623035458486427109658519637279024833244554495800018356550699061580215472281402864865866471876410598581454693785075344919131204954027312027447189076870994868891934618262268434191049873247317577962441000552758314673897847496302728537960969326591101244265542099063988752258048986066129417915967374659695088602757229218125600809288079489093216429058363009037843162821841434962284772768982936144980885065854171895088448713988254071064811252944442376469736376651013661639952676291383064938232046652730014333150867519996899313153489196950927937220696816031518703077070293341229000630098481737195033712861577033425348093577211017005694212369578686207724783843622086203062050715542267708495524195193859201298203786380857034950009452441807866228136959421486294204257188213275845272449462205676644396966202935400777382581148441841065183947341909982019717347945651357202330634011078850820081391142203980232292175135496346397962807775322668371583005619412846099689967457597066180105345836013787376519074390661601320705354977730475548645117832762591614289079006496011636183719104534403010289860043470263137898266134374599362242542873306554420627730787009537517677636997673417251978394121324147284091641886553831543031812380650519413563709937295322510544331355599991360390799029266103851252570730363108130044457516542140107529879365205692824088348812977451704417064308122351997246971247522640551519580149817617468346118746191931724430029843437536742802075224930514583533018836425913807122248377877036769634417267184670320058405110188704564119816398887964225612242161049801495814122834988777569247505858925405478239139796863479753388230816887992787470167708428221778602473101852927732918390720201591932929396059746283724914197484033205068893004013746078369000092892419652287984067295279962362067033982492801221909982243103196148183980821603025917302590393586118300504354801488611225232662338368696137827375983041633955462507604509407006163546429817427499404581944967107732411754208124889470696857687437700626878286168677673692720377603840926030538345342217509923574359851752023043170677327417151018642737976319666988898735134431507446257310215055419698099191325423998647518090311609757869214910725587256521680442736018736189940684665919009141450710187783559714872571656067321873048205426492449459524333331029558077314680687449998697953713735551597416663112454911729772941784279633717993462301847407055469652688509339357310876156464398383462347630360999796137279834617821566924411840263269084634715891234199967056460091696173628390510160225714255405639390268927804864427952518910078713864773305702999042299402147130578169167108079790564512168092726726727179637562823529580654849545345391742081407474562368747129229079005121960686448820795789149743249410778043016076766321918131219865411231088474190997160782978917435885121205412468942360138653612167286312725344693258876551517113108045720980495540956263009884657614611807053398249555552115109837451862586336435644559254111911741705154393824772398221729423029891806950009755248926426002716185420649265693172214784932798954490472929247839169415881166760115253192201250824788312375083057786581112173765325358245894559090374782542451848454386613681281651998743071013754895273192626986183440405280626134087287343330746980926355561361778541855147067210182840987619623369396999167679701087617247570080519596186680394722364270177294606779256911411761631403683836220290145047277743570357421147494587325758773892187966729607173802018338211025086298717493058099349736369368000801797435703154383896136093673825147757400998560121769412784694269081692579972699401529012067770270468298878091053748700598880292413903658813066637217370097970709846874726226475208686001311355425719365105428482097215542225976143281295165247896020545507499896535744729172164704484990963919680124436977260418985918438467980193307765585654148098596645418494371543536298381637335151180052592392949971068136015511332604712104156511575051490537272255729078835705672785976864301931316234113426292631152782653398493598150556417427104575063854351563185518349679422661421547199602197117119995015125459074960254518432989775536059135575224224772467321497972097444964051060648594125350385161330246202456811885985968810630525969603130793399416605208647417846844626956107034710125854300986607778545978304777495479591279814393238243528958696294374304712443067464690326511998192762834899943048519685079257073315610531843619964675296857443908103345561550595216406912951808010723199807107236763408669533404906775688707527416563663217727605423073529684872775439043536503253675281528435182856289773385616322886272981908940373884474597717449256982081739506320368086578886442567795391311188670412448062269052445677491065568573970088060099493417346087734266099238340408937464311631385932190438917311567847748365456511049049998402572342035673925860412301397067852126892018220470109653118486056725466113535954784310092259939609591267856756317488858324164874396196236060588111860067611509949708621178498205287789602314213094855976137501367488549606648574292288457315123326269362900613607615922641510576955852219882687559280010977101052326658329894172503435733980019441864342825179130169604252378739002465566676713864363409778253256701635487770759995228584658913245383358872397273640844330122576229371833776337800523829299527647028660888309207250756071320490608588493425485877975216554507587960838956224500373808587710201144382310023397815319309304988378785380177943158369471566242510083102605495683044950494327911706962042562897322418179390634821442800957916794030108891028246508378295624379359050345127799342333913509743762809816788936921136955742202906106399493099845403522452180481495140215477103517014748472746252477682567366005198782834334381469616934441603843513390621707664132170350202410578653118613664759950747760249782990510647061388335837326438569207426219644723111043158871477537908133660811087542376955815300230623135145379009983648355794192160900865264570653684586294039184944687400111059400526406909479668462149654249085286647015126359556444295528207365305846388085542959948088396724951547489816226815656129780575330358993999257321611637653922395079533470225043598502782439016477653322821230850321923725177269611625206623448596158763093419430016048649644205607368266458280972545717791680180821624434980084589342555037469500059352074292902742700617883487334813720127391458758408957274650170307073571293294805219711966035815834676803448798134053668822297637386464592239222702586404215901494650690154055440834177479840617834446335659517363200306459875128320774894184805751788387706203844512864949091176334019160760289408029180794870078144702670717950666230741266811258518709552820376937133311622525295915712214105147663037127736311350354807777808410588497288670016062482184803731659397324555889332665866303173243925954447129661967840120969034186258358674514598361381259830804543757954185010544758615361627914978778217357996033843915596138869563083184552552129216427361779163358719340775176780526479047377971904895618351710921498510324086433043776231501100432468662091348205656458606610550244571029078290400918944320127697278527732433463879785358967392901985382933950680562209176771856537378307928557926053166124243020422009184670294109391966147268941222455602204407865117125114386990426249156643194272486598776135977468612432140366479902866107311246710058541626273932755357474631635717998528556296078470893080884671126300358708801041393012088564836727129925932671152173275822092778143061014589255550418334908324952106349679865969206816573867478997382856759405274337983372533801378262559216669146283196796444555302625896215678398008565056896983874355227256884408111979136684161261263882943503649462808642617305346845070670753422999554617046912940732788436609096491579942011453404163935627487941455949074049515613133453530555426293153340834090788639800209535560021269728233278465889095435939423683189526554510689530067142163844969385691094472790574877507937804220689541388203558503533212106267531195845239756913062228633229411286049856454582431391750729127916013181060924481918979938773340118295477456636687314798211151128372711158215933242744222539638467648012720243863980568027798608333183455280811192897878748253762730862827472805064684049978265318060614163351703777698334032505598907673825431150875359382038733593233545897299159334257509893639525824516961227590672403662021195442935328055418082152518757770813765696508021259437300384856487801071011033520092752002425533192133987455211094060599226472231247524960829178781797450052707354593903180493318262324059680431779348758159340491591178149368961571992722406272768340617271914256340845010226650246165515302941265680082659095420929582025584823036336128283027252874679936664103147530415008587848783327311437663687986148749210131997275753875219145003869159453801727395950726466153411563872700922966697189257968169044930020005217424565402240960728487557406434526775790779401359350505484836952902007833177670658166364285984839495330975146513672842799037357744826580698801269664179251764570943024598127870003514122768133680514704081229859118879896742411487556004290885068100297101251774897065364298965748221521227498606466621125091534080700627194311495782372168583507677677272229170306546424701458424403475660666169742708138180138135341088287207949442456440156334903248627759797187462794078823055053431549836902250049830432367295874926038753025035057022826154804550054621613432259363978126378461620146567965758860440732358438401119136998707497981109064457282951823482557810293289603592541786611055507928568545799459593458287068511338852426327377398577168235470493025602512853948022224187193532360094146019791306842464468369231984236330003253768894190395017144923691642711408685264961290993298106300133022516203143796261068352480251644607121850876321765982212332322924543819736422373107146933280283439967987379933572109644279954664088988929436411501372867084057545225254249557395432363319606895426341678070593358777615366632553114342117614877631418678726671377109345155764399143003606602213072781513172767516792774266926028081903634979825631395904167171457145481327327215322878503555413033549833326736664698277434212746961154162566794652511846925511698520321139385520466541538463091816370380646266428106636629839775599845664075030465982775315480861233275122676023824815908865004582282962135292357206812380831794261811922251861075534769839019812114356761932492967597941753974300427732021699301806873792780353969372116659067925480024547773674799058158350866908753666660858684930284774236507399044618681232386190100272682213339613296996078086052215384924895803880941954331929177505031231587650723670289560211902547634172450132507747573124852977191499642738400414036017514870177083820773997140201704350682550458254439094367262664585497149586478693443035064461400212720171408780698500135368790126991182844400617641189815476934611400191631881556370008778837014370271999646886860459824172363801396854540507682106379576903808413715238673934083060315267003958601955162034898578403345687002975669056615119692337911989789973947894488772504809981254033881101927348580728849175932526535789244602470522004505420122871676160932316712960449804495764065779193645374038509732584845198763929099650500253134874926439984549299169606687936320987734693203391466713715682874027574947989010362913930449383541867897105706962100314303696084778220157135219328594084045391632278328294304715922798417807956046136730874241569407902791636362035682461590521576438621343287411859690132727338499641826661225029019140561320764203793868643273675469600908005674568805852485186821598102315893371453260270099636152055213479481860034950947038216354217871553691489432774024376707522173302415548690908461236274714431127715190035598278630209115342316367283497638924701514782411176907134340794444369906241410194740235340161481178220439932011166093539737896912039785767628174331992882373464860380700396569100466707116788761062045039565058238187142397080667920740956805888013204871009817288608458508860053337265604458221377491850822491145935073341815197999632712727215635421479247164223015318409828336451073306376868636380656250913531839708910494954517726818103686127126371563014364664526585277544465065224169698782414547403631899748688023413461483956881769577974386969799859849647818577511095301878681563725952049488815298480657007612690946762032315884658229051285966506668520278535064199637372447426169035662540572918739815761197279513709542474733844342335239092829037403036126027920462703509150919114710659541233106104978539043115059835620312821955714266930938843911539555558519054539964903899647316480249550318258886229992785997211712551416583674924501639882496490531925692382113777270494251662913041466973489610714133838934632132439607053079779176307883951889741955724792347864222179691604502743219407443611175685525691449179407316164902564481237886904565026597256478847928484939993563939290427844947297890369080886015985445512015238756999216208637608367560144672493321548027666072137139575371154475506054192292964495124007143304967951527698605496614838833601772496121175161987105745603018092231349517337190439523975751063404561196805638634044314378888585328845934472785832465282848493098127698631427603321559795765873653342323876213860509051536455654291852172355926745515334784094797363976726080318695756898090705138759973671108186595413919400553697439778442297506844823794689314028652330589977583499191063292355369068664895696076223650717910218105853135413408334756818614781763462838231703188765724726626156158456751537036995514478477725422624007541630142766901025412301631370399673559407871918738687410861560507533331710802029865445325393926278625056187105787715141676741807635492663630218693148692360471311077392290385155393201177602595907069306963467099831440697571683942279727264201575814066430829070811334593259038606728233407739016333756481399272136516967289156385626968423419610180888354411032296676695017268994179572773045878571279473284307342910603069737851029430091588152769551512843395424119387207314929296478497350282740376301580267068471072298959687556271074257254280137781918733958770339568237463425845442495457076013309081826434671094343240747760596887581909767954107364012178148316289168260466177816293824534686894711278038385709800139169126373568158892181087292712423369101356759553307323567860509669808712225551517383088266054004853727260171058842457281116908759819664938539530660742240837903376235175349705428049808947432116217044893501911252507771656522391024577542626618584247886956222967057470069301787374025455517547748462771720354441171181117640186660211399606189427742964108002292641717045901984821100169000454859160494787157658842949159865437405146090831235722466074507538302361730989755998737116045751011326013711691809890359163892018841817783810924502213498202040603743855884881399331344645325346111620920426527211294690665798044873091674206903603571578004718253264362720597972053040606250606105176218052164654327637290475210139646108767933406098910747399550008673965357245987413833194825484919036522108115563242796909057511501490097166300182429412413774040841247876455398508854407196726727319683289667588263107353446033738857185874171667690703717482786451954106121237293385097408031416233014867609636670899209652778993213705419165728671448997934424106686623594724452807685993923875775036808465822953838863977238237580284912466437216795610170451037908695275397092328753549785874840253767636860289929571891992415670876352768185218572219416539594319389332805884978160836034062666254027218569749121416427448454218350083646215218503278750026661075689321691082078530232184347539171018085333327893130679710111662614353705299606343139679174416538440761340168829940155817367552616466330811081791116245038111362616126114200197268240336918981001172982236537139467458612155363336969080275866722400015923574586576667912003951795805533595080473804395454722873777367101493636263294670120518911515443717732603812017225728955651556580096785701653402775953684291930361253364038767360328634647642808484273849763780038453033632783791426746942498372426407462068811020035186654236909598013063180956709172538522277110012459191106859256884820300999021674544832805249232333199955093368802561844682371791113261969773830021117275955042093401216642705419298683714024498185727323003151031758794573930239487665218809335344440312063918869992631932798901132114590620299272047678771804078203563905784801823745179071442962099768576233251952556850006442091505908402576645151913638480631795884370725753300008165540906832420762555449692204515204392300659505556863620306681221654364128278796006201885576200108613383836773499236019381233670402048687546151802360881915188342404049809108081526074233675033696401884678126754072989235612903418337888869711801190648459651077109347147436583338400814388250633216593558541889723383607285795932253085426004316083513573359874834653230726341972543913206672388257835729023454106971467952752024921697245116514641761492639533163988595164769139622037772011208120956743465874614860361311765549699244154301922068591279307917159630126016098532208073141486387110738236178498774815786790239719349015590797457938332790689007576394786086537593242350919733563895365765831569835521598184403554816203439380909139307595625797674075809372193108637673263067949880150884060325919884605156933563277085770508967341951508385583431917004993881080711826123732869112403310843075940250942874993840567027249795165815332281566773934167923148845424308393233867931937316139107505139909286978058596166725059202093535722361208992640374124302458458385159451679443253522626775854943463221137152944215884467977462016168589591647187242138971912877352833024796657864996757898779757739625307821338835583648979103577115152853847578854105386016306390544936103809006865165556543367251284625023478953860854582984693793271360771101995137009673918503861904673977508530365747755204073445918394966105715350406465802386651883694434539408623711821058224175104917778395832760533046857833409254864141259461487299390885758002466582133300365432560629685391968367468029605089222142260043866302641092315640828215889082887803344424203818236835806644320880292362120020292226252342778755144115403532125715586391189016905488034476086229813774573254425652758556117481863220191872465946002950949068719175221598212164137666721151520328861965312789373459507703170029274198790512046922495692196478954009558317487887941559699359684021563569868063258206891576625236620594717356822036155920979076072179034418240186506070908061747634464612904198148180839936804142249171930870891296187326031194551029117905626025824731335431397576332366649593063727383379738443710799829258614006330671692889904880436252190931872447276515241512645320186948257510365013345514082536614703688326318793314966699227356299896242744455468085927865908150624983341108434722607223967093099231769923591529367063442593259138862722466985493979156834145593533551852076844069477153159042469051811676867898949440591935140391842917051113130538368057892652367376012574523371727633393049852823871733631738642204354879596478019603538691816273868588873997797074772349385216214497558090117519861777052482076539259063313829110802338987650503804434700495428999218710425684123272149065524511107765073301291487816764087813988766562880810302023932806104452421363271061315793854672545613136548361184198414427560590358847147316127196546804151162432100729307065982926679303046662134130255092842243265744754892720951615657560216117447192021037618797003553631611596885649650307087090062813317667413208949664246539654836276739055161014428039371859383722730135950169408173034317060967935799197339533905164177060833645148254643960491261787163440379341806005760502289714167438509234628551374247514840681967600457299899358477191471721489833062815422491713606658083016002225295115871681494877514200019606335000733314629097439525276710325958348008532965134288320656296567265015988117439942718650194257964758764542996204162117502906543217210455188579910924023830514345050441058537981560151906871718493946449002342197491944998313034210719849294175153283909032111603392388409499077071957001131592734991667938395088251037447867025429603614313542258070964009461254751080736808930208685826277584554563027591144098871197658501438681914659120179246821111372601570603790509706776696586227216746986543175938234381148688131694774266673960268908903359916426330076493216355289675901095537287565894406526893633050226782062485995799485491905666991047470756293175082813285611890839307460491536607126984803902089620122578823469862827898292185920472262869542866815921186509501692486936337307953299711007424754988233905588215339754600468513835427172883400486132224162078176469524668060278422992517789010234636109600950703752513734768096599631857984800223694637697478827917238366550707057038140816269454106468067821255531893159464073564259077600259512930158892421448030461842893584142039247321607176970604099058209630423840287838686937932890076244331635487034032640077761489859763695169659138595891566473478790498806929796971455571216141111557160780954168434393788876192680767784971957091613959427839401325093508384693246545510005018564032358472268500590232699134887754686065240362714127408107307747007247640877781358007007963451672556701760791361863034860114811003841743126331286804628386235052341440278271700792862166030717092724451978963307160160518674079421207113722577672299413834275944888491471750124770698178813360811682567862534382711118379527315601991231496381826584071529929493504723656169186233019386951585802403310570601288060056158419479478962499215194846335978394984093356152080463025378540405689933735976893493704487825532265527696068120799152559728040161276228292774149148567342408283695572325566087955021555598614280436160783644750678066620163570196474551871280562515776171111556801030140646995518623386179164600592412663715806546909193413725273217483957656987020071480682780737003360779405148504443891067799850278551936397615098375798972212155747601535670782396700056316490308345595902971381245027137977152861968111057274246077206916370185811910900620755898512689889636661201887942195787478684278966953942699475227776393709722284632642992221564534766729334417419564914489498202535025039050038313816530785331307561766863628731933713012305347793966827851531885255099312386134417979885054665132517533119550065903831442603814423809965335475331652364530875746533124942891381898468917116185050991932826391664462490198639796206819710202317491306009841202250312158608283007648040904774284355338260017363333518617184629981103429648612062416073998368224675386797470310604481981011726320413342315746751884311129974792915005823642669271831543099820691556328315204044436313427523457550713466729454545547752937994376535791195267580896715668410876740085645300839807461471132347799449038708546166978124370930650410165183352075384142544409678273947386552470026028277659804586787613770803023245264136873505861347586538473418507418904226403376036984250134315967705638923220027666046863458866030617056174331500134964882623855745248436779746728888881357595772709013863417666602730363971081722472898647977929502948609479314360463856970226388400881739099169012605465657465502016224141017972922604514686205920131667042870429711071952830806704431398721737791321928230370589420547022552367194371381731484712775585566194635368298531492521379224273659020067376108259745462171628674799612105141066168616705306183737289892449477187762988570156166904118286482558891112380989914104721169757900083389145847416774323864447217971084239026843024466410672395112243602953571512430876208052400499066965155076777376526973752577232967463996197751770917719410168440937731953628051611254667246438074784180467827018488613228941597682949772655811541126793518321820122494842043188201524665602353014389028591977174009539861345033622269179959113456868446406042208641835949993647421815569340855511917832363863681674578974174479364428020900356833240990797690254879370715191884307743936803822023817945747770077038101002408774181398282911074854618987022181267230688033813335839518210320360831904493784213226381350724747281926183580753454356612945669128145280645353039831891788122495240623659599934365599468519117398347666874817455091059606734594107692206073505048105853272780647063109544660886529941301309015973336799006349415080354803179200609781435353769220855126171135105890128893979666797679831984159388930700987621021229549802919464011087274415566094878674256750902821038588043300576925499601084032723801557907140709437781111710990177731168434379213154253153479206881155492348150843090412817931992716324478945882960614572099379320404369404378975205219221961158073820984557691394910949872749529900724917284139569192454234905994059302024988516630900627945419981981142691531064343303677481860871407831160962114000837152143939769384297029678712658911443636585261256148592704583702943233874747056932560910612335684068438918541157361786015457087684717595959014836261436504326379617253657555815163623021237577980732680796206687813769064543355670414011543733977115370857109508703008475655289886144716158165624175492943491682555045287452383995439514262861478700713423062710469760258843405266248733762644627272457993863524685992730367749114155897258043409300620331677268432909715663102298904678355268343099345522989897657245920805364252181020675000977460713222400619666257390734403120801488648673902241304723356766810881433445382169634690626064266715024472979599261103636904098774719245111496702361825103338716500998484894697066065737427305385535345749119883122607183958080031134621126994059489947433333393637755492393583143957169264824784007587138201927453521820924062460092367871133968587857955327999427443235040548752160197086847068482349931036224607886994054795113203193669307524155990895182218673490492557491485849824502401530847948200784771568644098073025039687931935012248599152726171652826125174331601011027208801915106633542342426722453784211530848198483376038218534733334970430153446052112376911480876246642968128937569199229965614909149369184576023757518021331786641813555586079987247951612486922515774432764603944703668240807027347586099048748330206302280417969910107824437683517106136397918783863065425081900391914469028413015434164935176257251512311683272433903671670154670910493772892339542793920367081522132552990668443002256837343252851883620783433032895577371816588567854827929555145347163730131350595896748144677860945967336614472964731227191575529335345796818145250428431120580644397555208785594922699074347050763693071605553478063195797131199085405739994496327739884097936724344320772029432445991544129430332160962228431148756508370824290446140081036325253035670899143906472463078177278319727320500838435459414355972362648815452829282235672247638958757266845475646290896853073280400903181219572706803830650384499082160035647906633058884501059742719409937060155515322037332863994415086344707001912005284607549886814579257343142818769091618520724835484432437556469195687578835006652279634263054903673212268242342900265387564575449076068755467189285046623826558113196977710995744849821230014167463235325470827262222541398829218531236539343019749734290192779930750383475960644712345814428952537285945732074946751321354781554330016310784449508119014687235295148374073658748197104430927944315421536301212341924443448228720632730959522668889193574613813159746674075301116699184563800123890293517570677662216123549516293266535078064465615856779992269530178157572006269385974284930554371000528668263286496009488192348159500703904675821901249974095853289828055566020640398555953379038958339121823383427464272904323390032803902219684907297174807716067134393558539369672941870013103059991679403556977131895841311243190288349657088028319071420852730307787887694089721050706352393180801345378416026705029367239081480964223267772416487564515567314801248066448928895496509690213602321884723268556950054711271815978088173543463355240846690928218327817742542669464599752340357993207570163098118154260760240425171121940776361924087994809101070343493023683730159828810106314043746583433464776750816917397202520563896638828179878648996914975713028037825646352605747451820492655598636735184049744975558059126521312947331113849405029494789107339220702391460305427035295202864166077548321537558630965906813189400355705423693582440381224626160975726813333456711272078272855028349360504020603589500634509953762413107133052933797251963044403558818063781069822444513925650255460958252089242748662788670383582051830754094427992437817102478146162546916681240330021692916228137891180800232349129015116195886819152735565354762253718571883583429214348006734697085701812481597262836030118728870911323166751390607843877856610216641301058679944586598852814246113413029633498612520528640028659362121583286617805527359491164625936918290865061851238024029428773929266376104258553616384926821202559269871714460514017847795893422494584933466190150447150535270062981487281838493508577012978028473709324380280119997539520893742472429966705420504380651129542816486818320700746603807014216358222957008426544421158018301710193067109433324699636718264857276060632962420376303936833468389721487541116880714643234796871217586973081890338478313078563143508134419227739853309687888564328137801820511664967570508964698115643152011234224257683688202534337447507251845663523142860839906228985586965669369950356440855481254039531141325190339580794510953704281233932445474066729295389367494734174881175323419428855518513448402377662307234857413857877109617731894448526018155234866213200993962907790165382463626557393619011657831706565910186590250513716991985269028962197713281279283862157268921180157323948805786777581913958832635045454208524626508788074445980413125408434380134236413383138756687677087655810633094044192799678229604030604907875810708639769036166291347370737369447749383181625703138717403094196526949374485763269581672768080597017105133984180734292312416364085322916543629872134535631632002915921498191443718491026514809948210373884027811969961219800737087707112471756531232926352683048763090368921079425669263268411514585147171175344055995710531770308538425496447738073723703794079000925032167204802216701136667905749079709403742156111348852000892786180351129470104185150902105547584104524098781174699561808055469933682798036579489756078345080446797266931529834329897490861285987246633796909421908560105341609810200334275064510247895260799492139280762075321099994054929472772172486086427266988756109011530653843462002932249816580462419950290596300238843034453384978021305552487362765515045094542474027622541074302336450479202454284740605040637268453301502060404471681253681493917532671585522346502362116190926400406936200382179081789745472098737408668419823197210475845395213825447945703168749604008082547355487373827057030886133925241076490336463319242567605035775083236754116268409515013853671033890897162439314397111991691973114779819589898585407834213706080747208875848102523897927440493457399248065061165462252361158082895246417720094373772445065612306538256160045636464196958417056058970660626052811266654581171794245261841362990011560090262481914377904762503182742683989929281540473184918179615668936673339498582070693263009788712629673878080278816292966005096167160839459939903349500076101250271181349687692614270625645900544594866459137129442753079982442523218201880921880099562161232561314633673103836712627864275973197532489712355662615733983287466008490976865535236015444521584496723893047043356492032248643834200166969218760762683125634391077993801822902277602723045183589458174332710317625501892099527398855486240470900118929719849329869311093838727669541450147419233593372417564165230681096191321731404047061085869666001112335548302967662487045780415410816884846452506107193986110079670256836522535599627602869982230931853879114015662938519288734247830173377976758401000494546302452373812061735856665478486832206486511979206133072118029610324617696085474570484686906704784766048517032440647650364148844494931224572486623340279740163797177893789634078554680082721864499999341721625345900611475074848424504449695110967378954745084646406857555776629630306665786091696159169985875090360127146746238168354484830941526305509687474773130716179533844290181285459391141639554887562208955532467204225169715939058638216859119432934124684667934634267134535025790708957134178087488681984164416694582039274498094988432968280546857444531620277117355971404785286504345910221559853626967238315293196803493613771437579445263785636081152520859532287783253377508231766016672490352213623964555415450771313151506196821656666978712311388647769868553473049145646092402471172161632194172030682732216232153397068972817001488253629285801872969338199630796096375710076575796292703392450346008202190973615984273629371379005639311146719220373929561295183806542934717430359133931974658369817577442756980310216652866010208068210140141450090771530758394518051497617646436982737286312328417723581163832985142402347175141460711142146123278706821281922611647383315715996465106202859406848047332446981280446383338594474827027727355221890297745961252880887477182517044847790063136076634157006099813415320305779813841184204783543221091143273175176078418682648543057313544529162992670257720256591968502136009478053906036815035529550054449975127651812599631263345034006037972873093366425510574766943486186608125381902812219040196867635735539244927128554494972865300118546692536710383746015796068437130784932152832791805252151404060897067371252764425350960306744842669294372141386080837656646294377667453525707602397798101225065855187550427294490767170829768805166688415348355572306272924848675926454708741309566695668967039618169620385086290940220953010019965829795388507162051967095964576367953328220268912223295183723468247670949384491002573272926225361070034308834872716738517678284979067120377538701100259518996051452599522805321618369471040505968246251486428606835797215956498515016176296027837075744824049976128129267121856362999276857017992099608056909282775675094967767332821421512666241614858486341768624401273271408189613847197673902997071962661867250311927892360030072989639141705569179758451349861358326773340758709925719426306559047272462343059973191049410029915026572863673217277525305965488963552474678121633249738483752289753451031175920852340649491819237388857741357982924955387766801851074010988627111309166735454465918825548222559906443631522768383791286958760705242945653904511040312383016357344917437249451343558918698879169790678963195703360648302603361717254628808503209035346230807772581765288018180648825495107146638161836074460818668385493719566338212503653167189051864674662445436665405957149707860920120395564643262078422958078039851251220254425529892859687390249797732812123398126678895028524356127287248548550963883456243880895551790750909429809007240154128649212242866281972638883803476449683061429117696577753747885696672584867595126740661490078628704734491612457168216985442064050556221875573185836547470290962670777953629323246011683058589014582872392694459075065132596142440417624053353581116451969309103379980819537585317917256985591226241972961905940718648871838176602924146132407464363464458488821435155830157296235921662303328898844459766127323424068493921695931709537292795080918163006940936449236892389880880601372881438278760124069425991337266346573353476184626102467549458735019776825717670022717817780110692871199140534949763642407975562675344820971146848027741193047461903170285542584444973137087293503584066120777334697311180146918934580414712488278234685268681979912322281027447279487511270655284230073415754325430896943704517308810669741074032441168091499963854593482062133148533309381202453816034653985472152160381236402589191340285461998199347935333580126070357632312216763681958354046805827256844132421967506553606232335802623046167933195416434427461564715789702862713271827535602637977143047723213255329815885471995913317952756508272415430963452689136207486331373296651501354985840821564569350567361019229941333252983039037576095448077558906828391908926262776104408984536034106349295350884613709135509216350040980144785321378296061174909665868081616336278911448956353220607292370817357859257586119655909280662876906762672794569258163940590559700460344585679520993937319320789178108573832142060437574794939508111142986664586370198336073985647536476078038825656375492849913572335786250789205961732081860993264449371464302710964691879323128577257817203999887915266593392214508915131102540030529679963863494937893113621967198402778356760441698426523379659318044939532172209790675965516662221645075319213387038567579890721168750164234715078714674170229377971166321773543106238181283776544470525415747273570028485026310712099965386022531204780194724543330667819283140500060950674181535659978947051762363618722467911979475602814779541791822066439036640623886172679124973564657040618153453614180657511972195459974182845204333755503740785414621454851298405246923554723349291103325937701246114136576397315659703981351534377701276947814555365074044132676213621548357031225351467449026030948679067390378179337861031552928143235684128478272698352908451981975594557952798897000015603801702588614038845990368894650661524368484506883026283739591221473480933768076556748434121913091506939920047159180410466961542034351032190283316617067487788539145218997783933985247490447874327652726351856949032922486376759606755738018995368184314444668775993449168209472976757666444964498416962449547872692249416792272833250193530382732829240634431185274282160433767643495369882102979613038889388926353343365572785772978717474025816748488869373755725896894239461119828806660526738248284553927011510499637711563455185206603319598448077666800938265270072234570613424427807272872059853796150187836706133546012367670983058644414662321167530642635463379212897328659818947534001619419453520974321243565509655948933906264145588249581927281229386161163372540332365312658421234330031470880535887558461055917439855087818091420788413005115977292886146313612710039137023391405364424768806427708907081188291741530584542106027676384487008383168145282898896559143711380441302926835989939228963391407863671342909701129343023077937156568035160612770201683737147720618893129026192222265472489520401653855930424603957685373298046363786573854815470844641686283914259267814301543874918617454193463104117750087441801333298090113493611393968239831325861410015671779658037777887475426586449125447245965438906830066484023400314417384205796289430104436803268528848897195269630736862300343594293263788706684276470136411823727563266301299775389013197344167946043464424119889987422768163729809318846659078263053908468939039888362409595562741307093777135627063608238013578029948835634871866943591157139325885737383106187311012216202140023019201613138770565204553175161784905334445749151736658520724859785369397712765888014115710534595960722067044333169311110580345257729920151719937125053157837912271179008315338736883884371402479980274199275239226500729405676829373621112505996182012361859142560867360659578792702950595017648882561640827919612451429468846068840724795796890518466388793092327656460764580293374060282079955602350821269123386260711379280956721700368691506318842634687619268392932024063670301786907728723370685157172590141840836906848236536666122103107439586664524529153932761034055408345448632378459637318732267786976394180637533699978901929290566561146348379886763136075832056447334691002792780625513239353554796408795859996274457403620926143527392223338103581887759693639921126353711020909666420264173089593555899488477642930883775811535348212709709748758448198171529734621681827291778963082655563551025474861478272403296032450296810125120540585985702662319597121494130220912210582760916162938807855594124084475699929009521627862055438666452120420460782595499922904109285621520343886092865639136382411988184780744869192020949613006695875273321250759922128712110807861286885198047638055538242533680319172290573353111703432087132757634223702818667616056451048497742655376744301763852675953671981125484043491184799130340491846731605231031452751143817361836866616515193727365492273930709718070781313630758456251077948702024775292822273088345924920543232112760426957654711441525236540423868696141479755696180748666980331013440024673895007448506429754443016913516885161312778567598992510715578440060137786325805194688263642492210798526871129370424531631509027075818694345406815834196613147970014442289202043432187160345607866624898875815572084637318343653559861907337072450622175320212635722681712123709995310074875469036526614358496022464019341416482299898289515496035353607254576380101403611889970713113867744493848167148020649574189147525794844918311876619844296097383653167651704591875637648430345186472187064716389698333637917216941839224953312266371809439455178071872929763344265507846148328526162123495051899058134862117710796017589605082280834682567218268945360644395587420255711479131886160147871783614813745747303011206686884961499766779551876085384854794079462742649861073104413332600574285234556964632213147560973347222655605987561524437343048322601659509747436522921816150440212850571832994349897417736773716441376572058533467435753589200692150676972081216068786267882075331013829952811961245013408774290441605100992762131197224476255602726405423899848483642244916069553900969160587483248263172660407016113215164872991079119181033773174598646879051562820458264491171259538961442426463351326561632418565958825665397236985811895374363579825871852249913897318124963084197549050370951231536473986922354163706355470009452543779729123020424751853091561027687815194358879213758929686140538023388349399028673997813201314930668495562888122585185928040356883886360787232524970406113076987951601121414332243283123577560655577521124592998437569774937384319182872139802636148705085039964934156844629997652559622752162145175911965231865368359011562362488044551716760112401695981775903391330114241541519333184469911515697742964634995411426069874257077618216356089593966763020170591017344861108448661269361161586716399241630614047196612829902003014903442156352079591395588006381869735941895182651430378081501882985710834879983873212745625358300716770825711392956391676987657173896986894321361810364717502216960735921721785165633896472985895909205389291882709736880655776215190927005932409388318743046215559361334759247777371316259547506976511168027092239533131389613285790309315625048417780188505115709694664613150427321295700770587919088544087513309404713560373720577715531601384262896810146085169208256328686046922087876909216083644051360032763546787187831125468335756939444803940361453471058141985934717248646394588058147828115788561721474002521805946811410884264222821768236960050498689779969146210556062859157203420935742325097476697014585430620081735160502484717590938268450767256217103032268837298891255664843856389525799668944885856801988332226807037021967327983644359254754325536390222735695127551038485576430373498028326154583700444623587914012264723881534792079898029244741651619725794611973063800204836979414247539200947434440602804382907526108429236607413958467344502855743780944065838037617553645294196042848397338550137168076373397171320121581098745879725664462045325879407448910431194214511853014236700271122906824617067202775716132372865000116515228481656928351737540027064000170025725641268683379696265283267858882486776078586857551333672581725621404209674747093139854363625267126349815184293000514267459584141837931166870666174483950113810706727258587489749653776633849422306389050395384108861061736820177863208583317396996233872115536791149748211917850006604457035529030198950546200788686938087350543854813031915491290209916878579219202649497067026423468046101501991713739520690075707374558308321082419033858896236415071370575703473633351227300927916826408283245619160175572147828035556499741366083030380765808938523376844167318014183752664029916177394873515293271511288181319048639198137249436877793914389456150059539879094504680510552855596218498144549874256399417440925349713444495029008017081383424441313253137411304100426657230624919931504836990802143306819148317643118373262408160479177006241970825545829935582171174565990189687055180787223915868918310112463957272241730077049213870978896976168114683878389281114072986828601044487447573312593923796099473745196058207661597438022549325438914802908507023803225036384450800675874232861738675266473169428282390512991116656288244350788365133728767838096950080595613471407230061068830562337765933701073763650589085487248866890215985781736736043226267613649879525049409855740457406410911290029365303026445264262491010078820223129766739762868920416792897186469629535524712245333200107075032148986578299307292153665136458053830043404963893114153996597594733060666904027979080791278218306037208998850685020455897367571047138429794199110657510293623186353523093754119312040521170210158298264523347931326962822934815711872268030364236330917357039188600578623759143100911956299529710783529881385726010921118987656852801235001879709414051134252786547925996047299755893977994263257100901537017146506575670523097991620047040969569964051035784329832962349442550529644896686651175239241753576093822646920429272233468622946736047586965985930427286249215413194762190150944206123074492768438599957327303850306081519217553173770327633328162654583347798156789637278235246733256536733521579615361780563778246743822655203119791422336411074341756645671767353184111542332896583870038895297866101384689835386059090516211836740478261379595456773300359926686301852946728980328951950656045869860672826871295724293244602729804222231439601407923992126940377297920372066083188950573316499193871051361603515335738159030331877842883159620998258109946152542067390102604681432963441880645829931325505848736532252164422755744605898796679456771258159906710646419166701563031200970551009581998536464063570909068597439937865986268485735753194430772997920800789700661456468687404305277236717533277913512364593141013372999713460890891586413502042523913082919121757508834873791743056690103244347609408423578902375768868841315667014838393048237611866437807450725706861299884996662764347328010934548773380223121435331121454992100180951047986026090545866703782594927815376663330325053475600541983379950020892239300667356670737322788995664064140927483854737120108643434503959283745463458538989465196396941315631056610825455229494603111395448518500395228021703383327126038494651006236514432935077802272122465666426726117171250897386684117235907183332158477007000645415617334200427666331271584536728030603449294518040207997452034276922776305874556131778980318894900969856627579965090790408886927761613125446730703257247702306803615686877616293614061165198057274036658755734698806114611066386006403305832673077445241019839917748221033305067137900190129693234923100153643179358675866423152775191252037927102515260089595826336276006649214937217541724658299366982936519122352281179410587547892704949399485446665523801580684871660929197374580635842917636107581752826711958176770827798702315430831282435996621841311557302823731897994204031715539230110307205159062147961754062381140478117177297341222964591605849480015638175528448544827689146296169509932276934610075788069663722184013922763627427790371835829619334425259371144159220162378266577346361110905511082380095487620196240488967159590761724337438294541268098194494013244205947704414018518733698025742990605137072516693894359757738419688410497862104630425307289327000890312170244322111855127388852021241579929623540824092642359228572772450245493085993133038375441007336232713960593552231409193806825714209701045461425818516063116635765474752518098928886044181895390133098317413141374610701556832910656990861846240718306915320997573165592398788824082923956256080712049055485067815416192757613168937905890633705328794334543848487854596958972883384551821656329606763467866828494740284837486649698373812116115460130234098278137625175118330854656434734500578219830856402098921891423335689239493678101761024308274774080005034779270458786788314640578960962679873539194139956210945854279542850979212203078570542406184977935819176956781082772823404983290436738378081405548033239510035401310094871227919125671079461461281365537487672035402307393488382445550466730875858714439510539383681587633830712795959639447732738627518066622143398197928641824304343088457124387098812793861530006129710075805429790499770984458799556336215630674639738587492357842953024104652798509789901184803895118184180425897102515235474180952263937380351547343488882318694881909928193637045852192653736491344646788486732687036297369319272145513240971278127790065986462786734939218850476100627803086450195599107157492056966655793365394494476864676572015168069167215612041231427111045043625521503706513418921430531456351717256807553710557952585558014097923089155183022048908731700766940641403051121314080320432156354870578748897955325677469683989679396589132465777905038144174169470132392929162862609696272028623342091729622090439872567689792682416540915995757719501683022782683248575902030464484905852645207456518146480569054371500115068074483611363826184414473012027466593537180601891079499008278462885006984399723498058078894133663567202378841454673747328969710259285841822337335359063630780874518244417817435744519181262060948007391735345547361636060874423308096220827564563030103960940187337451000305992965247932316252923674064236837674662260138914058664048875403292300659571985028085031999738464673624871029688392783897796996377863236962945293594771437443348491962448501870770125141150175893562298292865528307678043801703729470899127955739469573863971256697099609085682325867767281448381017160871714767728552612809125433590350719222080848614646041456535161299971195654728306646594854265413334574873211638398358522434736802303000936353598537732396614991694105721987898994819708198913085186716922818243514812697991065155757692440060388905014292194912305185614411033669364321635487605290957231166288016683637938371164229690595539871627262624807741977179327737612677657887204917813408425504213693249604424145305881650717594194536636430016461237324109570311239477516486918866776760041026328472869845124609275096470529848044194560137863115648714631295491048952358675459122574921831502826992429697725233235654079329720045144832229341500795310746589719788585679074619685101695051895417417514549607917231115117256467848770062225662742659520288838073735553262755115251319691583405388196400938455720848366622689779358712798175758682469927154821296359067995737219429862795975670458882647938203825831414004994535854463535600494503526266669565723299205433702452727061432947780305518804061862090269378701920891767249517815519212532774110263293545933934348103057063608716599018973028653605443972761247990324808817219984072177304383405609577394231862160347345438934017830933186147211210788213924013866589704174773217853143315814127331593296799900193912890989132964911681486588349421427539495256568375228748340864292396325927076053387387090939654094334082415110207937540744123308319459895869292773920850035864624865268500047590234176259940682692144136069298146628985542300445262605864416030936095757682570828299538874894299909259549394751518168398927096683160562374231496773867133739761711814684638999099919517135168194200049106767773333382734219710723886263675528077479324039018280882411646114410868535847400841624138881558737451446807668741076924430383966586966764136361210099174391473952796447653979151166342637458512326415187407189596216354441143497529092685280582176995722951344835915979376467407496673478316544200981501045114455698102915522069399056640007151589873198822518522171811134069715954398511369873285768927439906006349681165002099210577182023051604539764997476843422124525432013225006257795783975397841424416527301293009678075643230980043031630859953221469377572207251044634726117857380217763942939084720891883959975419882009752137271611158205539788327229289738741621469011097447414406642670493723689667370058281140883304623763467011189650046117467743408426671581278612939916271307864298171874713821878694803787299030597030287489182292521451121033095683986103029108120964096694621531765792206178466664951228951628847120897462646608134058361081776862390357079254975645059873397215720510339172741944912852090638888765865459779555584107537444288846261990779638853328375723872034466266821556244622706029716657514261290340927569134424926958299078003579234326570429046104200157759697066535796854367478297508468538735462163069232528940850715035881494794244371586288561259053614701751657230005234387023879785906669404626930485604629897149532832452746813954779323230597376822365366642825332976423764668188239096772379714227093305710785083691774318114201690596566579108904200761345665500158561307369303678332520736554078112620298575540149781466807649414846563243862613241933011302142044476300521126022353962065618418952048112907636968639885416295516494276918419400811515541597515671831064488825311479858428545256257859266684012596959824474090252727242549449154486010518807548320375314663762289473155265281933931075743978982559926746440398885378496160588432206748915296829320897535699697261566366518186400045719035384258130062369061149629921222247877372733175820589733705689526987298200304448240979067817172188709245716651774928011512224292628067827097870631314045631743221474709713267812723262490956605254475033558128111700584219029967780179424791369696753224200155997573873654290396699069791216458736793900892151090002275041543136342139501295405101531609554642473226469869609709397192615074620964704788986582458886911480315885609230192596314937091869518698986294060325677813066238305575230315683742439741190151268089777098306815111363418727758946918129616442681588053652294574127354638071343548807313247425284291721079693039418727509573507072301259224399934035912040692240954367626856600818221042343134807009269727650541245707559634443054944418805062967765909381633837098990742328078227544437146571729455753504578959840554390736700332865534564088094074032321074720249978404865371636888596087180288254449728653425066846474894417162915386233439827223803415834417452806947853812702453673366620503943712660768957063695695795095008892584106102647425692510865650605516456288921445359528674946414423346081649257440511954279926736777022894360907204331484875242845435759917610109769015348419970794279014249378921939092301128958429727180709373929982447997016358048127251842612888080502945676712424117706384505245008639020283624067730840023343608887207085864353603212204959288491330164690053445829194412913291274488449690366107539469984481995743164536344191505634598670784633626295322350621199547836570077065733481541949556710414576785998708281650557505950957661691543002538364307018011804268998747916154395609116065397059016370603600910487130785327785941317644252166545235390222823257714272001694776179318072139492441179021317802893581261050196194773737471653410004621064199186675073467090583508047537863255253476008869336136352497252919790719259201695349762036954933693070180510948050128083092938237511034866352493926780015104393583460483165670093250920824780047456157374616606474010318476028403299987492725790645449484997661107608861408536079070979229958318613597610197327726782672280559613964453818106783416458085156300415579749162849539885269421398377371553128657827608108267995801302912115784556618805640596572389586309181412884012445729890298799146267331586051104436924304707800721795468574828667318606037525812496873824999492634041339186518801546551696342734157826159084123724798484065149656119341565984239215716855228773684256354010690606222290149558982783236191301797162705896084414360405010789477807143800830710255258144252354613781711286245920597070214364502991034794074788929291374900682487849878926891194938820793187419204233423843499699498851142869646039091224343582737637034789988923002317313953460500655110829125169469980827728859272622129581613295875350583800974916644653963343252998883703847900396376173798829777004766471868273361734036197641215327714977914637442181892954327439470980201860255653000226572762142163262847872941559095682610000170958780330501263355013037462120127232758181558121532705391494714312756425942857364128483418585656777074129749296241346588661713851798183858505586207166164348249601855566575897399643803425642235018627186129913369426999130413481229274705557091052569669219153314294543848276680884387806496564952364094314318275900254971255565884519878259419226564088913411178028470527207445275954573940892482018642803458976572062650307907230528928044132331770697078504343762771630393855575827342293245884281220401150451602034349116607409766406170507826783585241793603261930949448204384369477630138150957229926576337265424936068588512003960461727076602287678223197390374428915905777348664380105422087809723531033868196562490463876342052655218806502027299840170751054332790586131334684318085768217719070060406680885794084387946274672490434440876168451259918824409964628948729476762220846872405830996833222124246961273081942893002682437313537782693373884086714915744149523451351844519122631635770293931002223561713933098898933078000604131001595122337938116278828694387275351715954631863922888138465172936220615654240510422606611332657743271335030988623126183488352698963455802298101011193208028695509904532655658440166986966610619901065391663154887801090123622757891109073588990380431159305719681661485313133314439378736565000052898233101124608057353221848640722220748549061745845150786106703665632684641814387602439977203149116530537322207745284316861908569516950079388312996088329878546629023829574295106937210580663358932487565990363988617899527173736068934073404596645524899514531613928900645718232108849406021758530194081291904399942534235216983572725695242083207120213559888391925063840788866273740685111126112034561494585206994984362737869216373869922859882443472527277224090819402671285700924317474728402823833830194892606480981128235751424040711149831965079839088391458782625712058163779244266808664260148964892948314771137253868086875767859911562552496961449180739741008860537287151452672526063734245855554025627085923262660176887886464549109864983570933637847495771523128693678556414896429313762610657270093661736081266204315943798999819292577137319920640795520034304865962686543366489651189228500671078032311054005959093889076706665965470995610926743258791286346460336687979308692266502983644215898969057551766213779249416401294156463720158104614522763819720419253988929222767395558438809526788469445204307745912480147083840054542525638579324260926552055761117054878938561033435484117259555370622534763098461338325614594697504345609762913825031915298414261338999984093667708858561064925913762937821083529246789769934305869354931087468994348210266677693266071786082324871712837442363685855728816797238924567471499385633726817926340355997298882374206003391051132070750009954932418603812875755768376845342304715244768665757021511438328888001587952767278175051936253974999098526201781869518987904944129808979543808980211844484505168040551153376156296857568317583033159441772297881649888384217385724538657013682093725416974602557398215653006473361282517831002317443094322811206466569478975618397017015123177255179475576738075598206059281695375433007938730756771290677509249487921780276874672302030065053294613288033002289341273462899565025612195236829180766345340627185609975283306607656156084807251785348283916118155657948654390551114731495662668604235484325863700073052566516919233063914419453551943653016213165191839129805395837728198198643957395226320755266615979518709337909081634800945184291866452973565657666833030800173160182399634444416579255543378697432989205790550837629003571171464615804852816952394648663318009828688497964837275607379934555405726160162071083805223889189650089353316493552286219469734918532679775368950034472762064175315179926680814035015538232825647833119752522255052121486869076525070724454728596407680381131193869605854775061733549132036597927551172562757912151870528448195508477128858524544296411545470756283327548207635059835600508569884203020493896235248794087943231440557805012334607755581920359106278676581985764643049342241372814816669240269790944163844940556315066808114273318979652320458189852311998363492075048649236337554316807652126451095482824722545750716984231890285637682235764211412881609152885165242641398908309327359459877754716698802675354355272095897077228908105594841473420047635662759885049959775720624332588548238111373792835845501396138012874494045449718815898289380291903041802047224568849096173756773733907699219566305679148260627721042678119934949800222357472241293777139495794009815119872709457394973071370152243050562867805491112778178215162495879764113604285280796831258683916674249709578201453565592353035078166583631729671412354782814341350683535124391478955521123606205510779930501102718892493406546843887527823284133530674262402656343261617214623958263490262922701203254271196884780816044191407838261014213362931320932842788911527236705329519485491634558867940525964962142083784862825106393727474564895758409339110240920964418704738472272914966576389577370581979025731091569483776706850514667220489961648537764325333218793158235053392001714974135431255701527258195912901647808184960442897619548607592909340435582144559333154236202006047803809638970952687015007520718435749466531724455787705789558759435815431679080219968312478755721171278298751927128337629787504672531606184086417893514814344084662837253429517566193182578994843309611688955559709078307586356893066383525744229070201573699428767751026972152477192728852181113503906805933211686841631419520569417171415678453092063994485103455073599552424689266622787353381705764245220113377404834895282081479481877752485246147764224194744132572474676644503305305164271561076337456632440016859745375557651847177949676345474072546270684621413928690433340161669397876491734029206803273633903579036584487201835244215470253231141844490029659922087150520819010256425039001424040526403502638753861255346806352189543618384745258969215410674583004984929193584554438323283822017007290834371874187947922737231286549388305494498934889755402772647305340018883992417045116111316029921738082751321295117762675617079254060418230375218775131445038921099715242569157906860621744290647633674575461031782509566212413935280255632030543583485885224234147167604333718156576969059613355623159942529262757137078449321479956582206502484078778803110873986322591940804531611026735015889847982397290769290650392543765988659955618354083416996245488663399266032637541023649916294886589118492428208110603784886775934250414661060290554691257906977136358452837528713250230158662347391597373109783729795194024485886507071795482425222070577175797598632993932600320641488545203121287320154649242531561847501782925107249701425662166227590474091436449627251887198830065848609454263029482177763081337922872149506033929711588110252475465000819957586021713710372281575611526265795897914983326170016212651547075304007698215213586909234017431686710613841381849893752566933370785261096717352035680692507656362061291810839258699089968968600259250693688564416178447331741599170107879269908867270250351932501174435704125949379778086825461333531587454130348369257702415740536857030778108310687416112835611451948319023319982366051128884541080950678335189993567420708015826585851945820747331609878492086501573802565176495459030713645600475933715306253646350255378584667597115414836473498296190653399298026829977603884345580920188896132574325394808340969789387247259732566960660399743965675518955594752128601759344743712749973293084743564619585239251994141215027083675602389787471444038736447683925162260076217841279065402455552829824775461125230396890503611168641878090016467368526764619085053266815104343238156935323612076843947508971106740536032250263124529288668888678099459627968613029786464077699479075372431372950364927738443254470001075065490279315512731702566569367595384264333740627565200331270541020550497567441265844065817129477005259047860330256363650520507762869686867825271514089804033092866695958795242389698245996848312228802397443254688858984462641445440828392290266894303364844849470196518130354842056424574194152693914901901207752629712346453801072465230061904003708293854642209461774120854951544589243223881385894404233567902721583162360468137052242988812397002504740561799005263749130143856552675717748185645555069099297713568035950052820708392526710374908023076674266560763410632344654702768454282419028411041283188025632726657519044370186362675706576672073486574197597065071289175547565435825960195063052755276749930148085304124523742790580934688970439741624013904099284173567205623032637153662294748527321714341999543099859599689415118847138278966615125054657335803871687902100919765769771491154914518034559937523579736781992979342482837853793049423102158990589853925511168542884567271027002496309605999961673806016644337161382441764339567110246954315338565597754859269758362077555500304988054193020866977671169536712406216632660930640144909212104808475618717441994416540279883457623802488195313046967998025413099263718743884278802385274727841524270716110472506994751533517712172148130826827365681848848466810936507807801476666735915683159544465249000049414049552262867330728085498537381941301674819514415195206849918140123698515516446262379974924289696328732705471570893349589973963255054109599683325817740172073146768231741967736325452092615128968527892890129686157013796605160585095493598461817758259577330774608053621314960570993700382972009079930944991036239470031222713277365666593886465424522572485559833279180177004665130798719965032764288351935648910756534267143900410042800419535703239484801967779557331010984936410228467159292925581010939557555875707444054935851883272532534356441569562819109640429510729671602106563717660845645818450171762164145906893427219721149599826021770814158020877027754705190558245069872618144668498919537204241374468628699207650596887216626783781359208950265986859443176659603764651153971814211393612016926463061698593070539643285667618066183162524843376377394617825271740632303433216336558769080329517490326812323914262036126882267508440770638056632433233327594193552762919457852632188712548718454654334639748302465229766004774501533132773357937477664314607787155452580879432654161037681260746226884519887654251749398943666871166913942450066723428335492701480377857344658148258014697565276192745466453892473210720593114188826277792465236059780995626114492256197695970901807033492119991321512869764084274995237415467455090135443278908019542113814147862273447395467675841468253187579455943277859618989542072084995212918984382707722713424562192981635478704089622178289813250702921460638654579500236592846780462045907473316523746589795644139169369138649897828626784370590694095009099448150876536549450104805363720126231279169448055987041681820595493661900255944858847440358885756664439097929632977230928671718419936429039515878104408274744547507053433934213655557913698264486121604949022622165967441102372640324385615523494640430332775690913978857592256394562419643851459286483126106340662445801998702616182058095789095592467351944456952480769396165883046756622046299282794359637979780890209601094043175020325285530935824602280236175148809190321875465484805987402919602869606687972814938141961779661793388504434830625874715961508588939324494371927020860167795523623488559613304720588096780368611205214922650005016406821596292714154329584829589043713124890662372668152157212837319704300020241406488852102366145080933965268508634947958650600679546549986364859811073219570915011616379949252642495837752119905159692568503078940527515782420956308213719766404871411370147665389597631672712371885785074962085776976158451076202428637410019474163011664997978534685029743849840120008815564584640061487243737535483840464697790606214507606899998618226941839564266782659915589945192825779401295816928507336364521568758550753198470492975179501136863807994246633241901251437856277692030064007400452125635072911045962767009108495033160117685444449778076166602330117954414017417579872428752188298262360246777935914421640698504867487193457094529842631047957747575279131659382550911761163600192646729685447006701727033872932244257174954238381145750886268462632859676477300252848973503848445544012327005934188013444620782270698000594053915554908194870207254853503193156313725548921389270229668151000282622680874277509522975313359103999794305602439779522832713938373203795357593306810119039878794413756386996179856031745706553268543658433824475652851852469828691498504646916148636937978195556816749606713880616795192217330389378296871474172759228890698169112204521200050753208923918174054368536356186256373405983359876919591562521435830897491949107453605524668483481369628186066109412421345294573512263770092142560857627557498472604330329833421989431710210828177504907243886136414474999784757981364615235941341880389053761322062599838580259465379059068053694632207366570561681096021706177648806672970530730924142828417973231448355868454807752525054203400061555723672828043319144595984030089829700564945180680262045161377343630304512743465749431724660014594969076578573417334318105942055668121573759082378659981068798041830498727837778780364272668945996949073136025054315607445114335088819782479546132214468921246453918997044327266012869595581671785362230803041623584234611296086924078619383453566560441858462845081335769531422673579122904665406789617090563102464550027893491114617569338359772876323356536074126422857282339689770824665160337025111051576764457719236512764432057452227776218955869219595691395347638061394356182976905312273855673239570926947746848597073587226337008556891100302666488929878234907623748107750733561492304184812776192537697285498546864903768120286274290271779856468468775970033124410324012775658614619250684407322064010165952560314165894077899299513071001688874390490592337075713614675490177398193055252927428623544689118863452873046998389901270325492401005455456419493512730148505042089187902307990202353183302574877938348810637443095298138338684327818052326786585544959912131424741546101971504767043715577083788655217989932568734593598421611956127589288879054438079085822747480499015365000826045164110974591316023663100045205498021089761598355653934622468960109067775612253657601633150509448300181809248933707463724881417216849873656451163776081836864743047531733688892300891803052786471153891030903406644617886562285348774239273023155662258968467060136707810867262497319080769751590570463235001029195178380931876921617034559683765583561571255475426457123909775224342947948101621195486646908130923878944330667677584521260390766728000784989983116670030210723187131887567463010767560165964863075388266664910856788288104323366095885251103847432541519459135144629313633495180804478083434956978936566671082628498013839031137931115381864268194778762333515563639593740030246797720238625220133036008322175432462499537363444301235615173582048310667324068122683609820994172402179770129359144235161784891860148168231511652136127553789781180702817138047753057933950605766252186929383145873178077219751716612715067057050884926580696726415038980614218585281090786837753164454315647871528389840566643779981335660884237369556383700180658192068621282686940890721879494485882234109166424601203674833224706245244707694428588644334804268056182943306347153849607654436809693909922713297616470238660906034804567953584406864623839156604287212822676434198528447561926378826842418058189328577845473888078011568226189544819777815685263176258423161303499515008462541526532433498275223372644304630911242214796745923380121613662306648861829763882371314810851693743017118130828574580532738485814582628232962169041740334640417904699604960725483962199119628331939963841528677819891452857558408415713698372939421905998691712606908216379014483289498536003056887837947497219941334347069222281328507380066675071557371082252161051875235219302980543219958323682106916233212633220188333316766489466471181870287572216633113153448078424712953984914421476347748132778609946933119398307577062341155224359712835137157174465065853529839197965592204696175890976417096219893096897463496648944696570112685237411266705480254697115622246496552091748955941247172639800201327993619664516398171538689577768193830032135008050623173236726096415526013382456395199050743025326913752458052909933116638592971542860315666049788475502537939500785942175959995003264516135989373569387860728681974479611931054481658627153370371304545273251367569555213323749303712883921271235839334453359594070117611567193225465297010808547001970151206809261548038494284666290763917830426597576630321303001688524431963008807861800571518953771718182001278338211045184001427070696690168501846948974499932592164811087482601773934367079998944854023617682051258116418657102331174888678035499028241982632332873637817326211405830479690344542202335256744349371166087378926920604241268764620652167798763632548913257015711928713612559077912712567394405188138633288927879020385922582854320631508207344960266282842367830184854636531229540183601490506288178091409822569601601332301507386676612376616209898488970092518271727989364961699643985399008524197871358264664531768318556152750616513728414324223987481902500331772428246698882318212049460508509930245728588103972760303609361217989484796868059624979076246882496437460353563546095425489464150950923555807324738291980508242032069591515534957352528640426979118264471671722869362234382773733434142499230071241487697617859994514845790766909903402996158891950647116547329905757530346650787567125209502211054602837874548708709130178540267452169911774733074649589493873561480992132195653482731932344808836132047303964397452800645274045226439738114996039683001210489342583137280415447458637410864955349637486873556108838467539465627951837846834679907649210962033054892902316090206951838362345287932741142239858972896405212914311507918700077430254739822753894533698385337572161460877378201874937303982633628178739659293117416083629207770765885114998630944555411585529669238183739042479686881892022323785554204350137751454696239060035556442685097736128818835351121192889757766134099256908971396183443708295517929635737567456898787398427945834458962929545393235169066013025262686589075606598488785919343950469137120063813249157876955194836120300153180248314128556050715545897861829373978866060738363631213526028196063403231727677564063916159890314017959228171484279787674274754671074933637104340911364204666414861677438820169211371522247342672885701099002710834448622865212298124117039488462492488041976451005346972850399572416678110787357507421866797306287808386415928036613000727661509019095529119103669651865290048811086780241032633490704560913460585530289544571307672685547493809138154130711223007534098831618167979130507066963119781941924038482328172811309646915711997731712158551749748969081256307619867900284381831321395455243780804120864198918344977746513052509274929223088471349348397720099964244492559710939676509949687342401466921493912008328530382162559851208792778750564151309352142751451922664506604398173331998270409412866313649363685039064984877854136943813162364041271941272543100565114277094285440993527138970627326695123652984791894507796429758976302698589219050429527058117696634520671378837322278470146588181841838165116567638235157913931846352784416246548730339669897709115175388637123818071184680636182088541093246515251816851449174596916441197182646100622540026692660497991158394382798017930749214962509908300289344472880620799079206299500391959195050939796381713691818664909511875471957552141835621234831334466069415249966078430827787777741675992415723625793933616359711516876326897262217982801555195360011031115433987732892459297967017413705773292781733726496456554336572740114634069660361905824489650985952835307417916719770617150230800168481783707266959980699267726907873362745277915050263195780078498509586684838483711282047958751354575326906346832381494802842309801650632085930157726926705412906775873658489332908736287556758476320970281736671232539268976207035410989124422415927477210217772799689686916995825252670114210370675787073382942990177430702560602281964317917312665247086985610809579814980390571051709736432205713231140696812602621538234436492914045101304348681698402837291888329232832390778560498860790243719520609949202812736264543199629423931339641589827203894035878678621777459816322419627339307428997321890386317050475276220424744713520847798686240022219687813411458646128774086466007187755804825056085079339402495126332153109348555529250791917378229541302554395447415446735454124481266703860710041824182609467406994962372599857642769770363295400443513930477400999062563580656492665644571955364412792290665467369718322462793108292201014641482943353826292531604341003073811058257711795435667130613597044294130923282793086540058842378214000434630228882154555377937863175256970381149295579879192434709963617602346515019228735949660648890425592403752688567853959157940698327796172464653385389621880439536071339937543704639549791907738009020325843309948629422269619990479174173579212566331416458624387901749246675828223689985232314980602718411598668569292511765326672772158927965817951274895824962686206126201920252996344662847430914908107564505587971500763114996912372237383431403252373823867857197714807843187250718906761532371315280113856813685149506019128081656544609164454945256490104142936744858992473284357501516055129798015190713285193481529141856864410113120388797821195862479157527086938477570330262598038553914385628849641297271851317141319745749418016939610991019930352848450856934098978637961983821051986928606926953506299025852316815900190607750493431609086514321074582200693117345857911700966439915439345657384088752998203148088240568155774120471829566586909087470067291263877095102506409592214123025893044380255258654505922743453558467181071715867730361098388838334812430058498103569368553365149243565484523208691690303549598029770923347781957601480301433297688165399887290277486539818178307311104998602172067585547227672307920640661569015888084378785799073383249013479210003358090063151745042562806466432962944157803236045286582310732255586187655276312645612247000328827219655977732699873055219872602376094051566689176160414550179659441928144376083312044649951828658123128726534531477184574954273279536383172746646920153611331957279155742044336311633135933367887370056009032879979814706151824672863469609308851254087281750186686662154849632954715199238809020691186474549544480355202363657956177651225156790941261052853540121224945068109316522069913837844290572901105366019878906316367538848441209839973738329752051766983476533830831482024596800876018859235680079024551876104472699870502410847989260312388450080534830625405535227191802064466993525946747006569430043148912839656293540615587441325987361335852910133885984297811119181405065103372854948221258414358835665619792278737462794838363247004040291083787113514715525650866815334887953568310619579813802107208765757664066805589997915664219767084807335236899781271438553843359344491952094082317448483058708113367055863594586175276024786419347251919400753859503337097391343860936936695523610862146101331498076501512004778658152949828385423032122479410083875500483084484762799786361122604881101991420702279041427325429590157159975979386209357446394368566947696683448512980336688369991466943909800507939550588436017616087960491739076225871143240006493803869306420528634739459947146481383715765529704219478785070654688629968060165408397232148735347157460608193250703685134058902962212849968887441119675359854800288074119819444401806941636452130306832164738057312057472524906623851323955423106384809776159566831217795529703606771092318483518822857213271252248545356461034300126721182235046739791781838716730328989738064171948914232104691008818291706867199562916521162194442788416242169555540547117817891167437992362346940476202270117971167234505528828404512613373560408182189019711946411562339947920367141717857343686226303801858490756117414332291055034160072775167223556745579864758308310637969660678208608312653702625883645685436174508389481958281511581774676714441494529823232400959936852646896758853623625880239934150275754984602163725187325256878806862806536166931920351835110724726753968966418533894128746069417571138803982857274727683938350984676573412053642465330018716500795534519998329987502306239803817350477270521966949457234587108965634910886287416863060927080244759573096016764055275322128767175598621407427115297532088889810567534773863378183535425351114374594194456732790146770535660096744207315619507903207815032578698649039465540264777997759623659975412877339520749908428695607145027921401522166793534303669856704011969808056160578755375689411241623531319294090471408025519486640100026118496591407877407774610409199052320308018743442042021266483045187955214525899667974041389220131588728128893434909937837046588058448521229433916543675566628842562436667383576876382838644941265621621369809372977138605722629828469739315860702548762366898102761803189158862659203849896137013559527454900174630601016337533164182697182649673131405037379512933009570231794614309539092057393236851737285519744853755263632060693352689978540828885687999632602891235273366946952812447784120695693913846629719675060943110515357403829832610342563258273587017118629207479721754986394558114751321224533563979884741430920887203733037312857355188589636486313758495448067714338642357255523652057051473233773973960206150056058289634875742956773395325766202415671583307767215035406737698124930181551337525706491048485740267884735366820766187242602797211895256268304482703940479000959953389395550313964492724121012192732524839501935078084437675531068897445713178465123306472719892875820970170923215621699870979270321969178923063368588727395897102403344615556624652312589088513480992517565805810359511332700797411509603264509006430056647471991117925116500216344448844587640870677642900262572143729318448299244408129670534009288045712814870884370858597898678880954348834448964893007671886152310229112782456668101231898471992503350501624536152342656719553546736501663574596444446128516471824834982657528602394790915927188836298412547646609352492116285580303300273046934531233780163775539570897850248088572320028840648452011756524838764273420534663724225438738632072370385181589142818921341429046841482830732589461560423796487761595526605505023562171543232839545623168353846121631244826506881721654334164881456454844959422348244405790254256819465635205662402939074517261524544224911108324648953236975183485872632955299221447753261565650467485211532029165546237461961270673773285129265709445829776270572584755027276319236416007624229852277106979038297701212139146359565312682641384342356983034160961588397080167692163750855402933711997184878032090635040363685791796158690085835601794920847486480093951476446359555209464614819643850418374141331808033554240950506566803465067864062050705567775006971620912103510479625259485512396921255338758820609196008567010012862146384137861499789938772839520732907455143004800100736903849874912227193345442902361434671504518386522615386056565387423428409255059785180727964950121892538857305881354038373227988792918438554336215975608224019721527350156352812253730972248721388502683877787503992125552496989558203843589504983598046462070504341281451194087771595032356585794422944806190781790428649413932282837631350823824769720273824366449528941535229724618695442257558731152044052049496070913920727067922098534010042518210534535731480746457555843415432944263105628958468411865678125951087975396788581133492132947859992491350497919961437927092639430165925366841076624328671759763785039170363584775434045077384666405419064832561519223975693760585126110021336540707924294829419616847779640744154116634042189199584658276698497892855832020843775828283771152349005426695007805356155200554696292500757596417063825548777727077707416073238713107392687870795796031869521919217400786663489777049901214434008470037119629730754374372633661326261570380834295083357704230856355952370471860860785015879879973165283342462408484514756382738131588715733220799304542282976475398189929315919896261406015993137332817961134961904054180948699442103145659540164727805687347276137303054407104211618976076680941619719666254325212696032712323455128197936283359847010240460497962849983751631023915827528156407326470704998049591351362534516487581472250892208006921932979223681466869544397963971058432764247311015480262262580905273915862845403989208425397890352396866536256981304124763977682428594697612947957475493298424711779867132333990511736397799931069543642212067206713496991004575099227133399408810465993763960976071442321392924079605220676664286118250829283144548709064986673372716842289952515676104537718975648245832592839985262641028201474824032393917266566782027881959926634944424291456394897064841312458418646260638733671257786759051819161806387881433293792285111039282793152950312078528858749648240260137086954722737359745044666272824565032488107915849118753800649854728906791831900175430897852380964801174889212732931668062020209342324767023986255706604637228985716333831502142972410221626157757004751419344876966835210377039317234797867827163372701248177079922660864686709656766725079239611549335895797428992101164109496841900862503511263588325774460789090820569983127777822138911034939217500547511958106699947254037694764899637220139111788837582416658740786725431344247090776331585645556667422579668083274571327351685524276170881579066064252476794324210788467202181174463067512573008564002217781341659323205995769173111698813105406275448145057196826675995453963978009122477906643958391105867954482760298288021871994136422338707218752081366872412902449446934906377407742686977836582122847663132580613298736455465979179986975350712577146837443927514128492898065870840052714185394144724168704151243167413856525984067685279593499870018250799131512687661187758324447706387139583271946687925098511931033109473164858714422229418178451789995524965444201337932552030919294722102665631129526242934819432654553292287526441869424097746982171011237050531607015402360611503173293626789748660834911219870687714420732658542020222150800795291380164150969838469306748413829755252780120103832559723916233263281726957008971306027233878509423838868922466994749446861620902189907833882721833674844910125922008122840351010993624344337923969835086709830954778866469146470372738633812891845994680781696507726960612507939758932624555816135237745929510211656802529018042649093693741686921256511514093385959377411159687251903002946169596968552150237969015837069194021141371357720870546812071386912780958905947277317530373268058718746956503146131324878734510656928555511379671637001145507006115365413030204826063389283764761561965692223869883160516379610840677151052105211628306827274871789943544797924360789458078605442145556557624501106280838343587987395188248634956281748465846698962853769312195156417757592671041511712243524375954263567338895885415768680211465290070339657975999843809948898037059380669234635085362915686437905197862748661351262797555100222622899778328208468608586348625426376316314683807204891085382233268260814101213683809520292199242090190128868761886809476513049778080607706820686500817705478169480157098875976431048142114731447593615486339995675696875365284907925079242670312791088194221840942767503048019977644365253513141966904548182538094014702938794826342615398109016720924016351912120713509150021776528151106919638462974448231830186151727601929099521141573812368491124064331516414933456926098878782786273743671863561954855696033906156630085999090605266637175672817466770170121551539152998455740433522854558664024791699339388577158228371557895033096055747603625423473560488187351368383080553120456373309433047729243322315785789163513821700903707073998314666823420656302237316708108845552786409977798769665417650159592057756592103817570380901693732004707747095135432661965608622980941876130240082855335376148849426310721203660146731320550293819134029328255016701039653191537324119018151032236235047381483680935880779720832710207944823760902233137614502460200440930361630613204077443239556087386683254878782006148442067558061038931313492717858720089476827566147529105957100525549884890777467927767470002309110389574337597338133180225672334068410840927617041648434334129080548015323822835844621797178606889006077867926119852484828422787873324270604366143096535918365282719348379350358942741666115117210082768152365152356907355445249399416324813266347707945713890000192122310800780848655638552143589842506707984905771069061724321409439081646606237143047943269198832765819488874832025913444213972739562673876392981188869404797018549331663060518173943207296182215207350391917291303160604888956758720433254792682661519726596250714898302152800924848379347124767089816550173624240963032622727118613371310851418441966902623813835116192465952292343680665539390872174699173473914186805667284792008718414636909101333436479277061104536795997977135302830823351404502746129120250173902705492401812143915364469791953370564574233307883163793098962791359339437285963421192293451795567681051949428665108979997280938484058482319092718909009560925754753159594601892441888393078036713998490721308967894622158759152217686130202560910806646300986055780809128374148924646054858224127617009058554776768184858737926443335423037719007481807417469345102954826276590767296056844099610476263161736216493036451334384614324757851328188303670648515898694234347366257396047822668849632105107247058440221602667795443788329521607246743120839565955695118390573743425420322978862631805560865691410450016965232047625114623873425643891840233076693600304323883651678923551084559863415751003089948344670559064779253097509553410205619837979355400158590783074486947923083750041190733099055140749494266846466567785346622110800383768427748991580940830055040508671137019876280489255319425156355081780651236366175231366833783497741694079983079136304893947780880093855951960436650671036185172266619385416443291085511986129238265303550242048420804073831972948517831630375770432639972219055230066227546744494247391820940272907209380243255792274303726854351610226470537266027198795664355624250489587120398267205738653001672173073075487967757900170025331733832037986910535331025558550058000905283834967738742299291527849358369314875852874238943554218151019650658399399015434686252770777436037166514855313951759962305416448997264046553987706314692906050249007344603586962890696453042626348207602561986685935831368135032392236970124334027586277906376830032462059086091214265672368231526074334566128214934127048710588449382432253240101968404286171057010225955516667163078516197518342815441744301024039558387455197470411578206369213959114632805684308310293535514594925557548875240046138495199246723253503687984238523245434148246124889663721425135946873259120754110975114479804177515822903236573278368473882788535005364255123673921234196546671713427103634983378824257683217944102929909941106771319518409382301911340935166894295698436042291194855846350377796773600341407958833539860277806441324032275311924227172961138828055011273340386516361432228805424049539456708134167147910231984671132684283652119979712717409766308596032168941701375884576238716257230866079917818409381210999554510260616558348493029236292237917593619081034549618946259260925801394461471528811040449167577438235221780984934178114848198896889694589719991041223384737883090190376040714967929412642047214938803255655415621116902777110676375014930166600783614096103564881160125422248826122163933849731542582941577477893523590898463405013985824498333308705610032595348916106796577747296419859655428890438395161004576182407276919208019997022827771150651796059501777228740415048661793014885404434014168579395636094453017090825476116642341676808538742937061742923900414910049050123883026799479922970329884572637190678126129039708233125826185536280924846583800043132121404003072081031301194390156104705027223786357591683107389887053823237223588174204707760843225747751675611286676843718910745163818680672378493361834875758451263165687650298982390228567636894568383901187838982555489926228601295122598004748579281592356149003537064401795192801217361257369089396183176651964864416378702169865295049201279105481499748984486960382416261887180365973465521906716025311654098952429160969110163655025075779356441219270560139326261417260454575702549732503876089288803318444519080080194335675503822761826132978622579116866070367592293281960347135458377607939708328986719226331241936425078216182048331347120124867837554914196635579007380691551956552099740568109900138525839049338340654941606687453786277517319929242687729638171766125547468796002196826318191284814739775055467305182947519349346292289203460525925708362191410318874960866627951081449104714856024354052416148597086176856742808360105929637417089965980093723869029014582740240012061656321799263944758732078365050366088792674140755288762575538451696443835889763409092329792605774957078780585788020970668556326596453645936789068302921889418500631490924142921004200570197399660953560585529589028320872094746902267710295032121011358228817747619702204066863701896502532660090889911893808360794335168204553665894748551544794491301878844023369846569776190703797615378178078819600870322641811719891458200869189798139753172211652497094103200978293833912005498862486171193137859663090674384191099014793621513089423281680683342705865741815830660973326026274987833242408356108005029215945967589585113805854092945167933659817539342008454428215578116625691904442867719655847279386806470991547310574827937324805425654368080542065956582488726222975981147339377241000113721463224045824913226326920641611067507443664342377443686383306870250256330366180468604664459389159023548745043742782228512904926938123034986696144977354468492217723195203116492707073167194498154248927292915971363663954375745987306812072901022213980245841550696745600670421547742849695212010224605019572991507574324419653159646001684794629721516189426009987101785726509727468179732544225793655939966522633740908014569753881012554022040752806628842962615109348573559898489316628488477491474781508477503154685137493724594363430572485022374161186706801653683148548471403747257543028377961787692321150728242714656272795602071826009350136447558101480855054037017660765849927063792099950698281145708341014432047946161598803516147864364177963630677622420672964930725520410005448713746120572409572803418773871037441136247664387761969972920043197429235959222822666312528934001134225564378767594751734918812444013897150735922098331657036508119678474980549025034211327428195665603808314277391955555782446521149159789871757030056635003565702206416840824200534104708475406128913284378433222219791724829477440049835491135863809446993261216278177526958969955048121894347605627342288918753336224055762467597737096033994904116586178927849526125911776562682472034415600170214597288138269341620614759269849190480029006239242144931514555099772126738089581986280352900828551194356669260678489370189298861912370020823461456070813143638547174039559893157326878091171340624803788745547124518954692189273818089200062295805210454447238481438236968964099792344141555462165070734252308476688692478519760625041772538660360799208674513154284160938341649603307931312975910965214869294524649264097964404728754320142375058937867829744093449798058330912376955910764680797667152111209694420970178294644179359322667000678565521035412982629524257457018166894424408830029573267088081419078592527590157270725292237728562176487673392595982121139035153952666078321562005432970052843197052168906935839585373177360046913708999363386776896886299291465010757310040124206892493162407496473453798041258005592958131880954218904818010019415966629675335838156864661660171926214748918877107658517159219242966444805314480533758493286282028467179993809471717674897674195116813747730499440889244882910852669916945845271170427176348453531386245931172040175518206538241353666322976955939641024956538434716865130616690625122725115928576643898765858405239145405170237406091620023980329435178138222763530552788010955140273126708057465511036581332640403065431178194103525694267844394220948703023994001549151968556283516720548970958036818457729324953109092627905677554753736620364945544760565000808849172766075864595324759217921838105155650900277217076355159075395122501174263030147183385778770029308240775101951547184000738493779357182292357562019901530191535516053684167626231393916735270869283444039594401538974703922973228232972213032770471202621755515579764991070619355950842159148451269742554080175030681684997833754326475412117615266695750922409991989654806686583701045822648466003624034091606341504827053684703403706023685826164048499425783925061069263131683754202513226320817755399485886107861494637673480749114022661791952797112067351101652616158390298627683405033705974777313863948165447184144026578922492692354721050428431271086154736030739617475653529666872145856449500617842132882619399293854805911722891914391922248122899822252394877352922534655519711641191904282831756327727249759880917356590028112834567336140361414808085008709928155034663325391484892226156847079430897828149622649523102283039633739800974895702983090584709141589669250415044667408460713178828891258424146608691426633559733227638544042108662414434624397504027245178108271894464421794858628432374509398584981081960953505034684931742810417353833665692524855853769985149272529641814843310928623305536772100284256772638053737152225886655013398510071087662062819754801000516872303348202602158922109933364483659461289492435192937179609529395836934952567067292591145318796749906109797901525251246816917064141543213324011677115594519219876194593581594514043602517422225180480967889679029942746202328509078805081569765477614829385199923893204419699149618654891910203993809784298055194658525239762664440380433381323617217075129465820278663798680276043725836234718352088734269243512636670354045563417106141764138592928249140998347500870556863531037290403619248644623349904158612118209728302797494966181565471156165895154388499474050288192615863216954171230859210177118388603863622384169722751779534089502972688385962034179051120926190073159705357081767443118089120477588867993450880587354245407603184757122730069131873458200459925299721062932956143365801370487076111342169336779654734212703810087832090714473485754930154692378355917008355455426870861967874393356408049033014364457697542759149047664032340879875704792084686367087325864649172350512215794160831209615242381847145531265814381876625675132883041433370724707804100532520011221270457318438189277837741474560541496525161048736093311615712194715532804153315892295018553494491845959027471046611738032823124240506101667591292769183930260367413966076380349094133518139634070359465355190739338884360777850088068332625662002544267219472056615460866899650054055931334119307042958640629596237565374498983557845712229807459095671050910084149910700079825973475315970248300833334922810463714924891947849714045944061609441755372625204875919918717299816209160408310357000488897959881751213993721131625943748897627045522339384936229970151057523617553700800909570702377778074163091718619141149038367394147358489875059333315584700190831458668318849534839773192091227573135472117413352654655635047561289302903760314865349193840963844251780301196361151588978123779486598566633946521240435191554885052738665838889061457628211595809815251004960564020770375490423549247577627104489775431718700000665894172360507166381988909574683780576091471110855426179045084412488765756894168567323586433162706912859820384154124253606978312841294428502382202172790015902377925320034215945247256278617916308921013617288773832505995807291842138281950100462424888768782859618055904685960916809507420348326837851716769924413372571199114696284519403014869206381877675931202824349988529424708244518358879208451076058137022354551406305048464490270881541506021521957466323227715634735069816682913830686454797934793364981595698438039706726149086232333723878720613733180444580658787075638359165525735394059747471647281614561801013620569357455040945021214170947038113734586812700755855472673556161759645353657681922471590949933653636040376837879554031826497613501946218862171468256798002090130418023751681144954071359410347706038145578520917773322803997546375560428855855290932633463856104412221510120823992137384574359315109676984594080463468076717750539989113034968559989749600425014053526109766659846898660137057150874796383728701726798094749180839120106908757034183259291320793384237545484214130378160130301083649512494065371724967706077809376374166455983747916137815363943636537716191272229782811506652401054045729226210366790358712246227972996771382574509141383833279379174853496540159139535084922427816886325155031146197098631121673268736053823231930983647824728674554686889219911061814943584219898445296779180240900900980158753192727181579570582434630587827210686116283730928091447546294686713897399108512037111621571700992948702563793923052107901246402152890904805444655557379114733866493015488682399931810048457209569265486827359367618000741480349331057904531535756074108548960308065011302027085460373751456042072580592391204218097309022811259550573263589727058703270401203421362491091461144394983915920846769415741708282882810320023402704619000323971562997272632797536811364678479812953750686957726626891101111092550000706819183793822054290699750705729330470665936935301695143497066636803275192848807193012088370679180561162242688340793264331923746603445651121207439241067582685137204739164067565718456380849009368852446139139129803987971947624170704326701927393408862445397115805320873328729375673061858512228164554688752554312548444040434059849153333057261141106348629248319354112431971111426998876424958755320089895965856952187145196896337535340971391072131684980624082125466176979125545039864947674951394965312791792116160706406223145987607755854626696212041830457969966550778537098478407113820662130028087867158498919731832096848285872483465050895529180116915911745949052193811797265464709391853491230933966222014182136318301295389965648886255525531550673170577369921623890234894175203374784221842631375220011735400051535442132030871301791152721250045397254825911347374080269122556525099064121964342327211421873032870658334010575278015640995036601194710365837514802554826042006154274187588479719366366902638844718721258574094161427644263646494666023489236610489325725053628356507431412935632004657304379839427260522514273637475203181679057479295181576570360137820407521546876327638802548576713895589855763529075224389420590149388858526239567836711970422658672022504733468907781292651640488490238211488508653724299872297625664830387421756794633291043211559623754007885060491681595307131424869089934970595070076885962140355830460918089168449421856738626988897484371526516744599992907125278111025411061230510086704874010146010847719744336601690904116888934446689600892572823077409511646491574784523061421544948820533765708746983495854111334926906133394095691780534305704824663938620929571244939127141558678478634298451086891276047646763619315967185516410499315949933860571021559925762998467216332090760628561144127839972794261322816016147889538205139513284677729570214448581388685022356823533970154362379903325206560342579381446540656674207851648491732381508082511557027575258306177108045089811376185875102535196345215231388050117224760060807829710646224457612219470922331419973339873740990919480014217127013155678101238652116681741837277871294802927649852991343762867955005244933453280347274848817814097535165778639089566413048736515376433469992486628349994675276564122398570369673903296854554301587920000552248742045050838583724714929086696400818369292583267763459065287292300504459171792402994044997093193812895934536704156991761636867647766278724791346435572719138877745326676063029284688765657806488731535808782720475285511983015340475277419920324615552017386405406929176196602312434091024686234741787246494779133898052576771610444220995782556553680019735083978747576713045175643855651417670417992265207508481062595948223136611920668210169555667688574570607263299362323417241905793104281201410523275928362788338923928874267223038559250372965357985358841504406894511874967725178541698226226358608364607343647002867875262222309269316237986055939225372416296709568046151254370267217452845509707990359304864749008468813503208705365318101534420445276835023470661919343637499178913455875244561115338233911798401289399517507704016609244747241980364021677454342452406534674883943162185491086917869079486766556271887340557805065411551358150380499469097255812529025733532206051552535046072479348901570962293347252704325135817412581475426542776627264108494959876803754816863524225755747193642647724478755145119461670880246751944283534969868845764968268676847818096717999485023260173633668009449518979615589888442934251662005227809894600351436594907332595733743615190522412922136885790859019655504962640069598343382290225312477755706990163121607580596698003663515255408991809643102181258966553752104078112643084609294352781543191025529845729676116805373699070559095323739423829231013580390788387486463943026993029407371959492735632261763720273223102754144063927510169895903737512090565166583258170737758260463923976893902406194140276115142309094598102058270025342615571110896683357063348114424040023062214448760873851490062697462552775782266079045021742011840910934801619684731144224147220989230361102448214073942053889066797115325179575482232224585235041766533614341356681253093511613266963797942063937200654363238556912558114109062787024720220147967286007060214063159445110906887737467486737134042183409845733723971808125311301862442736975248413121754948337969898284397948217662810426582087957132254588510455217807839397030675428674002481503391772792855148294690254339842854609860429623295072437904811102150278465082275274272428928356317491984970709620291127275480330022266118889826932967824661644364441425203256478598978560515038903386949430276394949182439882627508872917352031928790022616771248141833106947978495902235968474534836672458882426994716202945585985848216127165299299645111394111173270657353583275632292199026105623436389378035701085342463640814972780897969070082718248323944687353015697165369743222411336621567684420264574035813301506089424883657053278609465329658272025427146832238263292210461511006129098199327315460235317263368256920652497650793664190329189100103988996986937666147632892748992232197404376592546470123543166325506553423312253529950803614035980774424579754825058113201498382491129770840583196743105643451529544256650712349359486207867133658236666715167546232700035910574132095300167829363289558314721756185301159601271686423941336473608242574384859187078635464085834791507744981645618230772788555205973600468839587248799971171329963398709375016576521099615390286565440223584858215398204330386163383335525057762241838744210242978691163437765611281942127568698855436003113420706487392556955912053129681397749561536199664546276165820381719465554910730251631290583939787959586737596250061095462277117837033744620728804503780789471951764225442083480566472945664573790881113486133029685829866054186760925563907192994174585007794767395609853633863082250003241465621697998760949890457056334940811118016687232552506362617977601161381711939341591816579230073397891446560867582665720176963199101705117912482416872542880364988149221728723694165437079786997853870776825331814853707169931951001649915974594926072517395557491513212667732458535869298242857632321894373976564205433802593991504962133446208344286731367430882490910147661787500366873192727233942371205620882235678386385680889851664874322352137751781803154364898572750144654688304514423607649520168729774388142365780780281031458958952416006273320788239527624393602996865074257932854949019970468626077249386543915158094794716541343457266342320825573467470812194254965722194985012293423946723546825222950645899052010298634263525815443439761794161591604046872407490290754944234127259470839195193431470791469894127505961413347212816796853192548636464524636968403823636351893497429938046468108857991255220679962993378057430213911899804682379134166212494685874712393344789071448278641181830189301543074339647834213045840024194152805778460222945214566226648532631425499319973064672576026838980244162751690749264692419792475537321273758131251694846835842107125211709000937909455700692512465624601811422083560218154933812449296365041708908796642964738326153546695448853302005136806016254480722416115096986805177745890562831736057464405438006971335506635055787001795852135474570355500440691912825049105243412517925758070567775531888392847028817072037715624630697633988052431793820947265303571991923903980404367391289938657625515688076535463983045306982044493685895983124209699531051736716484228865393351535240595047329833945832130504836748622354643260330410901309837473565192957790858778783515950523660503170173714894395860785188704824694042547510604150798787584899293962661317752727792427708768101135442984773801470672900217229859169096594865175044632809603292553776442802511232028967278697607865236932884493558935461584014254908843294092416720856115767055398463504725513115977572642096826801736000148339113690133239254284890252061690159687303987624756837857282021963450033063900899659208786852879867219287918568464291602634711456402267369605492476530015001068274984373077676932356463488394845313751806782492002794969207284768679455175543982792515608154256696063613096450167396134514419213761437866275192547753025662971511926321721325110718206967371489084627824690646370864155383248940205326418969601869035551754790938224169676554531238313326802952564398125308304997226454704745028292080153423992718768496160401210462293136371185310192076128130490649532785721467607240318412086156938140853340302920032222786193341573029096657367365064229535565361716369079953771630989700423898795458355139226448897283386299030162823853707154978868105737947406067352409198836640965946796004838647776631452936282907991265196287439750737690813951083819974799518808353360268887762640870664088425034565270428547001788937488362423955657363036862804576342795514145039687680324942145945827023594770507194269148560480314140388738367738158643472306465510928536473003855896499727658769162479080911327180808102182000169746884635765704943679627624805729590632968474871432211172674203568037373394535163833530526737536047775387769875850057726951152072386629299477441968364104362849217038912611275119942872500895443414647718707977870376701500304157044664368947068020282978857399587859328428243880039224702436037787875968679335939470974657980607847395746887963377254834910808826322325964852189138892081565972920232520512231819924380535280494317444657380071116891098681875572260382341682754199918836354119012751534071805813999251106178524951518766319792002850591913644039625856758499148738153157950227457862521902900399037766945378505033753596369289234485456581398010211227643843056395115558568707862633631683015082156768006718408034523372339383593682173537175446364993680886955752128469038534351465343218257037418220879192160904378859545449634484757689218717467444983965751922413768654984384933355518643018952006571534287602985827370539629236646329219482559942329011428944510089371167806713457250204441273994430369443264345177639008513501643440283401973496981639680300303822683471695829585659270237953884050818057853797554823222463075624291401603403251850042661194185814736305596343910688596001083934753320430144949472174379969828143319168099752382316880054096384676540988852500697124289439866545921232214156320995538075631435764250688928898620470739941556509092493987386857884733066297322043263382769776220023744412942892720458793616711474544441289530292790795462677454312275235321441148473779162224218653889822232226170925548668185357473004915239368492707068820068903580702339894866977346350267590709642553143124479187901415553023455645564433835984110367265686401763919947111942463382675847180239220873375815838116525142267748896690776003879160128531640097961773103771531726682419085286899931389212350148137152634092720458008276444514566102791041352241331283899394321053331106090531499713454835672051148353306911469879163629512930731332212574697956581524301352062022123908594514788740230484902506854428875757774113577119543878972121891871711139902809939548716229107632423868356191222364836756637171373410228490644942669348766747956151252004855382111316070306369506422992908883204096194138085570419205014582978203106114146114564698833093275597789825601645654584207851781394008374109959242650234489142443185402566652033341828889243022841140194117396345404496076099692380029138992316679553725429934888714087925399352545735718462660660976615172578453806995792069052479334084815472043256080757690410291390056392909087568995079197012785384799288265155721579286517772907571481181870434150281768307075828542279405140500702935758590038648978939730541200429519327919564249312900862958955342538896640049936431000250235162395225233130517537908803288777829328719248491266135827695985040012015459776099181792879393214912445882937330238335081068683459170224300910806723475262923682488470084604326107468635674647874401812960736919795456461520223046722783503932584529766848523887733646129100275234592258255538775353312315828995394760820747892622631036218731646149744922557806828053320295453414983082868019137141738313138374012616630440050992103029085880263346514290140220481659994573720029344104107131169831415526043124083563092753454052801774763670624028640031953481477232442671696022700150403677907783401282254240917584512356112117345505892538328404419311464820055751325159481182464723513134369566396908296778700645352316680179578070592924972288660896766879750463049368819387511454930921156273407153265636731331670622507702623884419070551989982013566175010770229847738619743215178260742135155691510317561782274515331255686630355807696435891514032382873057979407645020439535870517846216263586196312084015262648018638906340233132819561656831841493645154736536602224286863526789753260561962275529133446106860972539952392798779532953356713416231659324703044630605106491047074526535421525418121807923553719359643622235849091033112486537355881141397232186065674730491541990949995715742677010000591051850995326696252339912044714957249327355538247503804684247109214967656020447773734291728946705303454210566964161383213756672211644415435364863320257421109984516658496755527824536648557581896414933509208307997723758694787816892163775017414959057713895780113788317253132644530883129636806276889419114487511452988887737647141061894818175297809280095329404856024653031706307132787855555074343079319269033507213960947386452041000164772658783927435679497764269182731421246411616366966694276146554321041107058182324435530647920423499500335979613119171154715842312500491163507182991126977559908474532061306036592498050373787122040399307791685496715915944679799400955348588363738242423578480944680010839397621773552837637379191730537585143013164930817653305092330003520836175411405502784718691941020633632319482168879945691284528103060805074805592686304787987193334657029546547928280481857846423871142975554748582896529478581502498859023115243268631017404538854142545274842592782544175896089623454751123101469653987814252696174742392084971611805580251306522853874852231350927069983274028374230309551556944411501042593841799539604744135058639460899482340760618853676795905430021896132926482847865824026531909282194791449770797053802534339629554092048893556812546335972113648718030665825901161052485149192873939791043222925544703155941147523168231889873983083393392593732839884775505152231405093251806871925442196956161549578158727780183905254431105127539456803887136635446873994480632172942981051075987664927738499291062581237500848002617802792682009230224000897067343262449283699479544722261379173965331584706946839978807913984339579317180631119033702750455022794792111409235917088569285431499715575775601696528393501311325994822957487600032682405142470210132988472376382742094957580253449848799656648755588310005047404498759117675158686638070589033149913454265206725018889553635304672133099562768466958076782684802146493736182546862029761105940399259462399004618105941317653821448361085813081515191423436513358718710940934239052227886413361872809906589630217197691100525402711599070731332849933763462187324043376761220374523138720997008788815037568595278572074899713570616379765582406472347017898979658940872642907134954676434897056671814450132118953667489536608880218251889031747234125996521373410356053860712782868534307751611953777262752450815032667749680445912208977967088566716880597685985577468487200947041929002487749602452948771264919381876829598717166091319378345105868440524497957276349833381119196626296159028076435913143803476423065235198935479943724670856045232123709445524300421229027540043431647165475196083404047146608052493047901595536581742038257289914994185446973641498700534978080296219301825825476032425394201063486512528834506027166676959864836518853896799704324636579095827738858200073523404600440060428846328376625254506265358018849739661118210051452288429914088381502863943765778092690206214375706608885813429970032485837483876414117770003671701657614133664284082595188433748806446663029404339021400438216244168954408897126192425577361528481986127511123193341135116357785826257749261769897141869759741867527589884234462635319030073555125344150959582366498967261857827471337390249520609541208752622582689586043310513185784640721015559580419885511630850786537349794319529577213945055748658621952554312446203786859565873098847331378215995245021848001772707862020425026918708546329929875133509595603326859564405307558722943074547768260915206414472036494072527259513322594047028606124195816345604565588981089310347364167531938721525030508742248596428784145775968498935092537465789130410612659182372593994379762121128785165071417039682374108438607587318704909100377628518362525064062521140747383573901743704469318511528448247752522623000905022718734147432473138586255912450227866221028048839806433270306759908884944711592928786224048260729203497391156437409007035858903534727269868151417918126058160904471999094532989110913025255425625543818300852324627979190400868978123768633044932080219275278502081188867264822858541051269970260482410387386616305546981023934470028121435757999452976217245075608917763715929736654417145702090802867742821778327456927884559999256650564013058325434703363430448193442750185133914222347581302123812968825591858027703398503844832512079179416730846979818182006269977720115456283138599111354552466266843500034294385980795959149057329440775625752460457087628446489480816741752245492556303183373963326742418978954959399206211931371490542246692469323756355573677364929739976827472221778133411668633335871096769214231988160536724013727097993222434892039401914777028729850532430554531586479327957867852711340903717800678281651660536787522699679080033212102931606860946437917551425916371180211634496249350287573807809725147214564611960081279706797777188336396324841899838112245220557923897166616420428268792554314059833936239617728874116015936527460285558491046545427523979645277236266375675387153288819233247074948499791035363514938959475829435056091535540074585521641022785357371640066580520718457388795379062779335251375983616919452227604157951963187998437840334516625484876617236201954940806002279685992055350219037208979069600837994983938161465662711058171409321090781198197100388083136632073442799620825611907923625631110976945312198243342195442023447129339542602066896736686525647906759618770914802651765579689367246826967295984686592452811398695193797453430243538533280117063828532017090171010813935360625604948226100424437047565281514891138951733876395933125342692324152971852762487073668331834900082094434566648292950036196787541469685074050517525297681090690406850342188166745052278384274542506330061033908579144524608453273364646194417280807482377328418087327988534839249506906115261263064312409915898075373473647177301273449186421362821266803225284404298845250288876857524732123169694969661143133149809776418814266665925573179885528280940116901611195815429872457903616207781683169356607494429733975551617954131332606456880114139294001405842966051212880748843997325443066242791365118642611767769186542334552113272409170732701838028620555735966156913124052019055442278881330031928264174237476683830094398621256154567055357490625902496338735689947085980487863233345235361100996021482405749429758027416058084385025930622233079023204125065444006903889923743501344538717892802985832343440722543219521961332260066196392436763990237069233786241898704748708270881049822112464328758795808007051948201306387655545214294385354716397701073337747445248265784103572779001777784032936195540368270398584557563892076005531884933382103765906241011208151864912643004232922889784063789547393814442705743776504333007966973025498953622455787705389958895079819856869056288815364174419418435584218697683373824837438770316204636802347763199842448027919109469414541492412283883442794337748096721031829341300234731872384316875221896784872156521169604519320135668651991420534392569524861821744776751348951388100789616228512118847453804849321186633635310529933338093993852313707488535385354966616290434414886779837282345840720009930794458472823540749157654789189757413989301222141287054209026998626179736555115507882686456289186048666886183660769447928373882976686642328223456212323571521881420806708779726832761980670451072530623167763105522832504512379200217404669814614390798821692319713686257901107926615381982059729728918120691470190440763705011214140215288137579705322235317946775168883031423516883551673150242145348006135100958096684605818395963005484317769587064700362609701967811962628169352893705422448356385922687695692503561976340616905404860012078726699215890034192021904481654859402130517361793861670367163663619424859540098221497879904789152252392238087205978654451407350425857315546231699307258072626672602398098046265236102576811893003048636608237809449626702913665019250385547172712395359744006338445340922199721927624444477710021616804418165628762904105870896360383736599080177062319845449565303899631773392105113101486358333192005512193809419641324918732915133688247961724014965206664243913825406451267214141848623721591354915247487426441792437272841252348748547201871222079035005137889799724318534691080573782575529046079656139973305654519123480812226548768529275338923874642014425027476669665481054521035291872953844849529724075922164260477321274087621878721188542342401630693336616304661561651741431116867189225189340843500375476852647087654766775969439328746141572213498826643998215079040315033547849078207850010109219521780265234708136720093118762310602933705460428821320665403248469999348035097824197385779531659644978736016928111085106096765901794746416686644381123205227272133223347066148171860143280366405557195443058970650081438687779402694543551108214908941140763229349146101669725356337012446081398267558163915268686987599775825914156840404762303847968770508170151939143966500291708274811760826212410498007156545447648834319566025231566458287921798764117644087386192368018692442279504622424149064878792439183944540806354300657866800898160512366970647655515048135398838626165853641419853098059570473204288423491486879298868886091069470519243135116213170908050746953075899339231524569342992370143874246067784121456936077583517047245030305868093195844209098346217364070531559380814202916325671432702058944912914199933614843446674555227810312191727569195179196786215587553487007499029273253315907368525811145596159631059691325280180314023068848683734093236173244663185125195116068152149832086438593528902271595454238326082766868202545373419755126229748791182351113089389576676886758575895353888072401727198939191930271074215130191619140760875250551313511534502528543663376147673429242851875779629082510532059964176192773848125871641618751753562341460053924280560758609500883016582480876257985440519682258045294469586034557031431237823859939700386961265792811844729443757032918940530023032002998694471003772946624439114113948544763903595260227640938264215630618816900223813129866011743573045388904913351428907005117232998497585483584981208632387008346560180500657429747203147827881606793091227342550595888390952013792604919870637654173759076438436671483494986020339162955430782498566507353629356477537232883140676678766097924154529643928853245550186807152519799325824596179879538646183627501837532553472794179388029887980477701447193045651105749841794627037465654244399146294713600674790278821759700240386758746336000474094090541692414900031720962338405102670100343428205782915298266510497358420990544360202114617512191416588155424183150194997398264637636366887757745748518982949626424935872660841149421890786827175002653650658288362150509953660552310978892259612087298030533666422149949779998097346139862744779536467257990387249876580160412037728810093924357857228055817202669018809225017569907156635201143525973319153468232618093997084546707661316357486659799325452459866683345049534831633194151928924867924949173165798136068598772490625613028802906435391233211670598002657140533752494671510588639338667166929160714066639827539560587969164511809569361514641376065242474587494719865508784923287759958253438704698822461370735255749610367593464088230959595268904737718493876580367640107905638464663308672689669697647810802996886220635898628799277898422525843498125265274948275836404422778310385375554457554471407547947474533703902168073545527553821021765365632409712117115054741388701534701488268898647059721658287892444574372900296561360431389074788325164453838223072744585257543685983228283709977645831665430312004821157124658743279151522133784467640092011574237579335592508834380223491284879792409047146562070331375232041178770487738547617123262460581172607635322792564961681396264318654632654577341381344096296951606245563883012378329350326767078608851973306327349057814813270132209090829312826805241502650705489578280730597895581303597445057705612194110855976855393602362542088336143065545443966698769418201658431876618332256556099862400786484325793228796890010751775893900800557414242649382157058654078965555868244973936321279238645334292665020494635041896051743554533757241718429710938561994592936755194509657139913348945442952014588278433471043057153165237535293930357740172080873973224350691463262321057541055642118867339102084497990781750364018491273010369644888212370687066300092180761959765475009737875200724797680680015242071338759071654471383560737638162557373060260542062864661909566998812827962183565260155242299038841067739101717515024490901699338930213035730689506889677547135792069400952315318329809064912567640319678352896053572806935340947798165578207900349623678216212310707875286352228552128428381028831193467805187487936977296512146629396309872827963962783094088908167735829775394047807520502068184341044400187753147175220077538918096307853282335751069587987523770613011521711410681750403936517703751351209813623608054667730815651851472271229867204812782226555792944906068512913174805491987215259940951643300641870131009193710339517766749828389008794383404466325293045556380361444832996136712600376133126266745435757490364843814668974595660207130870531902866092632019630953572375329562361057915552249230562414183069331211583611768428410070549633537457765593060134934995078599280848363135489053625211066466892905015630941511317444205227698996928428195962910209707208609416119802783692687636179311962867833280255963288501924416218702770090438243069631653163345680240739374747286169661582216298476028991959575847916264305362684226512172265337189394103707428371611904985942657776349234429977548353381928555435602887327535600876086865782274635306209123684803147954469575509859677164698482614636268483790289353206419734077514096217643437182817165417426586404326945518350715978847035007004482121512084335477744355213505044312311472613436270795738251545132411780450598508426382897675678864571789562141674875900599381972327375360210998374204921991913273465165457181961549329864746844985045049438505925186885884335714822125329321866479997793875916288599011473244111525596608604976621012266904145544835939023345561786187595371956016336362245685130678621920054030237852848227508913804808354742563430164886209226942209015927077554167868574671083500098984118530843994548880497553412825602696572523343168990809703924313262326561007360721572932584155907194192308748694150700531518177809865555780112374353769209172910103257626948878083322877795784885114892145396527430985484519217615032742143736411641117396689512851318048569601749898850715713673716277545706817304981452880411423092491590822013157109025284701555703314766819875213973809182132074979436795371516071358230214307952106889980673402331407976465797794742549147786076818981025546939318247359606777045211906299779042859275411338817668048580781558771482037546758986632088388347269851402667550735847557160437421925932461778534367828624290032615422149897603082193337229268120547955215256232388970122591513400365016028666791074363115544294463795420993582849286558739286913974287364477889704552917001090923870914334604300528390151579716798316706542959848026125680544320639085281015652474285621174678717041767703557023975413170367778188762912880772184940677135908938836326112015803347217102107899741649493631116022682570693267838961438282195846763043251610726672707444443807398024470561205508103456023691268263361829032837414439585052239174856701328653776008829282109392194044386491916931185733079304231469904777010945619040664748772074451023266636483867947173098162364058379471523300057822750651313044346052868127438425200546572819709521808742859903295858300270234077379758817026432860080505252709788606735750802774540057211380945303452883729808535420977940192725334704022481142412338279326351452014607767124223258095912927608902864801209902417355558137025711564848745964581905241444268064215583034747944471477682379993035227088912287971900891495329656732025665292701198144460131725528253606784037188907782857436879842457266124997263360134526662915921336281290039610620656000776000626342823406244216997987809951417377651449823443861381952012265101738935170204710612649306695387236544283868291833909263314656234661480773681494211943213312121871971192288802976816918882645639308369191279658337507608962448321473676699354811982112762468677547531338051452108998644741486701488682420451869654041071981500961468152921885290773714183484378891146447520904085891697361556837915022809569876641113800041957630579545344210986649545634787430931696853578405359240567609250026285076581262291848426783249337048654366253506609982640206162019367140789960844030281158069722648565449845786092735184991859279822187844727591396148649864685595511962790316053932713242192580392643225093796218620235148617211021459653515219666634710732510464974658141961116967005549382904782016859151669040618876454778422010131179034817738374929008855957565998203235413401916969773889046310310851600909041809377129807665865550365753528864881726961603346993743042316400977765847276573911528329164916276884084569719011753748999550821315737708546850450844185692750715088891728094537857708666551382608269567295692267421950065599629019953501121458829530202601657540064026715812260704748908481617858372720815019829817127900092200182811636260273631886852508953251569450898236810958400852220773364179625390615632237625129952244831585347566386100663701593158874175823554039623095821476510424144133681691102504541890948559180928389186694199140266217510749163346871501672968050072827776921423368020959328983940464477596908795802438322240183812443917369345370813051807032153449836081877129463718548565703468949459191745429638870461260693659968054075935430505748811126901960885467305732745797670031953191748382125618726311099253684433150637710687915169498023518271902086035197104976663063336761403742259175954148783195634202451330477877078764293019262590137128221671993336504824785938069032995990603579021901015225188818889176004444610937056403568017502902364100364422404041665992234075858366528713904240604292892419308600658403642507683170476815599770092579249188863516689904579127878793379896047071318568202895106844798821528315502499818835652648632317276692558587867077958497253500429557659475599280889522925716884317116308349574112215653406597351000084969276481827891146224304159662603574004525798641782300840774110500146356579991096957975164568688265801460384169390182500323707856887783002369978950970770413762122236214483422999740696362930060411333184629608441717866812177928727976318400045805627061189586103421699840261020707439923710857172030061512289184896000304833905951856559436532980585401429831971972082148598305572684118587079510450157459681783427896029265595245169409728359642654832766270440008153807697723886819845279702530641671576265786114145920982873191466805673414959852347607203914301069580662208282972912522688109661035425370131715898043734064601982767935594138544459130050498090954549198575226602963094989125384368712835354622256232922648748598804654815753521721166636304410729742834410776959522122454746749953304927208704772226545190822979271952455054138115942606801598044066680775803165866929156276303652818829589534847039610275540392648945192606312828753659341570640431856571432524341733620886895126993142213708074626984960537788543612138516978031193904622108014340772729926391863923782162773382849199727210040162454503545105106520773510265939089118114717382740127478446572607965805685394288829985872552290409484262658324657088524016388127032674690237026752476763342276661212148967199631155144747106129346233451229974819142152525909520449757381242611872913765953959277228970205167908033934054709394995535488713368411462111759144172204447700926382429284689858075444648252522506439388280925226551141624861886351765173238449181136514248068992765542089250292467160884792114421921852101992831060717855897218317253352442773765905610300016980213657814481379336080233981684736189562665460373236081647067781359109061140915899900407756169986824604479897078351938341111250741911773533828014456916239144505431318705811727013315391655797370717295306290682356708705277648134558517215552475717554495238366611837016190673465359626354951823277407450141819876306311689871911561454228241036233120672764180212807090024405396600278277559273828627683591080836506585160001803674576546247340821476683547511502364222111470988791673506374161584547403015985187485266214987336353671787520428595059654689894891070696540595125311383183996384426360832512159769737836823803091650583008910535505303411981687827629622078848889210227282694980744128830321716168666094072062215500836361910441755658031367487612244041850703977755730988489578894253740606015936497839885791511203764273513772834069568417048920641699027586981388613084068682142682368485089283943365194243770112664582287346700414799560505702730393302570449666131504384285574687737070094737202568965725497011099332148396936491180815284384451917985680847503665414079190905541218104203188075358901317903035755412921055320325419245700126101022159329667191187377906303759019680340023502865050548863649524783230413979735038886899152154151600568641720290698507105390281292355530322617089911830909697266276995035287401595440842930661513482822894441343717969876221247036932805404904556911097119583386939417493585494135362680311410990301484883563780414019925597578646245555380588162872812858953730101402767656158818600931684976061968947015143240068000080933079340210905216907336232796258645266978813265289991919142548820851362846548668793861181538858625565814942015947836362126328984844180961489527255871344265373371684061504364165766557571084854101947079388247875747371839731503697333199947237138026604892870352985211179526350420496381804575328170965514059651867221261594850477199205887356221774262783210444581239368714745292703831474319107939155584744201230780340425688678385951120683108228114101170930679244516221650827144252181683891388075303141525460445285192841070110278760308842133229664307722481833549381791537416538151913916114317960495849624422056262604043858854645244068408997915299974862435670645003209829456179078101660755263898369788086019146990501043439653132894748811309839355323484452750716886663151700187588182120725097026993148436036255915883317754379347550403517455127184892359375427611161397765707825600061139834256757360473497945520093010778532771385711942112203177696863610075357138316693324255731491302802780545546197311330663180123162508201835795540216950139328092993938569295440498876838063964576923679759034759315213853350849893182230785997083485150999297573940374505080569365110027481921751948765171208576878029582514298237591936382760757187699678767191959842160087320858432679302129894284310297336022122723812153126819202055159666729079505358826371929429074871487898484160461579110716895599808991476710038331645778532006368834086524121047205880057000322054793263617699037119423568180923368640771254156363054490717227730267903343625315626218529307556766355301062089494671592625978705839277942230325796969882191958475046086993634461628260975644916065534550545646465190770296058579317041243151613478718348190418177221824630109618797386057861848122119977947840585969191657426491191485027967783232239579595246817318868155897044344402213312400745799037443806232839633262588370006530999220378042246416697726695286232663177430696904557949569007860180815087865484119440504353346180640784568730137667488991053425166720507189112527398740555422417442138850927603422252821836744804611824023114247134240689857003463345893090341563209613598670753183466407729816030059019867492618899042674679625822833531192111376604963206970031663111286262824686590287731821624893448922689671928294925380682724690304729904671495640090344029863404320799618001604584472717626577363859713052643046388172321774749245560370717523477661316214894196908557338096926376559534375283931147977272951006965149396183202486467133314858310539318324901833111336157064089924089966879174274740812424407755338937454735539004348684496451764128944656367275995264573359532978686740028991357449383330686117558823964159511379317986238218321625014699474424669064843609263571129973934604440118995257767613680381583028944468550450412364308872872205946029394469969909572377704052199520032829063192741724802542033476385000839282807108419671010180637400838100255361557640031508669558153519820876687216655770249094269091026555314268421977037486859216640380095886778733986422709985586576097358839235448376440377409935851796557290663512027167114369377073612519455223899331280078732523839914428195847585663854319896637427319744016238674489996655297500237670920444629629135517059164090229101735190584044328602829135122424478938096313633692929153900706595724085210741359507104756742477497457137306855198869176071283359692081335959732285408443412942025734178119731087550071634491194740043148249357828387143404527039265958614890632367913337213295996495379109031953210483245239603621432720261348023428467335170775917625454264001222303910690221811652201446035082980049699214565174104431986295206540857107303914631030265624227013068387123404803879492564299745950425722920263712395608371075696820922865624920786248770128739175300381994458213664012897489879113424662067779125288626291718086938162396962962276516963309418194210463201485213508249775768352173172552833313813368100660501223692003161993219631578011501289013744224269350656090150380119686846942976311504537186600561362107066552802661531052856756938026574434009262128804109070864532248822954624466292422610261364232010483331086703784305471186954181916026098903286806379073613490654714649863279355009642851797956193195283750033214864088287927902651384945350470590807811676521919747132295757305227357643476933553710798934985860721612255506636543751938475624419707552277487280342505723115634223689911903648699422272384580542401970733149870063671689974308418651703938333094215809951189813658762738958024102420163724032458632067586335389049579077586453722466055474153334154380271464863705999062396746093138865835663821182160077875634864622830526744553592126536059331616787646693932492375756256863085392753830441912743606552624722126590383075434411182931943110357074550652530284169638984822996185749930238679678851131768584172450951356199903431056602717836147617234742267899183502554145876009435674884726583587025320336061979084826643846231044099995172952738082820194581008594168220640977913759614872494661199223109441558243568759728580274877655183110538976661869628754150716869444913704884003655875531202485135841634329059626293274195992197327218912974250403600253537419615748816608544143106349276451181500129348170880615240315487046525747159486849612185776637304653779323389234007879263913850471287104179796872404745625568509559767915971007496258724398666472465942370587792426531934244298280386353035610861266970874787877527782238842474013041086652833264274619120909277438550939717328223581236002439400913065286088258304847638226769483604573378455266147145163855698504954458722907723103716163334564374710509400056068970390819190934589497524220933478896431454756338502124439970461872117466873007202266863339899225877357333673645870104782655438384715273043327173984040910589642780621669506265381960286592794668584657178486951526824827468492118999483432036406788130800701729701235048458349752226739605007696894743896608758912787787436578798932514210299823904096154585552020154148869642364128551564164691520930207336918234581641203350568046250858289795681074622125264130697734432518932035544669764818203835103591348255584609378016014677947783453070058492133538276134852842580798063072167805871763195529699022199903985404713728030118341166171339921651276886114948118401652440448943129562725842578290228760155259921212513505948993899227669157120075130594653039048376154054123617723373127947680350304976598919908021999302531787594872579641236545309303234995880760571658689495022776421651978493528973280325577620065677994783793551230937786911065890595246615843238339095567968249989758578241786307777721264562793794708446891104930632721857284585136378364980086586790189671375192144879797070219976440925245472620868749330652343169248160121314170582187310327090178228141492708329428240431257935665144818876837933942784527237531906157877124368108661199367945118321828577364320985524625714159336190073965913592728053020885427922680097509435073061093484875479857560917525743190152803646289360553059417964942200909846985316930699324049067742203372681050049909572473140155090561770170567468522676647107854188863560754504512957430286082292616515883714079644364868958207607485885783542556337210229055163025980493450621241806119685276709237289480823275093275117755224728475927591259852854200820889592975676337513137902608613918536852338127014282086288910583826412128380217056494425394800819705430719635357150978788160879239386524028708189693899332800169520852083328099637568109209887946798378012283432610391300568188519159616511132999612215348976126437217586327149331008412306459473899055396596548507306840826251169716285151549513038873220881761726427395675900538186257987120971547169923712846790141514410807038385459985579346070931432264616549825403376610775694744357445681995433066291238788022185927670139848787425080009634016191995721470817341418266574754445631493806918865362058260799787091515424053834466655140752236469079021907763089504267013616104813348746826393202158078314623248439348006626128811282238392830384912247989533345108570888881082319304771146166120184117798369367661983769141101486162282289047559235710446969462293655626773161060527590304351383886039769948469813079608810483209262315579161006028112957144331955635165969431194075031553304721226672132015076324117009110610084838525231201273466849686499879546052209302428218142353534663111051487538689459735738483377159440567794648025370407847991385325342745319243005414135518339625456039510961246920859543428595791773117926942215373423735038902587020876153860368467794876348194537815456744011041270704758508639940241209819791032417927552086931317268985334623822289304884460324260412425510292194894846240548322452761183229299253747693799026764278369348039409839306691107862629542939567578964278528779404714606683718208830249034510689232867187625115204507495025205714963583483252343272689782825430616080039518914126154550533705690177031735968824770459988948665041032203640478758097105813002616091043503892934321868070432999040321155073352553418944302129625778210419328477150634604418523556752879895886468138120745995174117534625501100467173798500473133095374337835049434329510096823827154480453014418332334225613522339302047541988447221775773853840812892159860961292440003479257433903896821585535815644107884887332553217793793734388187384879758091848890105466617723285178059502460025168536703271435605444008530309228014715751664010247343333420266377846550824025667441121966746110987501548813096660557249009732612802566208964348169371202588377620413179774375565498648714172882445492804170915314739295874491295354230269943844421202718437448394483049574805451114425079709789388264007451494703090448861464554418149987216895440096234520646005639219678165462714638132263838948290178956156269011772826604086220592726967837664633384146557641386730097505674284322648605735403310835980523169457793570811064024443909631536161604154034126750260100287707034357031336476931667672509439437314528369587494719215585214840514906772190137211582803132370267432625653236218813877716321731941026883330701924704017829724562400297991994765669536131353077831610644188883656747227865645900521776532301117135278971958497625219140486851712576261160757510075813660761266173041154614425895959937604899057033410771944711717974498260493398468483857102817586116329107605373921528370757954849928716511677638774542905100174387167336809121379062626893399613055161375142772117389614133228416403315271997525835980151982614501317675052285401753956237746596221561737850225387768266348810611269612332002485227411246614957062475346066802853755850819768548742175357751775428959060027533631180989191737189161062170231662844991816166335414768810560876316394972958757277825103288418920799640643479376851788763531295372863619329372962654387372132295920142635512170629871284674724021109747640952302071425160142225423382851436629205198335212000970005286571621426922933765540057268772077745660201665720719349330205922818536890436476311185977948634485017647013383292402286770403225927505402890730635996160703477712844857256166770797162030326297385625075496080793451945297206905366721448878165933886867797696233888103829843536455213938669699340812029897436293674042392634989657708941314694339429765916984452360585530218218392566064696022522575316948032304499172547552725631588826562013370454747056310975231912951326279493833167291523140265555181926812003796393401510084876875635742512256228862299616449454789170536244613516352677980901940753054100299524503124371208462651812743146974537982976000092909952468691358280089315922966306795059996743064722797695570643811909106825431123016038331461975983095179313199262713473440246548606833047825339664274655265420532274377133424074050211744200107459705596671713998316413425650939814994438245384044487466559381647938685121296169714410835808925645749380580643384340546798296041967069132558898020998660730386992451389123979288266999986684628441148754688238181688032360912855371361640353848215120663502943939861430083945976242983844191765032924597721580867059093690952379002816848671950440276254925589508770961412511355514114317907945273455581591498134925353986236363072831913968903540156409237688026522711291523766475012029887185064550964951204276005283986619615906419395148934756795828328860421137915324632305541349038424727244625796585675790019674406028138817050680256272931616226119196846964193355203934298520140652658457051394252358461027710636975171062135095311158488034473069181394599002645123797965429809034319497059731515918377673056978398209936084998565653752689273364592619983977893435935779647217279328809123219933304058970092315825627548906054308098464299939766703233044809690124974980730584340604012235096053549535112475186459717883973388335971624959958719968108668660177536853905841595513113203677769931377365693206116503234316047317334924916496174881140247081473225021191665243882071346433971986905963955441993604086769415096367429427314054845827734211117924011520228706903420442821546311412667232799891497715807013178873998697623571639579430124984455243574590554351737963966552004861764108530178008756462139195850444254886808894767390542306906576369032000856182894673892454789922786826866749270177071831497531577724043903304748115451166527692324434837750488378339138826496266300501689065139640527032218384542632470567719032623531239151417237503289992656617830394881954969905222480674085330726978017947718998957118557434949547595567522356643295486653239983716416372432521023328772717083275973506609177497635907190350612286695667984186660342350117789347470759338618175201961803202314070606176085588298006005538874214538522974264714669618683287865555508693738196104569652468027440717195499533131720212097784314276768950256051074261195241221316414892147795678164828503176553291837808602702409750504203397385699683074791749766614693703371468770434078723630160279682513024168283765851899531941252805579083368697277000174226802327287215849271549723383990020246466422700044209862269026582455727161257352193078925115146236381359013464717505089410215347455921505514327544066968741485916939320743530920858661551564609652323828927696790955877915889308425911890108874296676936695520522627819967143423086172893879737623546920264575109391979371173483888246048370111577929609620449578473905054767308809486096765537434536231839721567611464567119241156457571377136367553955042488486821884260506838511813071577024678118509894788171729646115632619442813618905171046020001849048142564350137316517966822094264762715543202869401278071165402827498822765497379527569256598599659430528423613273503603405348904207870727150398788083114505771545018980512188025328741937647608035684348905531363079438524772557867724383592613291853683753329179195566310542153716799760457379490884740756999558372823572031167532922953164119373240625159136821927555192628116528136984020583480952331979205305818315638238620556336235897977730478006104949386291091360357221168715213489490363792246826597577105058733827193140233265564584385013422139700503261870480080196378620575206179981944607444664343386556041012475887771526771671628214672769327801766988745321807535254537338090887048668773736474042632004597075353481670318240356546320396586735467696029704521883857392013111229927495867592462576616364229077680316949927883998950793770885831051955186513609252925716713206732413661905480326204231553926786785854030862682651184390723288871854583609014212095761527974355887586052216898552455950123862249276463093502509038323517372821041215914836646664211651104586272002325526530443679653157356255780481808326027681082485302971816179559010213819617382077337684636972140073580455072598839130518763861173741323175439889321656363986262881833055670475640439090512287646490563149607141129634123579995645172295328354188076474144931742356521132364373698975473911208152094288035205659464023184336858501645947528173402098802552557366114359598416950924869310342316890004972902254914083977601169599031450422781905202474181890864020515599814409993145885487054547931763026446367698040849198234601078447589421218916406051374751422232844080126580733342361823393296007897832146454871033900539885629824767453517146303028446732371893961118715246101368864590850013334990055216566520292261300805816649331608882201110918980608671000071618284786047389432948199371849321619416827450178218013197287818060545029849571757400343935770466008563938389415798272600477919274482129030529381120318504349076977561602240836978683559912284398357763045537918473974407657458229458985587924729162235340663825039760093025567141569432509303980685932898932775457691130145052333046155960615741943697775014993987204507892401047794707874259735508897457920790018407000077554002821244789298543594522536844512837464431956010549213064568978586829080949559444764019452366233412670357542133996335195624754560116282280820620422831602847817579405392259207898027142132466680704055820265188925614523782164602057866310822674888562123556268351302024315845510320442268397896371411893319475380048150821771987280409718638402594315152596177172979204242480529491835705626845068998075734817574769231920030293097148091948740964515453367922698479007026020814516712261140371476681197480185964665757357735919900302643177344099643585814439011588753426740372233636050862356998393497544057407080449682927897727130814904178763442133317117916089051819028714805736193370020526914824615107850666723517191257518434339811833035168962618143866860088093397441325895387865235015379828909709514711165340108390669138499212963812841448656564254250144173335510328722890802634570305661684062594622365067632575409203527804587653213461002811003431115088722883717476208761104818880686906900726551959054344366687965145201040749428248348565095125822496565917247830623132458738705645689249960632393308002209693858815088303887129348573616294611028136331662599451707407153590488785037454349131633616181392881931211862180230212442161729507594217296719485327776232915993234549073865997406183501686288780668365152721743261891158447256721011541569700353626983206359461567606926565869238820604456767947772387727003396686889123733979260865702107101708471621294016203008873318018908176334927234856712163396314228811102522050171448782506401656839878941525473251795461684367040800104668426903446413809643146653850342417359463559576582885703051087835947482028468683071721767760701849319558291148561281364524389965587694696256231844568615680849506551112619156267586231008624068752169682167520210712383898433198050829198565202998500503093909247211298005009597717284180962991868660487946932087435566952249539080341271980688449060878981042502049603237546880872399840251913719766411664679358040866231555936496310311955611335898783357786960026479671614880854907066904020426205258633096840386763637767821695802124326024702917068921657143098044200898742118611270294726126022143044423199560261687291405970319719736561907383290522178054333138502080948432050060206375271034259251041237076852942990813470279155723028834742521664637325059376590729536852734484588389690141421884541191187812945987656494642490314238335581270080280681821917202362531553975946664499426314331666333082181492766244485282853341176196729372463528888319870863563063843916133177915520263546746022202686962001304542317872275906911536644286019158016626891408842278029762414299596500909364891197448811027276618412359367317413999872781246405467814797363236607668926407588236798723442583182858160592704949541900994187519830696506689904246174634600936170757295093172337416641205240895962560521487459853204532933803793290152006558180178159757145811607184741307442980087153808777755152584938300335133827268434853129964149818712419054883375053575820404667433610938366627887572890418084062888686837958179523638028837725397389670967884145335164767348562020457023093659153447604740476882605996687043613533003679715430796849358071546061217150802895956888423933897469461579900948148191696219778404262246166272411450133616126692617152370603865997809064865828143018936032085727728936715994912005223586054728630669185059253618933750718514221998968875787269963525939541116013871494505830350055222057781495620329899340163652855272965635862987665572525340545431321140453045830089631208421501873553950271507976708622823120856731567773611729061547372340300132395945733206795957922702607007813275744245597303668550129504980972489472272080302117243471818529183609067177767206016000564425014767243359039436369843960341574676805187637963557581361308421379221581136832405319919309784498389388341502475940124108344996538432217451280186070782051714186425876177576431484336592346468773038824169852379734443766353312238868148477395513884381947924161646522874339651690587130766518914466421785040265357608128809335435558111124661077076469056167041490164314941283400243466753484305754859634996261590559467998258705354904477555335715256531643149289317142577521608712549701877969229398447481829383528693228877057434668821989328418403417129622998877299317092981143381463339884392103972986224285863419431703262532007495819053328082004204956248354670040183092702027986105079743469542934667325738592338108612182920551651826279569802470395613575942767724863285450609550858580728618408862903002809161587642878738169026809348365332250153260291698446227671970036505143200130910359187890962395108789682467147824081652436251586024594377173866735918793346527325603500570687212818245304580742766953169437290225969397173449533836628927972410077493319286122328754132526635221038356405015526814829715611270338975184836263276465694497920262761434800620946687564196868096764775645048953337292756762477875947549025727287215791419248954524031547124489827750334057037679437749177398110742796301859980132888837168107696774007146253609567283152357503558055683824809440212932711508800767668541365110949097112694834491014615847746205685030929845035434348808085647672157027956272076017534290503687595313598128392162426914609146012351842814687528867789563654339620637089241697860124211516365624568256353653539155448423834899111537464929469187529266552922969924923913266781684757321895807953055313446802629586554446911316484601109795121048494725426799487294352669886709385915900174801071832900490990029968901971879094909768327694984267304581027512855168984876612768125872301179773350358939140198962213022714142822121417542284074328910559208266456486264871122425916567827445529381006325608877765213733793263516975000862870105965671647623972708474873922153543160004025495156703778881761479341351404709108060287443137335547901048405645385131435798790772241487642689194090239689171115975578545822998228472314626462343282483342104639677001690446852306913592942387252971189822943606727306230142298624172703638260740970015635062115976365703711970988881225398105038325084580039157300725703915673187846682130843730003991791790923564275807981698132561366723802144111305026714958625142049623436713587683090248684079983909131845561695358508533353496174752843524117208920049809289725193725146417891326571085425607477545466295939317806681877081611714959465355404226077913634218764999713356720689738853980414273470042307897806237187475994057335724592442446991869893873861815995677007300593582035561566017695408822098863098360157335387354947985080371943206030957694991233141688331085700971065557163169950098080174660925165266191726489276728783606366869472627266827529398732037174923284352722265713703093684866323171821998829067281956498013919518619156417576511484301708459415296734103940338426310346408773822376970558428165767477484816506323342253397955229487765547123595348484691476519295942539642776364275417023034723538081112424895703875553454766396102924263421557627840782668182989308047027188945489009176118739468816938403311769841278624434432078673522508063000232831499147326688393546898543711553588786155554413416795630162023183466146933196415012651814934838103446219705225752338490806421289805559754357209124321121026860004380411576105987861760688440233795370918411988348727829972370235102222295102495116384579535546842030660832282987624314692662704252591287667267921386944923248532750426837550907942726003734306922786253488394216756827593276653150692761670058256070682185455154227816648139691840624204671858956614498267622091713837671136589504508389274171649525080300387634677983074276940355088247822824601068877406527399669235467694745928774015216220349645101379697922653222313925515876860567899510160316350076561704985748955091615874846043547292960211729853924495901731581836117952056356510255108378928065373466092681704552826330289891302806958204278633995658935921660043956607666154368590386559933564029208534020922371334478842956560768305566614578621973493224109960272829558583310920338595988937253617412947885810116368793745805154073578120018628547922483781278731160712290204116934452367496147133014795267068766298289853372697939756876920527370385179894677406544779559550784842662217696427350243267850661076525730112264716158766908542226694022547202509291521743177096107353019797526515975083135799670941747417821670492788719421463112714221500758383185667431326359471657018840193427640460300074987521677628597094480066183365608513680071707075029793894756264354009142559927371155315618684353171359399568691751531184200191117825546004073278565744463825601531197820374963133994826316945939567501001301671974430941695460173888614677680813408228611086379381750214136575904722592003566296463593968326528311527653383304284390222813615773798971320569208516039896570987050031466320822406025007970574429238451277030528034416857441889804184740315168017856249126534315028412620839866112461305637025871286495550174136180961575882382765789162054773382468538869276471832880431498456375830012510051369943589532483743294646928618387754551042355124945012358257530585238216205583859426315332832533129210798946683055435726390854839943727914254927766111330886223116938213456543989893420097809441775883877333880916917431122936801194464762955333980303380841302127091059109826276911486081003558586841511295884859235512715300651773415704172707136289324586629783014222656512739204136985472432258005084710963105271826784126228236300979382160758493655791687020586701973985620880049488894911046134217935113442925371965558080385628001039102999520311974029245766530326303930171627075275854286526011409609041872341434315233004109160914383055208710298662414032605000647986685022883423473525273178390095586915745894765992089144541329312489792789078970929279855976970852888586524897761351728856712889458211272842461832491009785034001971491099785791327832279490712656557200302739143221564289600472943032654690834856356154692628350296063839888255906741825824296487106905433668467074824443808526856052146497109382631083221526827257031144871667113996955937106600819043908797331312127020128408768517525327945521981429533864887375020622982038538987400879078825636247673167112653082168494575127102301154340739746289340472405881349062496037515734001845724869496736529741178815287340624488488637693984308173926889588795008359607749803653499184825943826696186890550806644276807640497660254690844495610404020808196690809604180759303536059761189704528227024537618631256579633633858370766602052540602666744074152082924971021433298682013581446151256417343739886837328285685804754681419117379322447653007750174499545905697050816560524118954619390782151255446154239016741495860916678471873672472735886253249230433870103857315893493325454682348010729674275792878665710256222499238687112526293318741465250645652810462317877011871266768305800504140715594375550628534180496913666881210268719461334528622050307483729866113096117541740448832207938338266314866522385671930835270219214483916651812301472377217147299031382029587712886795925983413926868770864590528532090863867417801104749262152798394799685406165814390135370561180831983243010692325584167286852495907496679031864098156612271851786454611772063309898894698489822892612410322076878830699247526592246995263072887521396984055602126733618455596148951018101485045893540128536137555830592574364815250762605933036053391481605678541622040171145492695787896855511679818481785704140217614942959458256760825633902662739671361536396922305249684791002077094156325647806089972218777200020597101302831092862773087238283129352461933205715588697615928534403786551090241843555259192986346552457090861389597507585716685213755472360982726575891892086627096782548370902795451656615950937506088508900674449563555438742409756028828763820966459519589426803141312453087908644286708542008785806118846034151049325015823490005987676793458573702377891410127945285595884334265522222746380141546950649354410854156911133817120483088063654493070239696102140161203895430285921581177637159022794804037427716732851982343349234586295708029417146711107651599633490094869250225477101238576749710271207945666816131310070588403034826570676959459274867842953875191059000354997336475614615529798136315992662979396270415749727969706296320515947704952516307089588884959579781830038194199227764380598480444244096422931928506803408202691280663222512336938043419091143172636712574232837494139191278306553461138062085188610518767874861463203838209203619288971707948609646603084324988296607158128711881223760875148758315769961352118468474297694092852096189807741520201140664800249575674202603146258925253912003964410027657804307862242222114144151221374793933221174427180284049742580223658488804780004097650091520461405331180426967601993206965868098585106328475292091816575245886146973329092926568217632023386311305541351016941194999298314101925541006821100180613560562702400806385592241858220920020376887144707792084335640049401398185388139282838590816780628074145268355683959017127052801749317978059691513222317937283568432664468549219709413009040074112228120276775462356665932453329832682315301127840767380770985506469961918573244955327736410234563571864403262274738712871535103935273520418373716161292805784839819776831848467550171957656226752694187376315677470414468128805036089935991425695093641522997976669304784509225417242009034522144939493742787686338686435478772476352184410944614173567816725130457090677865235090804476511560211519476223060934485959789701629012258475897814933336720316303279485477164206334419559451988966452972635140656538008835217708191154450375810942493671084590996977498325714629154003271689454332818594025599474299775740823483956700810561545664680154464045448492760812624710300487566070186248406944838071870395092205844425475948400560929456795516097058449881813589514617206948422241787770449539605556701873141253597376333266196058655618130352449749354185321243957808309936648048979733148584039021267981692551163225336321597717271999480756930655716980911636206977907204018317915638154930517714144725084956784517630897105225031271960761801014183692146108695117666605671774878913092190068375314131697030330402828764754151297032857403909470301648576194213482015681124481626890423659058774270079888333226702095392546971494099601190267189454431646236916119082711820484145571593179278974695138880301576082520683285037433010361167971332477151162140667420360019139575551860776310274546551458048837362529482528520981038960182069787543769198056318130628937063266590360657997072816743086791099563193289847043494459703430142824076278598376642056352771059106817355202843596199493456104327691419373251101864681098064876844699281835241247680854679146568635615408657217643999727763418126200149154854823328652971023482588823464664653614362958244337255354367185723117108038828013391118248656901977553586347330706326882367050419738748447619688392944211065329053447308761953458624753968427653844093077929834046688124986149898073214273133680222564738440153727703687916357955139994558415497081596342850186224355566543589897800984682567451309127858758783542582934301204047957148793665533090249456487267475565614644970690809402350335609458618435605077833915100673901929978364218565481738604105738714697858142359895655504688261344922427170277124383607916316827028617276861827822314730543876001959516663715818816578748235704807548725415503529116247810409796375848474970935020044497286538733088589231238507894527169230169466249643101100100215330582469514314460379388049282494675092346459225879614069412748769180126057904044148551723387825213314022102103483886691368469636968259344245588774787724587987986967623270575270585291500667303371161710606054979098811965726056263661233168650952552281363865936087321628904424518907043499160623615400326184607973993623058114428946766739238432804119503545259623082357070718648434850321754311515775162877013748279256858946920980740633344459779203834653277769352971144922298003240119372144874557223886573546963422712945320962364409464502515389337031047665521533932664646683451898572606883687739822706564473762751173061546666358895256352282399265176374087085508779465559660357423675665369535697925692072852764556638274462332471140091880260109973172050511737918324395038716347860581459333134204421256759157532502887106202916070695304820797482235806007717829647783519163966504780483906798414434728529930183671500667623692021567975802492095501353724995936804348736171694102077446730303049566872319157871670920613009528987185450617030996753580106214090449124988472570263772085000023097626221806744930220349545136188036111420915567947299060392396338384535816974752040818925812766573503470622134129434271296301975046446320055495420994746244433830799709299770310659172655754360168099523918794751128072245096983214370374396621456797885681291023829371588501896339578008995305929131080876437577237285925320032655912067049382901728070148004032020890258099157164828596337401447478073899545690373454185454732344180499685142188782657957777974578545967111855956670594484854283449151490796346043526783346075443878824011305857483091212398949021273163680416999449908266019876426057488009976601706026448232879084718767200987989431112657069292696555983843106665162766068755300913286577661024312529616430320858397682001925819682485793554245644565425493981588320432083144235251296844635559614243080495151913896028346206240899203166343310291037376639448643578420148735941133487549605372395012327983317530487053479321819898968300215063089439869577500700270445131114362717350908113465429257329799652182475335260398261555126033291383775746899487158013231897601972716154846748369548493669912351790896929089178004125456031889938904617521025517103555299540772640052264213935000261091071888742834493989184879514613878828721963369712655845499767790906772945714064527945430400250084521678555259157580055996054705544558234280561751854462626316033273802832353156656698163095703018915217925643503445705236835063173354079540123493898008275420778685343581768583840819014923658882492784646514920636882432811429709064183675145248190259482521012567864522679066795479717180050488762458293457577328941972375785046474171172793692410996607505996775565891710242511998337455103441236246735311609503916100533209504123551836153059604667754950205869871367081620696297372483490314192203716616287199827090998976168273293814350532113117374104790584526017624173446626774107583210903763896617344660408595880677871820313480902819016858830267877983260588267940119400802889334424468550915736317120935762252724491514129914749397640749098257572913775050088960139195184638682533574531324726357512594727563295002209232555539973522420261450929688792603070650325354473716671771075098155118153161035532142535019480816729230268251728604450979656225636842583619001146492500313162078503085688945562668739959971043830968207502718712981321052248823329310348237639172592591847112085813215520960234305192724249404947836882440617142455817691833971927830563158191178804812479780529796102135002044506449135353607115615766171084455112299150222554821550363491636674991209738136929598131681084419370041767499140521802292116125218938379697831810417336140184852044464124957991049832795910890249682543352476745860640266516085056991247976520815523832105736834318209741541695114371920239198419953615092751709876307662776908684268319046608967927499830296715186551782352519830369064547850556355324114341746069742137943046656990674442356388969765487091780056545278622374541290391431502588998792042140865022082615927191555524126338183923560695526266911477126550039994565548661083918736505359357155531899258101755416362312237473611182269638830555229721138761717543884590278205149423056284956354168089949116858002867651370506465131978429844369756124980334887813647760544425491186975997033518667233747337203421164903185195553727441313470591517467711171485942824311539598295638589171159414841442409853384346879683778502752842072622972118003512829511130949838856625463058343732900650697614689161131387407320859215430682883894335619535215806206363056645345785978703990266921295656549248971600939275787700707136743463422932407613801134594973858183653313374780614048377534750882456574677825162169484506765474338392346527987048323240488537366632452959371082881573301459441137643094367602426807003762928259306055979066931930164636164191798126333568368616186115473676542662805993959592108762439212071532995508090089145827470620418116662060454984636025670519815341843676846627553377624281327721827992165164507941271176913024072330557100691423849074558481426658342668501909909222491207543077143933078878075295809449047933971077858597806409974234810612169966561223079439129581808221219027312587167764035253823247324656476812561715889959329751678725024522993421889264711499284296448895037823770168265554362825329632641323483759196661010043977907446767389821987076730042292592962091096908574453478875746983578240309967716103325434915361930396264391224655906433287187348188776797464552379613475128610721367010900004580285347810776859995940821638804158818550120162696200067043206412079444878064455414723395885797041553025044597369628650599127530495578290460049780400858997236619752947422592087460073921733244396070590025732713092007145110217183525786306348618478799071580961586377297922065191755170726567235807898064053266545744487994050401062007152708963312557397022815706978284467026254534137862782215125027474403780766769956697052398055163748918038381904176687918477855479416180950094795549829391480000554357188374851548350206147437896319628985816654659760089492585305092942008258245787815823882093252964906671627591149307078853099806107862990086106883937786203032596200404905542419225119303282682041516940406133786941707198752443072941536982552882100057330500262886190086795958200165461250762230067804586943209838435118294669847040698930083980254481691767180403987120816499975467022956269617590080476387085377850605354576325256505718412822145096028295901235253599221387905636020245551048173759955147893749090487960928529889436055212149958465289787130444610517259895047905151209533906960109374184746498529997760569709930264369325402357799933075455391246781991503422718735155972015172900722399857359101015319708877869303203665624970466917350095588418680452575241734285834418003779242381783909756200487561670141849042666547058514108697830693236032564765764587584470532879910390559928956207569976001271060053204404593583679840850577633396234422672543521944015279169490018839931928889270929932496719869663584513459949144572473730004266646207029065332478255230975316065080117472858027938209474555344559985349118398484099371714088907276291577781290848334608625634201415808375222002954191347222225866912627740151243741928396102334114991037284789528909633364074718588797091975906825806774249022980602930288656498715926486543686531479514839955584284519368825344170763990971830340707936109176229936562389172679080951400564440017611831450195473583238813988757199189840668852673712972849966065364677182350855806713013045734347554932119237031893154381472355486224334994672693209828533079496705923019842262610700393423787684756136449421485235827785030304263023308716444862647720693765365512463652291336827329703011679990322918299893614769560298122451982241027823238209885988281446690010016928933051542980554901321481661364298288118211397158877533298075707064629129124790273898982021550054595431346762859466518138815172148310893105473715937250254316290773410743941076481384615662750309047985381540089879641986348768447016054011633495627431092242584251184944844196334657604745511310069617476054211116304765119407998092272406372764757536928030045693868666642373271618956316769015495401481955360211648572167900610794168963125023436511899753922886236938598850355668981188683132523179607784062375818655875262356325732749919184773718965935479967718634751940998647465682629334790600160249403040860851862251425903370313763293705614477712708197031856217543747094071093228326431953287061837265310036584259059317561583212345353351091974167215437063274843417632206643148338130721120752985876063687204265180848954575217117532254596047743473981978404835673345552786127684849688700526647012765300237418362604934027073734215740149577918566839494988870093183487886423023663184811756843691807842228032003253163009964886264861070882505530235362757088003009532655374221249778205809014222537047959307920266440732695804001715259922704621297794728703268628270382316385837537712581572801513224781331765124193706658707916929368932124211828225741761919305352682215671671277300839775910310613003775106011318559658683264736047086143548382637451970440332876767525632024972194018882896168759380104301029115270458634030268207427931406776277167240175674795852395123010084003213267888523440907029019610148071741348335721561106273039650662334896649490196228002135747061697039257587658782895086717463625779174941874558896598848617348575406683949467273787311250572287081183702831026980045009602885629391155388579142513797381385404970195295740499212260614788673804624227806939079580717749836674416157820979644767447781919704481723820222888649020362694674315862362158534169753019927261240062659839406328353288510026514036480772158444970924326043330400269761499829590720192992632436265493903038687808711279852971090144735361769713700084833689930814272784814097107940389691275826221936666783927527697332930255858074520671590628177899419099039247549728561149271083842589332620662721819797728433429420541212042254009362067227766603395229183573326209378394226739017873789602718056889533704694682863567322770511111125550908877078187544997085867258389304727037739261079643288627398380717906365743792056282270630090089204825601953424158451788603057191329282128212843561989742354536922012873307049526986352300410703439050904650795849880075245940450217727945304182750178962741415460813079204015342042103521824629434468246932802411615290960346547947095343161535797199081884425759574311145089778414353587623019848150455075008846187062166540691779505702268015643279713030637109388766592986719015392014713909627801189870513218056825308946441013392829516038447024649743362888945523750249712986159604238723866156065989583708310917835043373757518805467871532293099896820924679952704035053681676663069676653591909679244745302448888776360660364757989639593474110273192955188505773576899234443855929722841041733037153818103647736319163380297458047050428726308066180437914971321283395868302746012157537658849421677627265387042873910380483030197963770431827282151421921658091140334326334213466042908795429724326942467960784402951690129244952216317447173607721065274304244896186388254361183659855373040124901691637825293207914932899908435341702529360251036749865392309994989294296696482474404444733413284515467488670395852972128115468179986187573923999071851543957260222340645360666162361055007170738836287246538148085522688705176399007848526637412247128112767914026830789469904886968670410480807405372565357965208921330134630973451666304316167665238478061883469313707527527225267833146499634730481242464390969777495693175453875620576058212132118057610522347693287356982252301630156874231575334243528746614149373165678660047091218838145666088461559040832325718246527230001413450141939994557344247247404720518562578303171570548742074784517551973462346210222572769943159369003872722810702252908318932589111355281536422727077189897223877406677445025714658532561550118504175921300699870395657450474000270155666779274297903372594887069446917391896755612957638872235229164829162924437160618102916406067346743237601394107718943139627656050680960899500883285051985279947806204298204151768974982720041660810577570779907914314199977743022254872224971563767349433350025190451965493506663187072824687253018032040136583858006647320327078093430407661842957702934759959620979472380373797105870395557866527541469262714403502536145456697525832228099907710157081210566389818337291725573869868533841027082761975753219906819610332707633983757296960008599941065499401160335245693976539742860998197055696938446351985665932972247501100639122415513345948086656157400996278277554930049710488903037746805761062704709032993519443457656607608481028156554826714320418295925440380615435534349172438147442056114943432166189719572559075786504549231608439959283957383134276638050417668892514350923937436908098811525904883698731062865524536880815478849438211441745139511995464391368014028105067026907836239564196050641792559637846415226842511732233549605464310277354838131966987117591118859287307200031418396941461208098734315263182736180404598699454910020712875966139670291451755069853108632835555728176234092533723203552422239125727152857782814164144093603161459628876569575654114244577737303303681786118602292490498227082513512719183030876624276152880125997912603857187298533050251667165153399064465365171716238995330101704834136773848149923417067870575848358018830506706074501914109463336101437782078065565391000407300076330983582906121578670988405574943808348859978986155602020022410671964343720502618269016477772930265471444256710229804517939403850922587717974800367580670838224947806051448349417900067615764480594965046017071870050211147999464571527235123950030912522267285969739925908085096151191715514620230586595093969178781863648857580140440327991244631460685217711122568647221957316653557687117426739559942667953329434965937551339943707552513442589052574248892236917837156331696081848895050198424164462173482796860355598024113812543499286986327860042067386124010728563744648839967188361242700317597771621551212943044245567585243910518483875629096782464928798343099488449453814670414025206505622200288550144751867310956360727549784957061344451401418476065564435478932874954305299758411431506523254987584619196638229574874235225836628441695354335119943419988691830384448536010971828718196925069575786117990655671836504447465837379467824208680596566765563606895925268951215916604013733329267748773681034396443606696065469617109208296496663724804369365381115852713766737875809199323518402542327367068296855813745737076205448425351180748429571003069706717090039893240432333581947827712672621643849531971939913258539691744050732794119772311206604635477674869772791061029429775046038280585662824923832938831085161203375898142137715499925095648911748578301942435234858959249306921385491973122679715474253167859055420441277768849514555695903245481913618830787180485723554337408619571368363867701890753071488712980202182598410506014679707370895128744656706554436543775494320745949505874254780508568310884310704135035976374715469159021036956754381705068578687895345611043858598607864196061763154322945166130971707499206645248666941492940811377602640440111085118488663463550531104172840699875076581866566403621126579564232137064479561495753790708150704525792050851690333264853056799377961944250282696009105364381067055795863660022399064787193168763253281407727539254541878738560825235405655321471134612786723717250495742201428466174050475471803961355237805009478043591898942077590451920263031752662561889887354476207945764505211673422613796456174505356498817097616446614312081458952919776725308331887768631698688875746826700063849522065062300227439354232952260022312716064802987827703018460038319936901670553971174604169043364500958194984893365092042177042642069358401640202647174582030111305198119382667575882241774777703795507795118563112102222059313485827053233875350435787152347102570008630428700744148252695390859407642202501059382573769085330185294645809550774919161233780699824718600498559024688748118867334506258527150533305740907376350558697969878753950441007630423608692748515914232244737306105291982828265742240572979379102561751395818266137802171768242754731751017088647309475724428929584880864340932740775817463430222795866131468453872755429277532053380425690267330001458993923091645506147009112861592300980728115779733099821914612157646317774016377129965338684003438406339814221995407574293638234863901964293284017862181001607032235333262939591085011212719688840909304811935568370131753827026340942212324676066830421683162480195576232683332457142641232383393740799340016089291594721658128288043263969159873791625855775061449395790661804387092791212301866637770624331657048793708145064751663984771485317491674092253431583426729213017096451249909658759340309680481744539013800835119103769521595149096145667030167400397404065766935492898859546162912942911091976619070761225154726406817049280150046919224417798812079694622461567053592402136456401154845868578502500691345878176240647955956537501268193130279093070952415266325345918851862036608976510937401736241275299029967859987511937492487385592575489316574809019805975330084437068622819255470849272583129091817191240507909978563796212214254848831750391561539056985907180831216957645763650225019721591546676943230144708757577685611270682660773969240272724796322936255518492488698469091216778191810191205455690712751160531407426048862865240168214633495508542370635444781034680932979766447567401455030595899866589230929103438544853863397577197383281467944065585682587016012833219659342217688400257616658112603762585272780950911525346500952944641409676933133747244755976514610970458010035196768554054679919136157406182439952748550825076182449587434905598686322559081046226535638217151871960060226193581555758088182118851381558976905137470722925938901434577050008023883773501279362765074919430825642962856046522325525001740145594792595016108758098101195152418719526105529079575081824036306321081334458877361444998452653961447215469383189027767790145078431282311928672939920967253902771270975351109948958134835476114729501328928480612296296650795271509583916421628384606922485817761309475204862781807068922954535185846591438972175079265937610572923409640377758808716582830973976798505409836894230530224858976631333668106921406088610712523848737963425287133447455173414923728942551401997794903440594231630413373295059942526570225849103616876274578240228325189252991916079140775593027537318300994561361794699261624115531396310059471573659353858368906765275328405365770206689218640419956592100082492367135261981837447965575008654368849515998565052873821813091344239254787945754295475846278384368230847447103327816992952649288664958530005319724583733414410866028013116830352418185857074864498884700930046536517772521493570137699076432104616586175891586311848846477370720177424773701828141815465665918701653239172162858174556742772995533841402554460558447478250765337041561186151313858839960363885669988160269173722007200399068282295856182959154599395273759009931616608884827738889389373193577060408176401995035944856569786979637123475919642486516592536542747712721873149513418851552653884929983678111337211820379719736971410479541088991169928769042616628242944557621902451490622528359414843683162008122260076120310234023360883666042056470831223476914054011572173196477547476603757779497179103685930945666674903073540330369410360373194416030130299646116217404086717646405172529537054574200518199100498831456090755445699499839129015740264149654803917658885104291792346583808411436175056632735797210619038442509837030759417608119462362650289625016016692241491007065043304905989929785529250347755244325000248033215601179036375108230001403195558561334734580850594947539532604117967061649605149099780811848250264878726891337729571304596067386731229198617189163278478716204955187891166954997251171164583982419792648906133835322764446072347940630777909302198069102192253040141509387727577610289865565353178298582472877924799736052317441560139195879243953149710816090531193566660891410340440249664470094299251614554224210412528449598885609773159368751198596010095017188221198916604846357004814008536480364145269257981234409742239213502628542639243347767896636103531141077544334422447122961909446572137462208841367251403466972176105018005968739384166145632175383342047674215755670284989731801021786448198416094352133269406066595110214359680870669597016582872702676408523000092390915689740192426671465198809221921641637773982120921275243650360928456956227671961885607299520826056501120280985715586924540719996490644250351903260788995754744660373797650354746691850555037104778310430681968440406528271145030725266083237770735249322434365306488769852944891508923981111692659199797912554606050047710100488754920228523407007113627856213201794530114519911563913704415183911238194083657483442441400350963635727097284585235163962433682051522638320489567163787235193676444821079082157847680196147932205945552771296913825827114980771753768462988710454605817519729793324874641498908026367325708821155577697544017526080310635821608834089880286034839262715201187743635692229159531661944010751214222302806442847598223359056718790392798464229311396516953710026235148508823410595955333697268912915607539085546987119608071336711927940630501894353374533574914672192671211959525216141946676121590821775193304854766386651218340273198153207860607401254098273601641729373903501615006935953524377407884570080012117387497529382874716045529498002269879710000294478605071172809624090183647238766911076719814763392312889647701762065695391464874390865651772927707785245690936492232657440971520303470144164121823291282740401880368340618282462111355262941882964541243909395789277106478947346317323954574702233101912637164455721053700251199565662891861581573746500188468381240431054018568562545759221294684346887630791997205435854864313243064516593014522707282656560890177220870675180759378876694567443149755376116641250944570407507187686933066932292723547967443610371515559085187969941984239865449550546756023503792118678121246804336564184457393685072704914611274684371533804281338220833408706691642382364080802039388301807892890182825739708777339406884909068947397177144451393120674965497434063692386341610682757065180118645482061997884603311984032301334878884297657922920714310620684751314044857380240662725254135263260159191874255717225103745665430450813417822001441465233728927196074455459532795063695172741802846561790946756654962674080287153459250733528927793146502659629655489869020554300772534931680786568579616594221186568608704568842920003549301184766646429703368280319042457270790991865231681685588439684791427065635760333562725216800319367227357917826986453925943002371060093078547057405078698654537281863511919635227568781303792016854347707498310266920559837175058578491444520626966316223601662379608916432903546797697703245508417445436490639388401904461703005342342874246492896188608151446868245927305488833155120119208777370740607222575590370569661273554548509782863808464971467155198483871941984816654427308611226377624304472626104463000735259037141885276532676052291382061043470698534750255997151446351348476370662804333546687447891835488042317862084661517453010786077090805701374503600050116179734912549523222641100072961770006430866175163556719400625514291539126063574527958332903250238412414531845060392533375284016802836164971619501686949244553356705662232720012575974236459864931770737618780997634876598425272113755488759448610503977956845224862016616451569642216598896853259272516351686979720131484420330909089840327941538772762429319770744070414753209265831985637935214605500692886241727824991569062048591337454429470443955711245519241091090919621127279722816475690178488934976352187189288646899323641856088264203231567910515470470379585037933014752121160904160327823110337419763751967362094170065571352508046112128540472524103396500280226328745354667339783401631146673965311792351997780433503380628710953951356308211433626821802551249151251537221562585884099422301629869342146780716340638720564826978019453205744574722314695628889872712323543381183257198683051166946378574293254751259589264365340777077368374854840688538829929258754408777565758155957493519432187330632566228221754884183795468144162411646569782881781008180431896219640234768168092873087028147704591142614566354807883241087626371571706518863272125163879530617676147547069577166698258493579848632605264341564219799866076506542034411107870262786609145784317661560594501720962522683171207567593925003596415785175830811340574586674138162274740546072978170639646142224134760537056614599922449738287979895864158829786362627092741003570523200470166417527581704922681961278217454375175454202848547543584260198253734765685333968252052797745347652313094015216494373412598768754870155087741317229082841643892608592503129521718665683750168104829028127194105237896894342083692869519516131702940682102563246715377226220608297245127800323102574555287350816020005436772586283051726887249501192724524199446842468729042604371643112384513785805711234792060763176243505961762661805262114471834489895001773157557894936824289303856065982228517418983853525879632796252087301358715085407872119348624715449858876149392459873029078504705459302457149416452998846933608785754894342095745603082205779104574606433855921173668336359307539239473528145706781549146376556132140377396686115051153049364591140728412049791411590621246383950747127745418470033366188754873285649446439953315705649082768107759367591103930795560785264382977574063314091535123042776613030556581496130614793567165552083678193269577116542492254018314824420720673333411553792147085994219757190671097927534772275580274806439507785930118601736778456463112486221916341397686701488545788951457556560749990029026441104160624389427194158267609871294891737788200532557683396769881075257333502732602985105960843592955099551643457248509274388853354118224920152297214985914053535066905761846053571839504737864988478044643994306173516777872261157621793181770208349541295143282386712614871946271392278593536012944543549214560388865506861618592396832016611361831176977152649824514236205670353026112630353912272174200805546379992619163135035099705149820391715443791409643312819370414199982492060038620842701583560281974103342418406080410626860043676039365847952220931127799489028669146312086371912655196987890082846394592209707806942035790894910348305958537585457225089394496996398183888017934852508457034275617337878430056523237218048962456788337153413532861873778159599939653088760688206686859714508056598610174419609342976427966380319258081884880375333450808174033657823672852912226651054900838606622454325149836249393971808763147993680686775643872933210584737159488230173818991119948518925189224773362485340557564341048545245118850418058524213860226464281532286903519590661691023069968101078870526256476240562480268831742218898395097618985588804011800543532309413480423545589864879984163662113970177843623381289919156857532403912974367817761080902245592428290686691583487804291610048000571634669219348365180175838377996623280914592918282262626257053222161303932557159809572239264656415482930306202236979158471598157356638910006654053419120934309976804733528372907121747711144744963890098813109552854972311053634903255391282240022812150738698257402450441616884656444560048900802791136366253026666885305049258840733350100312258085035361308790912986854300414006003553901692300432838976094848789298404899409328954099668282268689698308721657509305220275971158434972846545179335836686904987580464323044378130076290287796751487244383898229656989156237037017827520611192232709252645414119188144893153345927286744227789487008095218331673525591228736581210771830943612438829527899493667902167909789659980685233598415188874198490202410980304075808311715051679011619993356448898543359781451651672350427250787428280032450073170687587059269169445440485973117714057762768430585123498139847149337119573440578363578048564922491642732973487860862379375414233232394569938986064698600014293696212797393341705181875312819698224241973063002262000418894159004001719304406378661286765205109702128463545789994413143886162140072200616522228178549716462831392073768756940819418670645482247123988577952504583940517849567225704941460775258119344458973280586328314902730172052754558936154958223578775140382447885531845282575916252362941031312314199567328531136038705936069802451933217021280402836035016893504763043665168508643310857222889160967402048838502073413993959629171992509961455771623776300526844611742935237390306606844928302426629382630017277383461782705016645702654612403551180766287469825150092718002192694631904112371121612281655640123265143202969862957811962936384264091484658487854331464989064717561480358099888605608268697328035117059828484474021260805268819363917778432644371259063223048120259604953986390173324030253388175270278656243964405653790686408840279434526833767001407588560442511503960646156133031181114847303743532220474202434809012092112957479164283007328063496807026275063418390601336066796740403301372098640493374399197681000816319798161885774474896962081705592480601948547350810370970582610345253799851222742841746825918123484537458205016006369610883206436928439223235718596969551471976229898805279181389171473292621703751736417770470988758851464763240814951197152765346198372705971143791637165235715878948522654646947414052955177400944787439170148252345867758073505387257458173753979421935237539384483399207422573177873588928099278258799950369981375481624840870805061041782509001323727257330896715407420691415015560903641184815083756455542191234517916287594357291432024824831272255191007361346199997435908810103012204784739723124508085130854885793521834849548753055887276884034990042685507851630208890955939085919476650357632744633524119702040021772076177182588986605187259496598624165911032905068124051689531892501384114254120051253688132112574832545536053497377126598544059569930798662398920068827363465249762107878310120704057735879451330224429832441701643708535384744144951052307378787355260888112694147778597528763941676848626159243386664901144965495928403009474858150612766060350891586969982594766212781700460813858596999506689103529042879002856711026519490055245773263254035122565704873548132430994739362791558490893284031727997685703958994943647958356511031811318223474074691331411080209812555047665639882395412517437250076953889602603581636937457510095563936148773953457088092890139258669598742723129132016853546735224590989579301881977327225940006231474265071218985131218257363241917081307871619297565241210878286612968311769558133524504326471699753113131637902077016510718588283538711306590101624752554328043927441613587161986204025660903403087668906606223178331589753485661216930531258713403333293418924284961869232508202962767738109508120589029567130678638505249416379022224165171002648490202968642082775824042274039461685691397290073779830147017019520493277559837750665138424447186469985111576559278722851704906917170496669459335442695056932378635337903069578260915590916724401154319414325413316199693861833954511301070955831595582219270947094210906093218627869490401424339827613118571731251725091550155744746924791971577697032091355296504719133015555432488253444502787608748181648693047536775929623838709556368885737571769670002212631784715324519470831960255169130265835522706270846791387348919962265876429314291351425466107829602598923360577312838126536658366494354543173774409877723539552890206501549871743431767875098250945737011473713748089242954602164085549803266301109649053415541793952092513718994726549786267470882408792367090586982346621103800447528549534600373399721986988109944812297563649131499653738382233759523995508867652944686783551943936801634150705942962920446010834053136421340763637653124422903550397809485965781257096094715886799195561123196562683204049178081656155119123642425667916319437240641418895987079377905945496343289360887352017858334396492706356633785317247371605157727703089805738354210416975883859198963263629757891911952519447428687440761538650826177929554951189329716354203790939535822709192943749226688135963878395644979048496036421949527727320087795605976887553354799318272847351872500665243171841923523025224753372168522482435051379536650126551871382071114674291074381345517270532320016062033668316469256285468104025160236756058080343239983457971159232784092822404223176092651272223463693578121506832215588832697362215065224049681907840940536177151077236506270034540066758660819634313231623531393610297328509756997317873976974419086469534004427898893706402400857337814590230069410463855609818466357155331020482932618432880876855328619481410488671056509562220796460269282524348188956082129459977463737324627395324131050007432082649089570597528098676062750622907820388584697218643436164723684911834209602784702659488421111645415418488658656510474282902975066770533603777854024818153735993965303543376527949178456949667754147712734191805341180392454010739238865142758366549415110422874841456925187500735206228163680515621755368977996929282975412159232372181049458636273727752005949335313861035975578774246198939255220652931624611543461664932510841322888030731602103001567228792450746648885696750313947909417851295145428331442181566494687323763205727289910385326815435994270434453248776769754552510424331748537735052006786808752533956860458478997996364751326055038401423737735325274289418469940010308435037784650157146579081594754454798147298965622812433013214388606349567134985767884619941263489044866684105568994900678045116268787724575521279091929046574808959422512030843800135553029607287787362228413336774768217819364364825914572661283728024559588293312292771805934363803897061424931046402630814776540886452689079584613489860723015165582386290467919493742007571891569053884929159514135029036980405705615275266355020303807777124403784745274129341706055868112330632255964610620175955364397714628878083249324092356081580625190081392152560286429868141504772837274250984581555425042262179641536580319434812270347930434685207692478260193262273690174036653250915464386338586395514927030033841338524005684661024636352372226567193743537271361049094213942966844638146652863697157254478917864552644078691653137731372987306035093683739134039437392604603374447787026728612635896105713351357489326815751646218441664860953429456866341032595359999282904748894559275999078255284828197496413801152121083424975315219704647084477316508783539645171037643023419387449912529777576864685256674664415604572228831441153182874441586979104961508181513825963895434992390942312607066826550572920849539916510351870349344182546838475113408113612653026769985211473787738282497540510645550691451755743297194433706545454470921618279013318556215237852794632770531641746017831292519556708394633769080455155390806840255855293706254685972426331729321844328962987355603223147568974576125085632013040012940819312236854949085262649263889214103197439985230043678533507203355743878638131214954594944338185520663415055553366476696725533196755562378599690518650283638967186207422097685729045341295470116800240997236065890407097564043032626350265221754141136845041470376460425721230415954183142048979329850834317229587682064850116339230755598314306666460722689217999049326871996423934177982503298789566266834130758644827185272727881151960061740677151150402421756770516921553629582602313148640245802719593932571750966635991110857994975580625080698940746657139762293129867845896141189293324559643288013430157222487626994977357808978085693663728887345327883441759382318822500993487217779960567617375743244779453200668046547691844840158957862783029266590047098385933067847510490975345559981757614452129290984662349681655529590669932639527825693243923862162517255204934425764450901087436911919556574165154673792669917063004585220679287518589905386312510547552777321359419931478252085430335663665666793207941977502784011566931897700497071342940492927236979738677540531577549081380428638398968676967082140322080079386527148400838732644332432872401180047022734309824468761612936623193100556188415264359410330120430774031407438836456257852857568488091386440463334425364064983994057399332649611396963202712384543626104633005375190815879357959860071423558228205731364477451005313205945123877491065188850664195851976408028615536300231957523209820698471602048009977759073180330777195071155111949285538580958396448987356184832911371904091886825337486919988830543481889380241585403559107183350952211952701801027637602258281089938313931869111655501855190276710665321346288918926094952305480516862587106335102504842142214621419954963304285447931961435726364495461464508957701169822753348364276038017001611866615196833070444265416853680079524510055055469223246154774442793795329022314669996424357335988444875166500105774976803019014568372636925776174039979262920620629333485718506097487676729672862510748196552495899013893020656377152257821334077591427258770339959830221861024104919363746904380873215639331314550566388701970199636915499167397236369576867000142406363043077049208321893663099008486334809329569710599357348834322065833781380979696759908291446605359353683987095421369302830615553654287166106336710915895461744959311282231672003189014318409477996308320554112161357025158328348006663357832093784123575886428298449972945364860805540645373601373166704929355882419545538198535360313527579532848236072409183279320643008050722640161482146583550915128229564959534274244783550558677290284921958390083761368647330464125333455749085376025029634683456011400482257099339376497249447803883272325956841708832673606154475199046884803919806627796771065756552853160086248472893543551748028696871567757424419772982485860708750097990393335071648447923316257694017554007997705352470857931724852416193830145260873138585766633071577232341232302643652473471187605831481330142605838728265965918170120512309098926579494854382431406370180183647315816890675558889025168686288193088472808519662182768893745730227661675169213689851886348851709025759433633454437499267958664286093619335039210803126202242786936779219884856550603834785060880103979666759269339315647884637462651701185509837002882058129316984627097377667357430739239646142098149523721809931061212769392211504252055598817067495565357437185299097077111335650839745453058820391066710791562241996473457811999965787380743925749766183101240058440153074443848848444667860154927845523322841271110335394715755722401918496798329701376949281257140142896723234253120893283707463024558468940087581356511321691708990144896024709187948020501303599836315164737891594786444060004330482238937549337328059994175381777378434418085720918193120134313682655483580963850661761992998756584215599777091475127078530061653021681716554606095650142579031632530077248229474515606936353645953893122164768526851673573931089049134860143029263979994781421867484126540605319587688502022387628006696989385681614730219276509853058848602872332601699990785214388152958387610860528740929649098491070456966400789772456170389544304689854162530563954906184617407999620344678587845087043806344451899462533028966572834567332594563516617427518419686842796418020526645030861386652798656400556725291600731353019992929067808327346670072258960979272096297053822397841556930461472224576690797897114749205383486671792433297787076604656438768894448275679003591468734685698424770497685590524230798438775332394615760754712388950072084432230162884701697137064488765973219219535637844564507742846914379612982593262995510763337996120698920591871867782702093450822525393453780459203314993924474815272223614368955133231148941688477580576479225723147438078508141505557912928818198235831815728170966834739502613409967671212789401292645886727967449523479072019828871797903056829824464840328126928465665002987537055026652288482115266949080248679907004691310698153937432695050617367050358943231052050518334241251278086867391127202520887494206710925613412128123459684457024714423775393672440800078038911195028987459576411059933078999088352012448953949796909297508352186615310900194105852999078130828198040610472541263990300432700194192553865026896747878250230784326910456689822408360536877844087184395228243695143575319889503092386805584255043851026472484095870049730054083672083483658467148410189519327881205453649688911440105578973252495974507511506863318524788476639606169331875591382072287464843015335439975074344769435189625292089660312985179589020724634323531763221576725366173919600115801621691190283955979647130324362436316947519130948558574662765091304002189703900661304246716343421876989216521004938566421281354953741673038704677526901383963061626906280104237232515143951747665187148886820723414941097257902131814248765610877605134881900648283968593252334784848328781072129924827795408897480992522229785864656139025553926517324873305192791542148897265435335464382030051661094265261270377624747390434805176929391559921904209065552663345648461946684454380691702162746726520498732355277820077268072496697973538563057794384054525011609201820072452796116019780955512629419840397665627642497281659825002310331618689076299873398094770001223592105975722841703324623297762879409834088782085932977890339021328427501840954226406342732877042573987753065220691396563409581452517713295323573076611356838400306108845135857555535710868394631143137826661556403257549834464907201550320699567221570389946275837887138934641347946689674549816213383818915068933083072672292834237984227620599884510588263337166200539144295134205805557494723461624387846337146454652195991494173777106584440977220253725492546329851696261021212249450942769264685552522935194782560045837235384391728716078573280365004744786724501203778677820303922571175243733847544455331714815383306348448721018795720325744634658604501452753147828062749632228064076828774232058059612495443751717078515384636519046595629054696825801004403692513071937433905894430640183498784474141723198159116955381784535219127274989341552681740848822462229847000658788915948251851791873477120477727425911696515481426351536618000197739971689912129339249730400100634163785197732440325432464180592562297188917912965253180627644675724865432516366203033969430814393924622451247165889521364483657194764120390407385942165253677332566504466916242159627380723771571258292518384715341254043118934006269930539630216928199644156483020180879529975006156805890475935045449274187217010022940080808619649280995280865589983452495259045389619969690981447065641801822780789982664942324371620688257822111623359501382213688311790704911494580335253351368532232263149272589409049970414016224402628972007490348729931861970365259825135999657254980071482077452233466369862088603570535393917381868000252333256198805416500077139972094130661370473190338989397501252041903739800863724086318505427347445837556355784525408159571459824333708934270390651355074125445248365328100812291406234629657767853574135185790902042173073229982626291132064728715896573050501316974900788655093313774652390438477083032622524655864673033529100938132762408918154360121054295653946707920473584931128416049309294868047424444191197891974426967190695365797485719506907470701477854898050733921945204161485097524386228650041890047527691031163265292362910077640894555270167227825393652854382976827450943155686898993143835200876768377506990263260485561889720181364165160313100354111555196232427375956289555189214116463146451237583698410334468130200911733877830698510201830049953831578250648796216208506188463981389047182368604245389837058991381328184017984666013834946888897519012653718071436416138388468709780698451619341462519826622798931204547474288500277519751628979890418115412489818105905723124899155307245095186556322744637079818627009047917385589773083517401889891356744627074579335737935292290626593877942245153147415577413814096506783050020119308801461512999394033661325386455587319534953425219522408766745669003405713684209176729352575095459165172028930914248507733358533021595519133926459079919127955494637753547414025206376655408753043898920496975806151191549215516989286799252713259939650888604422854730960615056083298329451354954902850474925942194600743918002819760747022553900095909553519047982068472045291852580723558483733275074723613739486171371819075871812400577693357997486538963337097032691184399858461716349731514950720108149452541686902404593367519314895721916834425666289797889399578001837857354577839924352120528193127780877670944612985987662091586540625142751003641902716602184133463241215091723822837790264014710761672847499234050442159735803768894056061562743828032386334190423091070689291576778687676085138625680673013445475127799380121275854226867280600709653088083560070661760896309974859172940264642997919353766214804915309301022665947813778634352468575438462343945647136881688168727323520091238072742337060188300872017073793844213477312350944910516252158828755645947924801879654131606469769012150664824161428074841541483327811904117424985050916932165859819799096184075670323117221854587933195778051794009560125337661213069586410896256818737285133777189389730687507137279283153558375761104417838470009806459119579221560618834381176390797379856159869228457237410440300759668218753163787990448299478594823457155295469496260565646047704248453699831829682869622467750894283889032533901818994858914401317056330660610619747628599609433255588677754146722990338690996761486081456337257366268055285146329545780380701523062153480449687925657102483430614301001882684106707753326837329574226403347088556858309715447939138721179497747594323913821272942654034010469062898959712893052967845336919363949592632405734446775341793561709690535494834492078674767334384874546800905018754743521819950266934084343892950167067296731006320721709053757801986291945882115559904856310792598519747305237574648800955185505057489664044672551046238782460895558566446974740154410369613187142621379476289354551440589990785123770865111630920952670327126898254775351402130129826087672794329380877472296666882168240775555217399569094242578039355069721605455435664230032840587387896716361078465049213985845200867291607098476738696864995547811176944723224533707019060330849302438896600356942157284887946601192529723625482281343959447982309941328218393785304089491738451082778775469883538112227096003204138367091724479592461231313149379971170255153424694094171188775385109191089840317204505467556841373406258949916506295459625699582080965250699793001646185959949346043926495739109407132525270160151444694994030430741405570927378541702580977198440661897735864897790323254104766038593683553833290202438875393819371787475211319681264486465580167000110522662612632640848204637797372808544025360344290266439495339589121667645652227066030562072767946158910861602904501977264531052551986521246296658259271163385463246716822159334449129081727036213462064462098089333105728414389075921575396602783724414054150641088736916566218690285776059861171484422589953558161864585421042113337177857899900560142434759642087090422640867724975230322218566610804017981528122335614527169497913404632254495831949991963984590528943305007997869526980034882250262498480795131881983029878952098952137287833957784072261612882570291032545056036866479359918422867755006072708239448354791634201605231028895096325952335642243251411714232676234694005131234309780748978139021131781324271321088458219804859443841783309467732701005489438761278217452010253163701189742845896887305082964635220688603418222540512063810266674301025702396334988213853071008032080775782609514605966118924949293280579342019600217726117880394178177947624632870098999331159494915483785233133812687624004964741190548735005216822452550010099624202582836422735044316555819819700378816042424509845718866328736886803147543040329754490065399259665582142939582389801516861490090221490099987377257219513225879534209927954951539526768691226428951979713746938513187391653674357565820552292816880442529380132820806792149285767617023703473349032373779394691733157006989207970681373337529363264193053269403834507405648268075579568578641311205032567282229926586806697415480924709358976816218542516460663252601210416035265106540286160659832626295961822126445792209112093225873219050615834374743920010501661132788326999140768189136860004706501275083364953463629130468611350002402348563073214585678807709803682148734528350351524792556333707177457766028050900557512805045252118816358982929480186291794051104996746268394509393133459251121014478744860920535521455837770793263816983787371078844843529902033825579924738115751537030586805954591211832613078986739126481752531919359023270012583044539421778385328932025607648144202620855958851088228995297628581561499607755692181061446647334890692775627313853283664355447436282687501724571692109103821804468016376492824011961786128281831321091116385483549633267755257145393457156559560253551187696586744811081638383192914354574819324195155593246336619216223773741537758462619834485196846681872538625278152119951788419410918372508013579164444264878292712139486525237093137271258528816005955702831028163524146461222402716536249595979931783546529006552956439715262709029944503096909905566850638996114397302777961984931453238287223049048718932443579576511494557861563493259079487983532455175027089483553894735387014486647448218952288333778139353150583313650779283981372406773918229078690071354125849337905269168461920248516645617665319177788992036757734054779710951584936143339640358852084464435066065757010425977329000215343964787348574964174334419729571953181337404124684855984532027251873422227278821148620515015787738347120682463605040522739376981273811923072193718447761582842151252715813643158262482966596172210915078305600491543796224531550634609245500947214433374818067983195563363115854591525981276763297719711957810472020049165616329654308358724145444785089732677525665688221438482393608782783833547946333966245366739843406945679391357568381718185881085438207934569219005367488978362975426543625453571910858844599621908184224154366999989506504944801954127972431331875438926396535743120004538518603307765174845195320840494033692195331273910420532246926361831609563302623343615027166973831292912113755470194454539363294050388406226080427030245737135775436881765828706101951113739513857920617640930810294443760358521555124518233666214824919357919300236983296020102111771937022666972696177640851501038250322391297551257281778832693442529881067159602198453538144012660652921148758761279699145855932191920253670043039733008202023086536984886090256134014189339615771337669845360409035969050758974706809793116615792403739477365594801735051948403631801763829423515550939924453692130243160812149255848180106518912411075170607764823365004359383473155077471736334907404119697758398264548641675291468747437253539544850463528802579644209950345008514575673370779229395487275947255003545693690161920807674110027847353414114583363513415383485579316165989816136705146832216005795481084325553205800551055956748160322537809592193248510947511416589305334420631236612403186467756961415948665967869670996095661609987605726739085726559561689276622771912299105544703451728058312902247156193505992825954898212703432303802565692290648180507932989614557022383535308510031054304425230194950882264603012001331731164851604419068667385188674588930290649871205476370706795272600721461756269698103275166610364185660382743251701054466024334349618496366934398101252397314812333421619676563039193248418084023393474958755475546753535485307538791407686968865869543242594158614746097123340771687956969511296759270691285127718581259297471386642446976342003955523727580378909053025344641351092225779147184549451941486581865101897574042010921833382841555534732722624557105658911400307879713122096275571668717341416871287549655923880618360049009174415441879028814980051904453697519311661552674035003556116083630507610191925295615438431821086716346270560082304807664925487829796245775838653181613367266058294820563858844195143211708316650465041537800674500122153598725295031259991840846162467574596673384444146186084244820377808036504722791517769821213182915315249361739171440197299684655316154375111200609868188512454021000570850711850724262487803844024293391007121782527006687492019663296328117741193348301699254784996610674642155140514759489695812765640171269009025967466097383524858844451773607406495239157926545032872415066399029453657405935884785552399002873541019115722151506376993372480904956851444886323437418575073043159479940229896287999467045529763955453589874431487395357984777313706700097042134230762661450999704110619197333569629407490659879645329593601298541469691398297480825261804991617078447965136971598847624523509832337561367419324636435846191530174154646745219074345778970731658492341270577137887034228933273534447372059737338350562814420201902889742570015115705116337377959218923225041932067810827234206099793843379712355844961305991271224182103626193516126677951457929134188043883789850624618724448298648244897497129870255075700838260191968847920232800017018743351108207261760086142294699465703046461418819628627643970902418767978829254342790243369658903159867134862616838400899862147770450740327016313622303029316621572219198547869206004697575945776632301262838564920928803793605731206125931078335244524837267171828406159928236658821208244577137993858519879468028655773117120320898507809064411483560098386053609947210505045805994980923736022790721308577647954287856272128868193582166676636536212113339670928275221029102498778999346519652095220236960739074997438836941893638063844617810215939668048257099605601763828622148600590776767525848797803211512495120423757517045458785274391677547713577785149297774242585667563751858936341648567584379182879445076183675654201429358635234203112967416198625393809356595121132632196215443001165551177459563222137573903845664089130261851526925025986993326722878419758784947083336252794487146631247089891757111816623855476007619015430208816367162075518223911635224914943212217834776522205066694525646016393784609399658750247684065606345941782559347123488412980253320566221026814110972661558464829104099640678371172696523284164776005035320011603482293351621633345137162683877103677937013873521265862972761741154353528455794299087672426413152865221999752716515113469786918185574527933670647445712649171112016283050745029603949173832390887539036264617327309886399041301036821308858572010865351573650024538902011670409904807213005527788018697400775313673002112986744746806475642251291933394021086981817266275471175262658246154558755403795191220403086580847791916887856858752186581747624401607809628920627822249912784634715147327631429436404514814361617697413875622666640051950111674664540356388193650937021540239789093694480653324813923927337016671072127237837110354984187246360012066240247622586956236607867474576245963479143261266785678611099856863334126221559133679021941460603054841080084130598488948739029464870205650314015853734487904826406657906839028450910217916482013730993618803997922647209990716084031773311769995880177420874083022733540720673974530631522711002076235708876759361365170046447481847925678205439297752473280136759851167586322213631957075512932417820736317857209907570729267136221421109061069810743229614394209486134853212162154856938142118220863396839357672694897879524071526539505063559312124240415530094913846947187468172165415568102416540669729888623136362051313695755610189156288666070284456051116785929994542546321102953748444702816235288755417874571982931194605144631218021588395879716043494861766401195614254018485146099687842318613414554759914502093449814636590224727600763997932844700840384142554956162481127384096221252421757720982364475335362199851130387404523809739723470846198959931134770681810104791737465274739365657123437561589477440219013909966538252442191599614640416146570748142161126006118031930243440480455537889008262349752395866613381688116158683618184552146846129181022324332106494789723438755912960267950722701266476791389159031281397053943974930062311814212944961717533035368499528840174745735636568907881921439932391429839928041178701631069970381986491969366072528168899491153064316178465947513365964328413284726316066473472053099852239981457022515745872445396618964667515375864836322277378799531636562288832958776241286850337872730700793200574315046207529584875121588702402935607642473296874193570503096224487007507664562142745029989581358909615104031537584294139281900208734694357573115876686257910752596857619745208692345895042261661864046167456726902795585737388750869359559115710176794905735639575817946532001510987669859668347555922465992106268646071103556907042434219229608951265763434559934776048926849599565917405968462760876024519992416537321503149529238872130411231288836772600700102470637259038530813208451577818020977507675487769481680730218344495047483269887492670500370730401599831356916193630859164191763677821395605817679276229124880489782022027957015106043208952236878952403275427209319102766154171941331603889647808055795167930257927739103213063928927912662293946845874482370326075917015955038694429648764681483916307787787461462983149696945282413654966386092577529473259320312564665461535495168590409411852580529600958174378201259191511557661500944757406767806161285495113247701035811569602532362460869943873469026239745653262681466596399328843116318484328177153852936974834436382980055955843473319102158037214292648796544701976934170799743879957722034937158296847157446524275645658102240130980841524992315145160593914258237849775626177643301395822317232851479302525064849778920366958932633675162324264449478207687397370355233423376065356846322786309191732181765643180686824517901962941460172278009167299059450810981725646864586710317476707912195404081548715550684409201215467961110025474145262201743255442635356552746259840828443317583205865519452590932213785809441411801205184941896822974065483887933377132242260475148306405496461756361510090176183928106242179283231292929514557246789581954654804779145114319087208524847704441022522344859930457558651757164731984508063678735298936021112883364268615659044101897733401463488130754458197165002156508723902877208104441595926885809338037243753576509414841758749870551330991605598827603883671689783988183102613084138154340521345878995989987323106576743628844478139312768012396637888092904658197198248561350969801601982475445455040137952983470428039618035464847003921084637909019616026969029831400709689935375872932551408552871888685175519980161665386941229860830718701879693672435551283854147080060941837853301991569465149798746940183113312990551890598418951419749422131648355507567192926657214995719382398338476306904552883173772504847142135348252706103021515482531308131644510163375177858739041274101163919399548943809909582609765444035138305298630170499710697940423147996355600779108982777765839780459941101591932292102111640118015192623098707442571469817372378028527814005560419044842635538829837245826479048922260199712424146089634918106073657155509316389899567750915387134963531548161191541380642342262922575118662158087120423026255478897865476204141078262341063104449665822872197485842156029616324250785702550451948304651534490623593716361746727168476511300049623652889305351828352144572355997742386474570462807887474175365391894913535955882497949824565826809439289713697388318686049064842679843119290928295876689832276382091901385368394095483144019469214926612043432418036458852383092986424147349506480116960359869349483880371549761511177897237866883544988692432366021319810036393328149671685930986345505593299505374051914882609724362693614824491629234587703680900267357699224575181266267091499011992474356434843428315582200052322882883269247000221121460023105276881845531286238059126073646317032686525959769849885223422595076926502649437846004060803866195858744098320308867190787402829417082862832112715128633103993430261456765330099383792698950946459456270956957920216995620409541980354254685957515337400051233833223634548502608776428925820292607449414450811712937622155587295025958372543419976046265721461466101649821585654875038415023755426909392583911559880224717763888404704946421190128895657303408782026370455086854114152352613086950609180049508709405572204594079149108102134574886163378617548318996027157183397537046443412576381136320360702652891555846431562136657916798800730055388557537873736605074942676158920364904246151340849672483451559538400912166003576228206406810893759077449888060325384593115610368653532097666459043107668593395064226208464691248338564349969705807930125748795886625882962464002358330136150052771704175901481406150602978547480610943820434026289382955749548230800779548219104838892639957443669096874231204024018329927496421791828088689299906114409403012404437263571425322229409017432097538703287636186802760276106420643398984722655644348647869735389407687611137782992250413043401302441424663603645067600491543586485024566833970933673642973070966728102574372422483494060918001362384316537265051567877761748778852613670302059843528442523584262523419081855515059643787259456026805586517902326529063225683322312444851070855413615954034245547703745204725032937841107863193946958715905393321887521342534728557148267741467349278300153050122299558352074908953556156532391264960047774632526645164631798596712405774647862223247608484167371956768209396289956724104953609750948796442209406584899301518555906560189555681820824787700517307553802877213546189884714568705298390270954355413522335613770664533812879375438461613596743080052196324949902195730893759338941520584133471693396717236039912127438893695708735845041223594809008236812125637552042562670500564089905189746503251711461861462555216310727535889982729432694151333754310043870535948664645161230000758835018907245824927504122022966117789168593525661970563988212595072163823163099856107504156636271805069425303318902282861073973134068729722748232603867205532720654826890279318750364553068010959401411262896963534548757254480877261339967225688149015267299179297488581721550697397961107665084220336319469509563007555294643990731708790334024184705804961124227393109791732907962698747277547887791484411593679565385583438242935728663850964372980921091560263971786314643927363808580517137812493405665587995098394739651559819992749997925123349213100284015817164830085533309731078814757288370032679697379944209940752822312955047846882018411851547212347970972164690181641460500710214610964196147079943817733801917226619153178443227744297640228120738986670394232792131767327337489730074547380002827462851432317354866764382419651508541485196813912940008346418506953901663764759106003072417833635696741391370214527566569349283913655246474905773877623669020163986434136514565051034138757459857713707046013367066735192213872280106341176684089759800413392363126184677169613762421638847237263017878739152177732760820041945254138249186931393862930633440965266312719631833888060432835660029260810810556290545992388294034635146786972149033984014713863389243406385310110171816497077939053871426758556058854384136868115969224373010749152001812144677732597289304287131847885719471991634381740806909393477249114646556649385058809848503664986514778642525661174758630766155941656108428012468580052541546964514782658949095619283239854915922945790940229259204313469042782023013032883052570707530006767536282139338725253044491152478055944593741456669867003201921660007138555968927827137087721973627073397830567057656521778496567522129421322586836671654952496952637728953915521332291374800851186721344333777345074986490064686062875323323562292425609585763742025823892242591782395119429901648023315441612293344874559670441249415793375349031060746379225310794324801416322842654969664025445327021022823506650190820360470173929642010818229306829363862502985798018259478977736350821252754080555727041863085667191449783747253150583311956417857892979906120397076569595104723526198968887461563919158068665910958380099092813224931150246031697504880989879974140114123297268350909150357060806224230506238224902133951267968360359401902847721898077885633669655748266754749632904661682346918546588165537826043557304632485484305633593109802891237066782867174075507086485849256383690081093056080871475595869349257955068728157910682877731720582270034912688683714676093025335685557189559875392435093923299214032520234573485262825212899607836584164785573046816560904746991796999080435772642018302481342235101111742388192811413741461047467092360147771606505469885343571446947749549429433315982836341949080616040243978443412204506800522622299788967722997716275065028177786588290857884754199743546005408424535356462395534876877575669863140161506340186922464194875964976085333900300587233360132289470082623660895644597702939878826736118618055404995577658068260905639359859084547254378819633166311118079538800189442874904152222848321689358629394132943332005707851930635739981791167124193762453690777856807781957523775853936823500222471349157460325666280759410690529727318481151918942395281936328038847029340446351453939975295784583448817149493404292521468673695834849758619660635403682418524669993878338387953574017639464963326471863169516859125154455217627183732004950616396076341706682037999325516635407009473551097883738661608440610046220775084652993914571757394834573790482330301109597786265187303464027141862892357443274839691932536163835987072594364595843886870902269940262771460890040305403226285445477624825814017309494157935168806274923582429843137013898818955763406736130269719175570172017326384656283323129975262284492864138278188252260561509459134252682866326366660195992257743348406170974712392791408948179897789665132870917085924476009824394552938843530691433397498009687063429293312940113062860969956067058509567319343610740488472633399442134371707606795601053570683880735334483554495330185984192132570874878062324618766955953803739372712204525622367198859005528499304263336912810162055727818295875454436061454377601931663337697605677228573011719192513450295658731912374205670350946078973843444316443348877087378808523505129139831774205064697559178643374718515762803078931532654219271150384196027825446749413080117662768730345028955956137141669130746328025892744614021137518009170895808862425164579741314674138188564422907584304677990610973908235172833289790179295684333745738547657575659456760561480279229870772359534866985595045453577954673230685058238387956376461629758787489597303361285382508408538266936617117760301721282622488251124946542946889351369579517372075744899078975402839554256482603171959401685769883425506111679723729890038614282432620319591323362770735098760315257122023153452698446087185684974560805989856119999760388120305362298320418433480175183925721911079041128412499193064447667757291688259226161088778262940376734393239785520047735856927945195074583961852921813385581369812038472463304657525449073468851932028902454718885039015916144230468450756244258484121007784916134763693366336331274154529657314603747194587469844394713496134541102674448092966747448977291929659147405666695637450638957404502866294480452143456764197861138082621451461296588465367725740057880227562925174006387100474759601189521642166313001200160969461795796088025826710378860972265748111746645765319671504506830957014656558470102601360825261139693810106367468499564105909216423021731257540191998280342946438529354312102033131457699998404313738003323829985192047564306342594521878448892165234079216015396058235043535902409785617600572176358904341381289888703468044677150742368349491402943419626900220208546077310042425200868941272998910381261079910282100940197822858459251295068626207708377792441539436832205663299378281197620528184149983676495971872200944804447603415638623323356497458309222389753566953584653901908311763160069571289339974970040582340071814380695978323098577630932963482436298719203243379741379487873974628313114723913805316257538043709755356521085020662187459705048866660876653797577958546285402100414146593995489918684469785326113595570175709618844673327443085675093765318798610105496797385252694285804522053636490585108616487714991706027011453733805923773763631329776621186927513870366034871903737553412592297323135910365839615206841834072294612510104908352789802614239062776300052599569135246218234917031020014576620304909504238325954866206777705903956727682160526700558735583393162125002407026771115548621519994232460193801180943913466313660272948942285327833387984238403085217881384809171201787382468606735170631678822328440483617441901159068007663323234321977918064672345384416453364147268100153697700411789678499578625273897904916618848375462306132976066925511479388710773219157510784735903722696706683327136800034977666544115339350814306455349665888132609622771970536572192509690724242960054577904613940128706411463526330464743902506928672279447546575395612611735670984580734692349345131095668564568962314039203744836239079823082928280430570750752728662322423291526291355487959385612852954983521869126142154271577947031319404579722700051186193287641804111932535380007275269806871616936514252795391750200100757345166244188552555277369856038369276537130166283389140358835278622223809381973927436763446648764575357448858675185539887858214560229513693378691848296964002918025023258067191478612186166445396490763878286604459212607460441243319341085574166948354569604508178914412272401381752039593275822406065136171308176652547851674109947525944410885910038196849021406127517737196049318175781163329920001335453615617656503575088976158589065770749500700791936550556645497816906942314475889870819956511889831519057609347753486552765362398225736346976373857740034406506892821336505722142463232434325452461778463947468685578774487688166605247723782775797747452825057500426247170637738493821810527706317457365762246547924104883988798468795958430454483304308875719904578087550559543590715056483587822685474760674687649305785880874099072870699706698731249192755071384514351123068483365110864976043605680358368826656900061674578776243795461466226338218951520366425052844433515327186243396174590601833595945359252583972745625736647019825615863990255952474177847020896158321628314955500009732120923720315708995239360111308765936021368883777620394116460088944415335114969596058929426878213215400266406168204651544791807355433814260866611551113525229065390114109474784643042319038309738411263249337758106289905545383138738166816134333712513126087175871606470015141546486854617771112468403058138799640352801511929499757415379496586785818495706640165358414377499997140885725933292675188799391990393714597067402449619584154347789238667997494516625573020231201177472114524170885203628688444330274984614375310387938667567927122511234264688497610898602894935091887669233471485025955202085665495860244749086344336541497948640729989192135107892889354229092159761327189613113327622330982587360742855869494105004858841362523803437111942975942351181552931482665672210195715300659368735110763841675538289318269179405990428914932895902830629777749344652738636452594098651442112412610166998530187255182484887710672243674934236960523500043408845773068187969556204914256821710036946082805539220180277325184401970141408914707551014076443013571911222608864847077525742468208564438979987897776396135854135740234861606804470196741521792268780634226932585801130475098377549705828681176001449579126586317264755816762463896989274434131878978358435526735296066931409918347256986770044820554177242189534222985115012689315841109260773783390294912289219259050971207669106216014381385726759194833059957175425636324845379127387085139536730347217663278436305488905873610580033982324108509578331129691781789445100014868235438348906894252105372424740965076604543990213483055553642414642804236714448683657816781842817685514521099951457603895536070229665052455470771838617283986476030504661212605617974819636257749390645745434145063687271745718783968630067688478907112188305670937667600939538932944613850682140452278100795262876707158563618113391990063124802699107689655321275642902830381245951254352006454160905550585609858345274922927435458243931950271214995193806676300062896420343159438577537922095326861091477074676593251257422026641501673091820371142276407705985883667981559347124238203157294923946321761173181267531892635856232111165297580618629455826776236180505551108672265901346967803523639719331389092629527542697067762797723360100759990146291781315941410371241183874718315344671035260646765138492337473509954740969639631108533240033602000387787292557207127500744290980541216673410634710710742256303184945396769348891299545370140616466179961468816533570947131984102856727409556776780091853744037390050523434559529385816152056476287593715899727914028768483772365113425349451312724618822270620683174529536579816738758635313145339721023099418730724851998536139748725010418281614864881089819312740282685977540606058480375422537916424923653913368392273250562244164551105930987413704679917005358119239663457939071964844523045798026456812673654915812280021377906279084583981241890637761846721465389142168135643899317816758883740170643177132621700049372559380965604332175300949132840062128567711633339325757888057934066573690538790125156027154283012295418289313027009873142685864566371531152411101550868725780445887699371527554991803169607818153172123589510284011531530164110459720703588609328599471511477830382927194426011474735331270016354863351224276573623714537494289275770715779761870735879268314839834839816133699607656979089103798831284978994966359856495789758694218972829090493597344394304241698490436442549833262646992825583356312895967820562341638451161486720456176093577937147208411958276869426432334152463609916590970208841860444143084981995320673317266073876604625246334354201354645045972108566517099199259193226708584902047467591436376384440034285509977439639681942886692660860403306521566494822223871214180552803553919570444823645253946140378111038046553073248362049792450915298186151683346009281117178046348413098248807021330736803641136155822631845366459976441937466547832448077205677489931090866627895660359998806174664244677432282004576697697436414804303778082604102728767505002837880928454048550520256124646238951928908336861279056064386301729396811168550064187752244266903371344772101452451643011749149509905826479559468402791640136316546532282650044410833130765266808195778848716239905954019514074204616488785388489175797259029955489564656310668305346869805100865530118569255663100233003158573504441515246671316507066765372545398279893190589807766433678877607580916448041771855154453075536575095068064868714998828060602135322675922257369294856095844418869715524593208793116184063206015057534367926594271471176731696129383948326014070875249916482851909737850245827983054830904854722429329690329369763884180029927638752160525395844156539997205528943816177454573573078092146343472427833416628704258363460359859693189877286090977218254887266203672054314469645599063353561241670833464186844818266812923867225089295401583770206035407818313945439178412114492276414424130587677836431809224006903081592577250768545980487484388599280914316236932197268319526962452498996764455063001242525995880027273052996283656835302446500501087228683570273986880209346386708719358772976093494141272553192447133764355401853354022944938862499832114548674907173462367949081300387970389762933681827734704772556665359522707346855627362762326924020900504599737314320291581210857493508869187889760772911107528511247117745372505885597177686835401286344329375840269283779295826416369934264213483196322317760006651983721140420226520874410491768149376499868220530606040859115349993648365276519029236251523481212861275204891847730236831762277812979283774718460008603856677290149686563069531818223553976355033499165342449474616017773436566040055570324655503216502485675258178815947343053774601556087540297923080500646587736450647522589918770332871312991126499325390386699954967578914914482233929575158382880188492305382783074668165096177181553779186352957191899123549062158074482289145672333386778174408648044596344075395515069867681099260264649107998201292610043899677198055374555210890319784889823261596358501997875485366361605819810638335008419642404031542146722942194250304476779799239855490630178690227734966741477019026940351702337468394440946180784062925267656860121826361088036119203907324239479630276787992787754351298611329770640164353126630087793651881781653965675123787312566622319231405041526977067070559634973381615892836919177817375966524228372011344519929489857592989869565104894961419998123307995658954288763150092186342295938494013666865643398923804037705686370125245732705732214851584014670035418217354044465034217745247967792058349140156873935478342802650765740807969549561493080515879974515681179270048544927414901920817548166220421239188562451072644701471327662291253499807970446900250568165966423329964045831385460936152073873947503709059872973088498084950464496267102367854501563231417359107604376054655350496413382265512691691339602699715895666402043265302660666157132220469844986207454523892459613941313154610352586789386687784998585000691544312325106366398280466444755431552218732357602082462310764841857236617518637060784145084274234674147084428943411657587950914142295358941029512965920684789721829228064981658951846745334387048761608624281354566006990996529931624306706316100053110180754234338408683486200766963399672726900258691071168815436682759838705993935114036448822102628844372611338489748178801025301180636693661281859211405265724352277990025688925608996420114586944316347705428409756745439719627523606627015634855581392137699182038658527753057066503686756403974191486484232785660531050539503025445830287480383907708504158787877833037841573895225711867720409154484272077417338903562052377541248133620045227338403084482262657308466220789914112068095535620872786104235415860763243073900287764478452798842258006623197086766912347420888593709410453022181265023582766091237433016860642732357305079015056982805790267563548088966471335499775304799787236264676192603908269823222651361175504381107386953063087708427432811230236378675031375502974304820268043379314839167385141639009628762476088774814196926704066547722791355266813948130514240590117729371170130246478058565122069819240420299748219428950546885466124960019048095164281640123180608845417047450445902872873738530553349026751627957788579873924642201385530539967856089202647901551819636738275376022785465222535274132622739712076312869035300513267292632525278495193070132139822056647558090694852110606907712010581595501431750145935600727749759769681602901930464150194046201815740351998654047916636461156710488125222187065887739648535657426945419070311585896093770622985607270697221194868113674346305224143329512895364464451149913723185335028764195219917938759577315578014781947169156597836773293679426396352499567936871011573474866997459854227674304081734799006720335747044125026961649106809104955486405468568140508220696971372688261836404283111514847703712878788450757748456607517266576973968550294032942079197249579348027233432157225813314831972538005614816621790307765528960309994218158274095392137786441645129161664103649818912455765294332245454347125953769354978046535286708488288824839635368294574660927364307166270797226615774853782541224517692961104011191979509180838180354391423193815212370998445337090308737333758022831052300774863249093684943831385058702809180555522949552336236124638758673689179377250239528876297015853588698419627664455825423503497771401488610425108389240602584022250438358751089303123983684635660149531669860724869626983773380995556396306664565045595214540546779831565564022140976944274286847161460854978243053646574019322096267244591491748025851303799686113831305040354731053212731682028446906390379550789725431768632662872371732663421192070247216752834994718697210058459301656611522155950937832883855078397629298662422023285818460957252989863723342867661704033584919701268653112851576636896150756246805508497311487459501250045527292375462269037350944030841884966429992117356502025284332888898369056359869676182919349536951296910166589716971461115985475218653916225772195096751448525162361496281700575215319738179891228491023677526863777786312583694362796383510923012629047100376619211709664953356301382643669567556665863775972976819885016708977970500298805992807680492056447466781855605049193348588036947009106445343668224712621291037647927644086101133347103030694025266336321460457000893868169598997082972489509845300570467563788020835899801870819944191214866078431438048705597347269163203255537434781408306626447936754405595479122094775787078451119480973912826803177779272333216489855520440305791490945513506262542877128506104456039716819311110717007756823502768680982343083831656473822069394491982393593484105450433551192617446792019838174556178545853776888280387299248316545579840804876103114840455815505808608940298681153069290318743579884975929587065591230617273610369098029885963345945402455785331934311798484654045278458849932377672626358289254170340548587504199715495590662595661390659792008239537780124616772646582372336087320909019066799886956675177687744981490859245584564104666212045857250969195601587566450999433414085330593558174204833132312002257988806555649221617540100120462367519671806660068281909435383531070062043677559730929059684946953793302106325738406167913833381203373177387121598366560023072030886631284783270523669467848795672576215822716299950245205815192471708306403364949214991871279738505902866375775218643811363816798338260542645910881978095760017553547397293241106439544911996126642485285525029689582319785649981826964238121023494020119831632487567725180019453224797269109282736100555588133284734890349807259003309453491353425622881251718463880020276554503952008618020203576400838068539684090330364701053827449591094675558851932042163410473789534970622005426812094401392385774403904951949577401874421416241538298067287419432478853612149509716289964042532180444669662880322189125608036292532084924456300393266161045153783433967462199202508668443310059936895947407779386203751810057996000059435128805254639601868739308598057504890676885482352066389463435409667706931424440924969643720468328849607817914762611704012995542844355391346383248796594207685176760726117682029801530967242667660750769253410653711842965702101579092291257152491403457470745868690619252758992228961732045101790453310496733678396553261329705057771907942383494341746410756281569561023298223700756366153551705255173818638334175208187673878805533594917088358948393766291334753185233208625053279318096340061168880672885999637422635265341884265272297515717557401251864428472076736120216869062447747430222011373509261732073596197809776362318287815214204197800426827458316674741255130001363520985156536443304572862297477309013926292024445187944233298397039791554298971592245750819615392609636832978216271643826345660629705009688206552897304613708283650892597454524337227209991750794862104870909818368465676436708278872182980564067397492505249648426744984675291027794282211433009153127205016600924082828695447923029385627502321825924759767750093116924046039451343868100778609647341594916255234249694666321567901877609715424286913935164083306544893843186173822505551831572270442106593581383155033912599361590176373971165938198569486001351990412617105241762541349756157144223174156189818644802602396047409627709845307559213323795208454615901389508026900718873877150989678824860630272032545454002857424291488551323596538521293588191496256033271939400791308007024356419760365381881556028799571724207830516040802523984649026475699276044072379994661696206974825652062794422575520369331753645557606060297340061105690316599609023580169797472425676753475305341633630533147669134837272451440798925258428972947498898768564592985851594616073951041329907311159798375574672993913371306267674700214284068132337813851961080419675401698385814352556366063699703939379005979610434467062487079807222128228618852652337010549485925515990055507369033505145961403605809666707129789709412117282468790112490140607888394545711136184026707203108410291528628217906936400126114600762649289685068405735295602411222228474675041317159729844280699879280768755756702255070468983250053987899675819411862474867138390785886926548073120183630071578154116370136444374425037204008295616876591193170646391416472127299226238506797421805861656365298948681882326861627897484254384954778963574324208696499302360337502039700423206546256056763773469140886411110728333039843877744708954836502596457781833396219884816800280659685816565765048407219605742051080630050049900941239019826081367622820808999654055212865562928912703128683825411677365482187386247665620121840458900445318555739825740402959259301832229892476333762764941056742850785113863809473648106134626631108838873969983672213730211341676819909237539236876302956639915414312639744612101962559553094373480160158778090071458764790756562864797791172354607197201220594939493046570508205646414298525850716138001571208432989877729539097788429621915118656257476212211373590366880954500140053634211686788010186484288419313358831452708567629023209132834947387839598745218384098084079917492488194889618566629122583691961972717994447875205363783356103415246900524988256854669560464148873700951394225918687855270949763162818942789312839334697824997886750682562585031776824979727581212522956982264674918696949350419505126710351756332669309330874142819744974728427111870508816832408205305218458577787071608490689974281317725575230587878160467686812922986236170362454023453790411908441247334152841859539198391257074519391914706699085758305854034301448739856345393545710208296300803093052831471031569552342053049852734422874677298143753751859326468440593312273050425049362801274950547347121718385427860339862737927985491470513676890257452309566132616103810301082760155306940085366868658612049311264025900719527706277885168882510866304966807152874178196485834850413451435200912744028960431453355408217826934502478001064813961346848786070592167511454823133210679104911767327735302630946656924194758455177635801597247834668598474133650815872500309042423484903332739227033318014783661585471292408197419290912639396829863655897539495946726494735006351106762568752384307784045790482341848618834908644960602548925620251721137340669076730796744739115579713090078386696545155239006016215873442284418997015695681841504667307287438667429578703798427304309234612393829235550034014939870293886712874092316093416722754254022520884120423077635741801610450218651513885314185256867747863247733086486576865452892880787057417333431829235921190218893170061428388908857559150351389288947993407766974102481296387272417923316944965720618784009788529275794184817409707097416895677219444172388379380580145599574352193559655799311148331715310860447014277248189904026712570257780486261734325914194521613776294701824076447934014252911866240252022554044725599227961913955335340519325195448889417141592514956307220556336290504004372819976625115393237184628211576449566747348877641079244367422395855949121314869628727245415130730682563703704685978064000836576150802720920976396694653010929706684639171607818034524719182626607187606637715782749109441332092953088453081071463628841067431617924578164288508567569694479221495126516297375369142515619674043900604245421301822715209098426979381106044470825119683871168237604615490853555157559754620323738780030119492693038917340490404529678950634907593901160526266955480704669460251696072271153634252327580526895167229999768484341376319655633979202376652227034172670499126037995328181627948803904243827320197147379458460204263588655874064771770118154683757293592875259025376542019512356396252253646238366438720985739895663950495382807933667828910997475378027924091175788655401251141330164624005808767149401974422903543419365875219576369274382236227326699720118726268230294101926841696211076074177938543508784512548621443323744435754574528932483001166499768972457377161826778314153096088249985870234518532467920683485092720582306514447736849166636591878636037080916957193626971663306233211510332461665381177201035379605992111300138956084529229226221864759707621754083966825094494987741026739623166716371068029579013721894067277801859721721824400317089285094610912558844638166610375652714020750640373667931939958669174837542915467826374481065187271231331645544311729542006600733740624772309086341886217335353828700143111136625970008256956142495688502957635335635617021045806961124150739959509152057884918778622994874822267515680280466632575163865068189269559947258402343384752330652732943276099623944490743419035159948353974697051278662144448415909218695800971673875629316025938150934768974471206810496635779390520242254231508511001333794100962137344137567563750888613551001935430280164694459969956335503738772261646932959503815429585184575452396184965454992822752705739780325784853392206373589404752315975624334582792234364716054659181569137476480224878225807569361074515621923802424191879934563659923925063734718681584917722363551966977999487769985174883136969079701110160769782312249682805104897608870825857324509525838679215768883860825051073127846353104767978543240014235740598717860818548154974423812629590815337220573294157386734580615046873653035828068917490551616182849546070862178899793373105365130382527737946902188785872216592885670723015798965739810240927964639220372991956654128934874158001149330349463811046885905833173950340626792912262969695483006368369712168081900405184119793426835689175409178734428328525802459090446584923610357857179709182971155791265029471953753405654770965963357869268903769119366295919292635916739840820369303188748120985661783279479986469675548303443345723976597333168627650759571442900164274726245240118045187301625292826805050537330810375771486889001169998063144325222419679018505004019658852891931710795309033348204129459713687061944811417174921172295541867391727160607180751575610001996546250928196430246275425473779483144371941341050911789516330313857919368042327332840486004503601542242165499260446660767216085753487303218571289257373937253318553817496924339307626553049466073705041679215363077483115146305132572260205796410912628347926866847655268490035620318773073330583769591517057581974876719795241702261436927103116035236312412512826989742838476043261677325613178078203035438941499793456554973503811153708840711771548649535207806113770272767111118364369282299427033932037159085069668036053423452643731389053165268203358240622894339405631106618794573931579618362385499592123493590447390720063656724835052810872918447047300128795963181299681797686237371296717856761015265136280466274671427587113081997285172243246491732277061774215253819907388704707900838017131499019371184740971204183901407775457235110845388897332945676136216541248400963215238677520855538942411526260873626313586144146841030949550766162317602177355108431740790952300680912658138193793628585601554190458506592271267717091413275577797654688018589539870287414366090351370235824902789492895149004388550483909546123340151238257394559569375652614704859467647124372352556539725520177549627686737336210036051661871129330113951198547384357117138935662986701767687995228683783477536981112180906553423455159557140926968983914430719431967572238654205254897900839605337769600260868794640670145776818121486212552857118941581590011178345139046789662426457214444305474662647665212634437815414714432233713720897594352183508815725255029174778148558570976968180528205100075894550375897298815095735761243722815412923709759453913890029649235511395524298273905617202611490482378308998006580254589050368750584903288758580434397343801704318593857560048745920470670085642452086696926465148969431139833458609067081266001983423387962135634429778887403167389928841010450264034560494099809432914352165695421875115947987542517996040865677976305066462345416267042705750240679096479926327027303730892222096396087870785728146242807191959840051420782178690577522514615775978442761433811118919705472177767764455433819190864170202121171369451811365394389373429399469734702335058477139979912703548343598673923193403478999113637207292819220586993926244698239592098011741410553120969872677642078479630873954236200515919505906472561144385219221770110116791559477316611258484830603581297261202139639523437343624821138334964279590155367795572319041925382266260769866784481823651920453991973502599344004737478838073569673597631986483743543567389052731358361960201045789731088623450481201171754007413091029017701382514102306227249381650278713992616942249464909537570748209253434363720782686745329016706771383142119717030640256464319349475130510911558097511697527893697128134773730326798268424818717960700386116782469912324432219491730798727820899365098573376498503413661070438286272524397579692339716462074239995114136158874584271078366215379518705116543747640709515278030198194405321687923960848994701233794404242704480959355693507042924158368109629435883360096610572788320873852301212409640411010353587021637906078660654663490955039702927556735761459108693013508541811396494732253406612142743134478507789575895644680543152797386611641013691396352600983406059451591930011993644713252467989845861587779049624517368231131447102796342017790107668029378779424143655169502028469492519711566419547418018373618225188687168411252662605865580487479293875868826186391121548089951239825447054663086375606873780824886510738349373543758057650377610607170634997676598199955861127764212396075094759503027896776756649079959420597192400978268152227707155371300406237523420026302939402119638016217508578234976315141548976371036489591390132222808945970099974989021855397211855822331056355708170209292907808118410488476710576221470403125163111107535925012257765026754208600120692895593902433663049267316538579558739447572737182056307076170929365317123511273219106915803815064981910061894802296206817246803243977465509287622058164944427377301025362187735073627917932070151660336271941233326679319677716914268834735672817631922617967913378682569340954438261103719215615976874374341609027196493491164850712124856300699691780827954351596694711766401578638885270469561749522362710261831462323630912198942938334237714978697661543769934195135762932898497292299974297978577237443140114431957372514967815140743231290337548730178345756423281576284631501244467297560540554326453326858936555843755789785208821135362318597486769356654301633654013322781439554374575931688602730659495198620224926299881689957395110021509037176121017341341497735950404171668152079028861885273434908304885213953115377324968240499144758456021831039700314692603299043994966629471467577947106232015136019363366822336636813617816120698241667829634341658058489771377145402620706974416957614732781143432432747511878556348701417127488975547829074572089055538138552701529270856447893076923640974541741085827460014756822672065028708732326266681796573126450578294350461191009032566678421131223567436836492146158949795797394457196786014126736578572044352761960464592170173605694581378543870919253535014515875387788886136736286164160903013224668678850773947943011599585331333822674523717861864134784434453530473481419829519884987424906811907818655326831932589575676839843237877371780337530260445075973648852136789738595056739488384989893203701607404528610350396133375015227750796341347121756523652225999331927568322945650092331456717679679245410381514977028899468308320134851165706482636498258661348962902498682323989687421336431897739489889999614053031718201260638734623502560032402300049341843034697211663518869110292438684287106470541848744441246495232231614615820257736732986225769517755170689464654435891800361622720211811849784066534494465805269239789387434335657540753018407094226218737968745576642283636714665823833105097829069281725104617820577934168000399070202565214517386329444310115299040611305714147223812283557071603455195557701112211634146469940983037605952966603701747461387490279103834811518863796242244535765893510550445441297954920383416794763209355554603248131121802519390605627408844796233029781941220410797113222763325188286655627450961049620174115479325484752960301373461078387103683627344733005406214138497342553287733592029636832095152873534203129614218147707708893027058592686453664937024195386507455486242566097847727156347871848114753548086193867885842835247863774428223416236930121941326243456589124947653226395162503644294259276259002976133959800818460017915660401175942489933900795246242318870211329642172750352849799442204222371738508622550527870256216200706380479525447165029685397111201548681637156761481692439451090347896408668061085354282138831587511107148144820437747321503888522109674631089230414738355136882740514602517104809665756254844147166154602099479451679007285130347341614192116572721017052863283817884059436501517806332269920431951747943277749094313218035658201400757606699077378685071870016792361236832439477520914614155979073968905275829562530813353082285846674097644188087295653315384583837586565482065600591033146092112620633526270273535100011570089982918472227899442043557315573667152782529726674363035426115380094922565229001648156681516449078176150732413607536630669059576482549304037312051869490724828813988998354450177100794769158543548347166199488345770142797684996254242386387338682943303688376392773998610514630378563231763972493283974351135421318088913252376073534485811984008347762164328176962799560495694563073776209325799919393748307654857657384568797240620074565313918910442640252951379209358412659147800881896897058682117573579248072531752470990211561980498543679350687295104171639009846603247739735151231380354435835648051581625772895906448484860809553764625948909839728248355472580781804349725859305932642755391105652713837297778485164740051828536742584291054121258114730478202080689494726511713437897417278745733780443799710625580764289306213738225562029246070193971277590022401518969556624183545335858443555732767931113978086500670722517941254623483428857400909655231247934602655106424743119298811287357399822257106216639663626347239344922661207398336212682431931820327205006154721158710997961415524336743283433661458422770960403512709055531295796961193962871018972572723801997663539078848666921702052977962627617126583254053271148509395809064108082404497201042998094861087952215152965740351181012675083534606052590917730009679743862986418393097013431764337822827059101315772159754192760035608042367610050839208116979196267453383376773342570299842262609459277382618670169737838464197100277616902780692898240295346273238125175461890971865220096810405590670023864811305547649300709441669268173133998767803260744368782109828868899311685560819868743067189014508432422201008327174970832872696485080914958589712337779257343520825877755965600141370276064665322886519162447565446939491204999171363069721475805058566806124327469566648117851115070996198935663761236092167661433495727781397264744804123082347505929028279200384893776719761851559733785523043301731688070749967483796057857034829487040846586102363465683717220796196291696083602317489734943433885877857818301986525228003296124996772052111202039927639535217943752585864253524530243850427698005930885550407686929547380656171583362615672772302847180901371648732563761071172479609822055397833649112968419621327506742016472388309920512216478747827454028229189225356128326673903660912966406895339229820912601115619744908441100796067536135187843501571529233689144702998472585596169622770141980168506404928052283573258620727197666603969134507330468227732793292223299952015195754894775406479999968536191089485641562722181511449527292039731173211313680792935600702232219124721779541184212780027213923020750071561005879580586082161741163165802802831490686488529109188169182296633980373776145081930374318348386064717234467876891284356525364126694834366721230919597175597176603427493371794378894178589175752108088336484509663127181376716733951918968618025464227503466082055477996768749313270135210653819758881974252486179080256230724113786103808353611024489852313819852237640884060459656230589829780918199175826820044487438590416592971960358422571852355794501577198232336065537659190427236600004939005285806554587967957196581142510943017004240662543446106627627336098216042528995405453335937711341653391608326536645934865257318037187087336648301458453374005891723670824336503450100092388741772247240395592807267859296309529315897552657670327406563351229895171689598282174696121031340225784311912610281492223401440520878624503939164767711447417732787428377240317394832444092981042793511805382115345418965665514199108056913312970800406536837450124141022984136057449942827492503810847088344116456803348697934878250639709092949653396239574058514758152327640909900706846886562074091228091103292576538596270811776596016129012664258725720187347431959891555311661492661757222757731023173976084680581604045954761824837125661109766899616377582560235948004222149311333390120346894204510865361977929920957894822561321727978199037883699795369676864297893731189054421102477706376254181294557722847368957682445720240490334557155239339327374462740373890500552530356550189764003497340192239183754862243304385816666656876698283215148130616559987724818348006371095060937136655066747878732702493660782300825133678279103970041182796053520963077104091123827812021218791401142769835628875506610746947855294224060024623162079403718406179853427147069145316180255356629971512323309539659226197747180906499732068303129168250596171558504672644101954705055046906692726670316042411699812637679192812301940859379700834119496637803155242846888421868614541381829945054603870037063769364019069776942923347096019757463842362992980644870737888487841504264600187193406874862359771407256667460294356494560053610598788209439639230767450661035978754843386879527842912090828085222218944157263971723862626419963217534718846502361302673500973358554484026167515021375063362595000848868853046786737408053387868009999090670720426179340972344402248820159301343557093537064634541186980171817164273135922767672046482188414225783274184960024568134098368007138520660045873891405430341862875249275829372070284001610635364559428950550570242580819310581913942992464873219651042433155397453000090102872997997751754109226640851272993802492146452142691501773950166427841832220596048897902183052584241234580870700593156448535270699180288328610453677349173592752603845191313434795541256080053185251356113288811797082560274291390134529607996212739697051166600880315765307815061665678942113130744729204119847948088887933175441329366416381995187730375384681306772458181388245790612595907214430940517124759869196718209740800391397626826094140365904302899403930563534056753279721575921620116959362422316228559939067341924094238911236886271833910673405994921548066027283105670603249351409468760554996105966969965084667066952329302713772036746184227118825731492162419272445882770583420721526258820947769113122478239637963500576405122240218504989500731686339689860004354650459237327282723458269476308985301221565503624279137298243713647987848612907223720461978964736652164061770589599528666825905323739586976033919441796333801654387886462950474965040509677101426243154625176417669305975323565522430379562672169274553296483799699523867110540526486867937857053504556723772535887007589504005546233552933429028686840306961443708394497937731936159754175043514752259783959402642135834124305133490970842876054841839308396335432389012756976471573263660190798151431482217194992888673879039964959013535439344402761271121164385596395947117678543614661318799729236163922792193369113296870946459261928537982222224771582419437193901563858647346564362824872279748517106184796288295359725602511586581475222016454991568522161703168062780947075103059489386137571045641127812916127351892081506187539803549933314216200665163613811781683632754390103340717654260616948624682277761491642808707656090833461511892272455160629514361930548781646137934922878600577688056712654361265743282708181580294054597702877236333090614120797246011875946647646125429470478320056504753200061454157889752799313557214514835901546640962628817845103941895780220432939923183793616774530351107878725543472870059053078477207418696545548445766455518122406652257687078515397410543639165726887783953151637611296585495499506178363719212163635845339196000315316678177118189825563240613263247906834040274343191695717262183059643438517163633683340819580758665840269436421404736447154319596522449273471422011441850606379939487942771785658164193602800419033772258247697068577467396041154898917335272894580658494064964512929238887326637295590182593533712498991661390068610323030761449470516289230525609083928952945487730253271386248696803761316880188310032521084042600614986942386333088230065410523466772390207657069261294895147901377916674079008132913378851135271769824028618993102020540139116284024909170349226529174166381433357323480860511463678787290892848371341205317558105754313139420642346188880292636199273097443260521343442476489776725739015536491562062252649721597879093338467295498119875769660972415287935289148671429895490555643362687737085395000252925636385391107706533752669555053135670960350024023291255857605316069813576124982451983561859426861880697500022961433126632759883570479033098843048273991271829300425080871780149060277955204745861918836736513164208727318483574805089737882006618089595819001366605298961243940441089553327061824627528198870482448782629839199116253744490438431144797904104341449476013998335685059516246189584159175135557566747382614971396014066535634548256240951681639537558355465245525432829440062547120528247638398493970899205465785105474808346945830610389923978391370306725878199792642504219323456025004561230241771827135858264369188226866776730896768247490270244760082820160646012165925470065255703128725198856543391613610213115991572950700781452989445081321474925229623878259641537792021130927582449511941261494108637017853628993224336365341072422613644208708124767700346962278557943877247561665206088686363935438443934547004691836839083304052880140756129438509050578908324337328515343039469587181187680844111115722636547349615615328930266176281956858849128262042701124984675457299541511324425386586302173505466148391594276120868607871281637598633041542742436949857501596151879188716922022068051951979595938805373859692227180683869810581340391809118026544343414785059864231797704111275769822956963698747263838128483862421308997405859532513186575074598477594411323089856015714567219833232434256663853524332953242276603696049149475658576506696725354168711218697446316426914310064836624334758025361611401278853446465989701263928919364734816946989252428434136427143616363662936676857845165574275849441787348941932104024928801732538131710785607981525446656628192401149129412280822669051976777796141871631523480702988554992050823933103630879676707706475270848526266235495448897201345412123478088280079151993820052904438863559214743874928679156918998152117927436636487100190023757089167515693922697948295115953726720205092830821908762534803797897586313215891322594503196043127925609831607405495648265285683991537309626058281365466466683054734788893526175106882068242607853286459369234906967207052862876538221994003858943477304463227403860786331655252378045928191005613957855140777707529974765534072124187008018879264379305275333752468186726462859650297438632484215440110962355332995818037409800998735456116105475258385844503250651158430347063526651076701319544330518474955217465858547422021016198208024498384288835427595760707394305073331265811886545913355918044172733161334221691819613012862150502730135875139801236027437586078410171947053709673254498175708621482536267824263350907837410521583689887773319107352301806660313812579591734090049841033040834820504887693393486862224103643036527412026730719282619475870008933159555530201873797375462084759317420035465425732949924614359102313389200292448134133917060860842076890105526337517524614747232772382933105780003673307322656052828590275783586396397184719348242542596812813256594240541166793644066141637421370099571767184905581305243543159504286366248447072587934972423653360143170889646688813493846308677962758590363546208555422439388833313832646260326696060039457119881572142613144022907198825376426448665087174148006114870538301151238816422932262879883016470844278772894157744048642922230165923505374734510402019566441192597187909222257141216549534036665835715932636479519505328383406603536248274903476372828162904612355805528882950816322076171035795405429454688106124291132849991716844119674178657353893529299591917813117958408178331761677218981172773154907154981575281060762740607628984775086451887587949954819228559871526067626086222762843663652612543960151308879098056624398971806692488835681915442751732596592524093369040892860355980054406654159077573225383503179853461308544632523771141518317171112010496801593914562174106332251807639389770985733955943779916764311204699457135366350805704154979127114520496557349002805956283731319589739146299384567787364340194034494270004442534417291500140230282221954480692782064834872269843984456830304500240062232740566493939444130254502895820692499727995711858379192815402886352789334164900852379616612229422404898057184018816785380829921210580744805562042361863885658221191032465531929171887123707562969249410214780246522888689888363098729864053770507033520128539454617251620230222755971388018748723451690189045401297112886730010211998711452974188430455552104783862834071588818716065313459970054396389257279560834320846360092422102171551552924080912859869070074623173498532201451728054841967265184996433693791517254786562872289976144842010699854645178682172490208885936750288440239207373331474976653937453852119845892850894812298326493397660562456683509053284097297407115171921874067940551809133953968097969540078674276072164770763855097890760880946713089652104135289038414305285056551545930218207055721487808796651579305235901024296678014675845984171375341122896001787333215326431654622789642619692408580000428900335143255464424455710495172840462574510894727428567835585242302107770192729134024415419197460627190688521919183045717219400324564795777544306720657031816379365433459373449301754799426112838592142469606712790616572852135248338941063943174928049543867429863460677451544008081396075026661267597289275300971759389692329858194350913019215364495508219939891962810048566305077754910409858994069139813483934214474344354516921648899219959941866817936827907117583654899325738931666480948558001356125421501646741371389770885802439457650554351941002523753234943884649986846483644655579709348640745999279213593303940541479631753527997244366091834125321268264231667695091670606218086999713320289958069908038139985299744221411471058353940930374623397303392563931070302039539400867800475169251072464083047789796824096999811726974996945025483880512976022685946471170003216444536395513248311447683932471983076880235718072377589894716532736868377158258485795399892035565228826589026789952167386699914337668512513735869779302994352716310643962835154894667288678172230385611618438337372132369042232545991703900335038169272541678677078137020236373071803977050270423225521307024712537169247091895074954719415384196331185979382514696002288914465465396221275451249959185022429705510482339852797044895373290980899512804988132554919595101695276043774485824408446861024196172807257887014740662848497317953046483647933943737584216136258468933040847090466606575578310814625852154832489211870306183956234384778821310522371796583516903906260667904669204210538377997334778356486351985268176487618261063072160980095735630517385967650490444672163643626078931737953357873159451566178445413090335368517840298367073885922895606083006260465612750958016106360027249734375678647987400256684580860947812394671478800833554469244705746702778366030244444500449558837514655835351484187568199129382363163510904200156850839563337528325255754884804254946617758901181928618330222745018401687727458241829426029788722917511761753773124749742663462769046830602134087362135671465550006232322815703393822172596820463846818311266243765034792791074482293276065625894754283125244455966923561374266727334614920144477297777744950634218317954855714783199514758968483560314559056003124058633324095695753843720045707576980872643637908037496869162176016195596410776769462330788479000836690831845402253006635796558360992369115072197620294167611600267044329456642273974133332325036759140530268721534627581186005659220722352742271603115160817680629227353102454695675280340983948149752748940365307931482221845283644571471706373242138497687136244253645457415025835124399657869032512358207588982828860841482814945044626721718234057290454115071446168553319623277522349000436032640881037270019032594270519658524222291810504566322367150526030846339570049365968259497424355627534326933604786877116587648307206734676413996287294470730967187948212706697233643364000642664447196875180020244471544673798453918817860588053748496720314171271845897505262076633313859354323524909948834079056901714613306728273212489208252342124539511640061625533591240286599933794943805943301392310870958293722698229415620577788256357441201140107317288348216193692823162922622569569203031869258354828300724151883803145022377020766376129662324689529961755418411688631995395716545075777321745215347649040612606343381012217360886894802854921069123408911212727318863621226897110273221381024766052874333543468508121720284286239646336898695548195195789210402657191188244813492283869982842080285698497316896290748348390520912794091279577924476828229184193705718983653964725725954439604966318389112838842022790860845737341872528380057536104976878823773425173740592736289781101190986361898830122168951740575001695832094750999879766058760083507361568376197813409915538726530266942939065596603151049402184559181294863906589015541527158324154605338547379787241292925735093677780113312154060069978774516856606638978669993332651306046463814898141447551434750616751082969405644347312634451840557431699565597752379934111140472907360826035290446680944707919502907489982903306891271055742760630921195575295498035107364325012039249116371508874653494058525454123662945951615344713093323400219930650247075235681334750644713964583359428389402591191987063076662067403795576634548905962057986384231334206119254051986838001275241234284133994261817012710999829493397229841889325085356768509198473250961892590344060227233547870988816910722547516378649641960022628295362393156302215308792938117397201869072844041685411654955243254510429407059511662324405579410442474977872417674441103240868193604772492810616601134519325517479390117832020630183989726963823940000473206957231975875032736615999072220682986708034839748899250462919306770060878736587779891651804764450955315518036265359748660396004872269153267926657294643703721552211789710080495693773082573635271101845087841075149529884386503150742797965140037606878800619807831399340300272972192795570762402187985482257398712400112119729279954968404178872526113237761737965699272913709617761391221148535631667407843774599046562817554451991324512717760401007000634140672590358948842839458016730315334489426355583271047294018294256910533833842539990032240857153905274107423008807402841053455427191717757864870779031478346362646991875310573746409627890906836566353225322443537625853459053743874254130731254384218692399211491838077685496514551079855651801966142286616673228309326145858334711803183793714501118244367163199572279482140097916470483138511334979815584102242549293820493792416038610417296592347157424157952874260376843269002915855616208028969309096070079531211911852257865649529139388116722006404766065526259426848185165002908439045665230431730273144801129800069429059138659730624447316127320672160647804411938617113234127597781546048285647477553712268849444712443208199252685584170465740103219871823488967968142801781726046559788136069815147398638677409395260216819513165623080552554000409611409136052471831124793757458312469491990841462696984063201912088212410170022644880407554474950229179947469501475010864955588005875845593441794447279622000606742902224829133556873536433499144180549487497044205062360375125704031157265986051475834299604856042847722147904562804729982419174949849203558581232952396310375688451826852956856718809617539505196125850922152848081956228054434068243962043496361145788767089304580478994464771448204675752394753777456672417935679292159991539407683175126371910066067448794051835950732511742532240463347307135992915142505536277842434698173545558868732865843420391536803295489040740920893648458929450122871940308649828804817667425661624772425250776278313265934842607611379452679250848860898639530952338675766806324339325454509022618136077709365901449442695808992981824413461828763581337446203039414871566453110007298747732648207602609501164489784393029156958704462603178189669773277888469074207949375480931482712130205162184393869735423633407434491170847744765854083132177491474159381285550505076459428734338283699725294883737021644801884675680806180710564790907411173606009854337505630162860534876889376655528231969941291515949541896313427478750693302446011665116397424713262202738387866516366138747736919184322804932724320789057147944926034971797582252518038934952103925370257168983500471503119253104648700534249545289852247511095051062586061323826831628171047197557250089430315992449877260698925162338923284876310180975236023646644469131529753885461331815756038795180393292571520914033760028031407713788933146759231282363507210860389286618553566296829609992970824365424675190789934998979637584386206091055710662652166212919167632388607840992694999317003367013018043704387790609517126818042585208210532966789645205666786245872458679704717743938934596598233661720415121079862366882449855266979689268938739097961100284521844431582876039856374386239884068134125748734273784406833989330186675597244528679977894571763480200761001175956521309912857935761061257829317217243029635221584686567425623686326747779868561825834970535955013568076924417028366886547203550436205733186208571755397658982754539910717424854713819001933298782383363929246995073025781372686811993504534636042977923812720663435017076395288188989829428355983311484622861543302050155957619362754673764268760475759311776451281362099620276046821588364829852809805341175911885955780871405712835825333614674925374537210242796114288737954732645971674747100909545501239451282328572489193782813903086528394364029416836850694000712432561991687060071104392118230915648708884339174178376267250310650582229607174378034541868285388886141684132931139698279324258805789372259272010856578922125442008750289613590649679367554905636800695827748739816526736983921106553601243109330970324999529400237435418549426861038923162728359976958570533966238227233066274493110120307105863447437381088431631398922978911951930768667937066316333901019486773797910494732405843783696444892859251743334252745491563855130148958348816508971972671996133394851051583927719220450542568787201848594771118544090749924332463806018453055461147183731949483011328419822327217843873365392625592013140516736924446421147308237379049492681984929366819703855768762905520613767004511913184532901114455718284231452805485270320118861632928799727647201352838965984669016217112581350997262432214612636703557227325442618124800615829905473383040680330318075856275655881396703514419461255808952323699106561100796700925947008071010204686421765098505753328120976122203657362902824874405659737005305059620619681569245051680939496401431153467888691574052879469221251216838848043655879373895010918338796561728391625341362560778517848136234714495401024101889366096457687145753122459163571143530894032369627302355822965092831776956247478086573988888579520588653108091396807711090151968945921069793561745399018992196237350700142734539186332551957516237523151000552635672159651201698148433807070249422826830169648650509022306274058846974252927801585925551259533431464266147234951368741266386730491011670623840809593347645603871413263651125610457106308208028765990692099462474852692820894356689792405836171156357322006235436801171350875616714246043365560856715784262424477979257654866532004674882925309251388062573866786992721617730528654467183996410609715479996247339341083255620014233893780316611491389443305210713938652746566817560719154967011451321455983320475591167341052862293370045233464091748177309280170992304142246346880943981975503345446035564921144132298259265943555639462478131142625717216672361620657337643926604239415204437628374388780584857382179624041499283048743193671169141125168151715735532641593413650752750880561711330392507809935918813072824043045291635869941675177485169412007067251254138473928451229481229139130016732708660924401208555516253679717951732592905165917973911635016187229358150845699234204580478744882093681589552875163206060029792576513396545794995670562311083850970197769243147032671967123864891119725841610257201987234704690144454054833056886019719459856826181903512973985786948619479207041427622902119956814490025316625709644743766619684585739571927884581390179064317776956068841827956686834361286137385673620926938685832501924758442569500416963162001501621542278293619845778049908238843296522514088144880409616782608268417172030856035819609643462769514226748546383674341713757058645213314401496374788127644344126241154347365999063451443872835615041992731582629888788987166392302971152346967347912394108430407224968780255378238138047625461022280967727526510255822513142439027762263311095104279451878507167384538796247174293638934916636589543982471569993351345954767942019481386296673149842905614513440899578613561172474406159721224480061152092816680209822670809236771928537180932500637067716507427295354607269646387638331325990178717762472903222179496610451594530741802347807634415597516350876050508351437266221619487834391600180371147218302978953450252005784519893526196234009681842406471643307481764038029656924661029340156017932356080315387803595368828061394626045262107586797445586021700218296392556244531289045775219818855685782198790766878358869015087882739877446103097278588467733224246833647194329916304169846127298751712090510352462058808270364136718558390511200483774237628446155881309339433822005422902193149098198535583857936790993269887452803431717531860437557916794464211277013265871924482145355096720533650133147079502207764379427477572361168912002193909998432490289847437740459957627583792351951838649990257805568006221259221624909880388788375592589185247610694673356404106959424324964992283968923344190206621716711090519522331944441856324935246618078719655193567163474056472850433046646296230612175842924000308536874718040106812734270570288045250964721258223214926582968415602978420439684320014341499280612547290914569582104845895113475793992206597174971807992105563581606865960026308580476745452031841835228789940902137593821192558624607179534042925209972115974695187298114855255406324525007917668769599341958276578942101985028167258868523059477369891251349231586152505856622138520686164930600243974802216580128880025459405995337726117122598485672082967537171021853484488142056440215592827188508934259027940086447250106807250587994941322109912270433643857205906281726254381937085481978241710195117901160731766393122955884047165474722496485537922403267529743481393503864041457927483436571420371870037474350452504071308969006858407127325485570870533088709304344336214366868823875820745810973468872305765141736932319857697831155046602420062976594627150484641588868700458073503556988659223555798670452858767460085400222614760394150598603455811551455341964452276684036282878830271084095133247811904753640713041547207704619850543920653262972534651828172706147800734476513346951551566098239221899096622740377147290217270329577518389416410920936024202767902514616691928547034109212124621677172734590505304476393216141989754267831998576077058292766061940120228829926457489202242434472869018902521750200504364131961946469535680235285294324864878243766479799520584656898020160420306889543588460259340193705798111124213366352093007664123731137994878210877627680734405195517643106270361470280804983878241467514136770721570792580682218473972598309957486289948413093707644618243173408029290451323771022569658001132149640447705973368100935830803107723969128682769017000224808450771409343560399537909746384404573082609703630661674634905636189733332793523418953094833971685819370310337764908124711479021759193432716087734886946326458475922300277670327390491205104562770081054884760928641735463512897810201221630812257512119378508893461754532737610261037438679450816531580300416262167251593086100282531573331554947539547385304581618127377396024375103688750139923630239406904905661229440593333591853774135941274626162266611658376951739567622511102203327859221435361675549475273657348672332942087297541757246842021921382314488204904258800721148310858902997005219672848803826354409574069653801016348969076967181077768717835280422673859182433441299630531420891562953892453950173096977929536640797815318888823002768883122173300327777707416916839588590668338890040080238139923620534744609367886247770579477190323758397143696410499426087551484608311601556452986034667141066898098555503829083842579047176028522182540656422362133053710914288996090783559198021853954724644578800054487680085645469277654322951318194316704991583491376112074886889702986219707553985547554798438299700083235402844792223502206461674375612940719935604557121073765949215321656661304087753346295000857206447297779857662006923411179521374908684225601597557694370017754740208185798003233409548609337962999854103603641507875341683319504797793262033120505233870269332304902089202708833974492116492527436915033148343746304738817915857257608203112825134149083372311610696437107830432772307217179722281677305727791109485394129823069737838471867930622412706107276458973637886469674722362994194018449675660516260202539395299700403087689516629177619257609065704943164978590974171534264651380776309103106987690489687193732366282811125736615357430193427856603412382835227741584370506455358151350515309285702882044362551463423565389832802280907804508469520148673745960495753051298826240064278283497267339447304795927718820535296257948080985282192132562800102422942369122353872492745156390969543826858548989123778482789030941498367179361710350891675835935613744128175577575937083881782154050934303330931527898053050487827269286258161541257568394032498444923869568513084860324752944310462053793071007240841195508203533634202598528289544452386890693361856876737611436628816795953501326917678337861632853893599651898762976505322107774526151256424991298827611570617342065618533531037251642205072875166138077848335814701042627336465072024925853738811631370281852299287718903932775231347093977802568348596060505137901714269169008270443703825587797443500238378753666178968165362138279185032682680665422328431183057996875817205999210789160883102864663755321735000929345040072110560722633204282882712597948388137834318065577210106317086637384394614539397609771066306941633967448541637189212738321899288771045600037084390885094151572401539683998635477910236639361165954092812085679868207476473590202996008595633655029969722862097239540074974320430502197677642242029986617458952330749388580022724939761853208969113909151956273790264570741906087108822105949966970180386266213788642206867097697864909579130346425781034467193596114339055847564424940389300705293242048158518544032096113511463516792471595469343919267343352712559499286917877504019334460856387894001041109884368281859881791983844022253108276267560930171380829335977671918128754201815198725974222062492979740148735656848100353888339753206219877800013359977384758673572606536198726206000904220230936101664044017681913922950100420945914749318228553275304731570668491074001152602768376189547700271433509859917878793740383846923477055080415101472111118924651639335347251972902539962846456850655994141055850960800208659152801910901803711903099493817344952208340232327201487532197637395262878715109036591091484033367034230791856349390836214664405595222465840535940322063151557784215053751995773067528767269682816634274051137039679840094921668450672472669223572716782920167514617281479125502578019084851112313306443513070107448572644894694888774198168163289542550165987231127560774134315657120809060292828941997292816024396550244542227909720645192102528056134514638852126639877423756496009001095504830418964532325069702018897755381583242179265700163321329517790062332639356854916923183244173133868072648953544953161632084816721281884174545236949810383804951363157183889327968115554908057392286478600764400161430122198958979868990674153104870925789930225636078377905729918016605267883550608102365743073937327974639368651066569539677654082140690133553357004307216572358688799383047359674361370523651491154715303891004848671292632654802010179468098658664465446719993657881563755256241999958685549646886752884099756761978250542514336550443637612925456908869067462724374063873602630611112063917200707605230635020412138457415387075023972059348542423101915893977559858880278798100612174856502607365340637438943781387732344929743009411201336949716257874324048927591205498631206035107080669325765395373968396758330176160764209976263472496456004678008208752934819790523521946454378569874541288601923903141801270503685707423054564293816355867193799286303371730499135864411117800507720023949150181085219960964476618401439421588226115806490091206432271015889013929527472071381686315803367317506808068820646056163315505366350366135493549683838317939091486784351628024954080395464326124565597459670482527946755866008649136471350342191069679467521614127054605123710292853519437915319742548229351792088821406492724558030182262255939267084825591104763534252653884384741307612013215183210661273862134923397744792542101255832177301052898802515930628728626202711031499911162104670407598413911563682259380271320441169310153865565771080662885803904945620460751648501221145013733048156921572556717678975335646781583652326092632269503571334349045080118237528785044697794742017380881332838868545847243085651757916624836084748645217336168236525206184275282560088059811350773752511577671819677107001129470523209779074110454056719344619990491806710002283275377516780443907239933813417670271513390045838120801193991152798898707221419339425779563446098518660826521612812701939794403476772724523552386840924127325855611816067664484262979296857495252495800914882705548665312713438250527245290084906775323154782759315909407407455601161539103270468742054110775074040831303493494553293910703285490967006744963344932042911077075372707381879657586633166485420963579772540622750845048674850524847570113743159054292088094191343128125268828625074114396755826951171535287689656072958593651856776255871208480029545967442279292270829447391839551946094105678590603060613192791047125319655306438820597057986022465106836389240587301292340926020637904777742229617191326231665476031717131929770306933734022783884289608196498314184791543296674485143848669214538695594826485924217941421933139319066521921954131152928478992119109886671817796626894906780300815773497751050866691623468796312293395064892652029064537599151593627714801173882653294480107492689878943442302743993764532560932715324193516957787087348772901154242709588492495793138347275392429694881821261575554986638005490770315620261888469752564980664090847639775463269814122291673447303701898829017254086657249041258802369340860202012516090886805173847559800532810939565197338569374654376244822697538412791292681253709108200984764922459937725164980337844221786218027826895970636766869052373745635765861547368359199997970336491491226547963440400343715188226532209978053334832122538379222043264670286792278224423365329204802115111273111690212354707883540577773874116478197212108325588470858053662815568528969021223649952167833507704467523872239881573069325290134385751544179047168807520156861712234920881219418113028548385964649961528307354497496170891587278433139462280434859644932219701298341656873095481725344439356452613917852758135128641715486004625217979239532355607958203669146787057509203873156723940562753245772896448836551538359123540128251689054353543053082431851388681932214592699118201406631715364318169961116298333564238119459601451360196661234491063931704546577719888558090587488918939264512456683030123262790881956725977169813753367948493258072518982190549192441692162642008774916063249988819677150645468566040486172288422463898006730189743763362781437664575695132387331618441930876732356660938922736235374892927902268887982257162477260784350529944586701848658300135852285638486700795082267722193287533473283368530193450393099856949815850640497355213021483257036112965820474301001577963680740699343397620349034302761669360847884199109119926829718823625104968912305052946705650539938926894090508445671450779935341133505377069036384190531929787762975836582768669351609096484349760013309833227922505781370741437755203890876846521683095472166936265774119804617701620155776507596573700917297032560332402385162234147820574973482527633913133000589181541658517168865491410787615615277838638229587612831912014275475751178501367422152109277618239954709348800176212997607399941084439359991404829706417072852838336134993529529028253195165441363993351259588453192949719389689526077706063134212397434617236594741606243840734494187037523729740994123445402060055426090833106816724371078426651080546765724448046178054802978905787171812348619721328630318596785595263573250572123241254212309262896660471878086851861764215555772180140890093671042322282153022879213622016097084389699239714929946876539714208042718192216877588037503212289509731803238494218349326214136762479877383670317468961458186917900134403474803380794346038709639923610479103874564194752619321056511874815681973577425484521676041422755579044888067037974524137158422355009597595311632090658869279700999430967803300033426135168425867736730947718329265438672166011227880255689254342527918643055428191721173776459203861724653940009962818465494701251873554927694023571496912651611151244628598865662492359687165192596319044955280029797303668387869746255259334093026483171014945507588087201709882822034300061820535958821111064522428362517610741632633458036556667854997181966112313259003543987801177823739129080620165013263474615616062750924637808063456583599083934644072717555013231694055035101977752774336675219562752519862781615465395344976497796268929178769234207977678387823935052782910271017380731401060669764807628886662459753632357314591729908526688397478446626881149159511989561545833883293958988079409146605921922734583512897724705904845308924742999883550394930027539859906507464524543687861925107206342852088709712267043859980164700646854621688726837293309489369473391411798328131855880758542612502875687350115316787085601385668709223521999588503861527273520150387558384769083295069141029202173995130412881516876883984758981777543006226418291398930476848325331578188057452674537858529227946612124358983288439031196982102455749419006115813384111348727121886364645618734604841261090635460769029828751363047307323883386747144687351675380178274651289419239866235763439220171260464144669124078148720449289081177915578679599144955270822894542049050908040241251260570943171590487178213822343296672916289251024215948778349345057473912359431989554963363825971242731400661393095051234677424244569433306209884360026119294561968779152149369901194220000079210400232026164433417047205847559641866508215539182520934253464441826788250571009091921941273627394612444010502937414296604080013444681719449666651794996277789853063617308243529135173295186869697453572938748417630888087356489104632430805754852606265750962195055494393018429567100527739348391726126813091263053276368337053701929794689798828340725309939390723822567482565120759877270316015278350072906447578343849168461122789162281745254483433185745672376694602777038975269322505562851975965004347764428569879943678793898581641547057308967343472459454191935380984356808213134760831025370991873086934317322420049531341138176440231551691012849217577169168639604811289845690461746971976872125760145285171581483013121830907616964387007604341028066420322456017527294408639191558281112682395071756372094663515300888314964064312208843138746891013958965501418519528587289174764814622322331816598844610375235785800444588176484629160977151533390278714379112787625319558239840399855576662615120853334690962880319688815748899351117489974181084091833539409477369413107677493428851321493512331035896093495211928411615800108155004833781829966809960025426402098732791764398991390851968857856883584522014491580471992419759178485464529568231596698634036330547487170627517617732308882686429547827358393664577217362168777079915934660527740136310988154995646655179419806688193456106175716182307268584834405109623674645546798495727023612753840527324929368482446735229417728112735235724414430400872414137879966000043119351719601207352651958637334340345304189508910202092991022276236731826304823957649112655344718647900418682097033094921485230198642560239461236719077453648148136696045904813554183603198606431233595307305066345574672273395253524241156381532846639738625520764410614554010286472668741806476482603282724570091225210353264065492152854661313597505957021564930815611980873823803258722401843556229724638900476353900818665221246756567901708768860475107044346739706873661831925636808089557246258189978517502403664093047778888132838696086808403552819961430794183092098478293072789188974898542009064515918891472618347156644912356125864600893938310091299855700122411062227784378350917506751705615361860813935685914606635488643284114384311895492378880006276665990258019682543158756626117616581808971441965491182537545540175670727786255307983708486648895354288055981658941880045851523487887634265792412828412867918309407730721291657449735003479948100372198159596856419855564231073216570880341184952359332700291790973958320813017965150497845225912060391903471087977950545915928074483670085912782653205330709293349849573002679666145154009507447145549569542939874338881498475730051833914423572106896104708665385783978242678048892296658825508965924191760976881919267517357012288544675698742736827564220963760069161479590021171621749577951578380680611049128042676699074465359638772552791435803210393969596657524506258784269090571604932329596732076990992745882031613251237530047023962156696948125424305886521166533867354238110001596987493581217062161739112641761815682427946546913043951585878780314681605458722160658816282984678436152080754921588919271325997599131862043130118974401509575095356384913456256937806061498543625488616731304819056894871378564449010720637965511385631868657820059240614188553637454358093818336997737410644791348405798476775684913464879007024878344657208115430480136350525845948672495172377689756315123749014885239175373783096419279511155154734436438860777481783156421114951660595627841084963615717868176980024295331785988939306827491720823944371800120817576293084327242526135581444909760023068404427315172435804785205536277706891647742972237553830001715362489375610246027586870391785122965134922868569068389278913073351399112651432797544593158396283219481640535446925432233642592626140639748328564423522787909160420854529178696648653581243924849374437806896822705527709099111639839643700224121137965334775213863680719169827367905615509001122917744318659200357165971102283887527707122953034251790566653640943485824005486895024373916308151773365862619526111226041443032552430435024324977270982659834328541086644025656896586872796860512163353034344012864398211283466552164090389834786487829485947004454716052326339778301431302946228173682012523393687959391916401827403856006359921692919078938026519010418554167982675094232040970756101768256681135405165092000053845197039335663916865930752275553163280562002680556732301576219671154001811676488160559866647839439557403525172379695505356656503435094711868300959864864951051000881294851208417656744492440985274902850405230472930355168820434876355749830522601714356959746656595877827815933110662417260443959195383465865119789694711238429908996169327160934493237796806430581231512925938680347146190521481475924356747527050716225283409992702427417825340532405448820617124361451294518992059477575635649888094919061106185938341750713541008920717266816060381427433121350903004079400727262428103568529225386595598435945299667095491358658147697497591630634012599910928586928054112887143016015355388277183176118025664513546853019827792134963310454261795626818196288461462198682894702919092200281501632491422254458511453259830786645819660462484069371857282112498039752950411746215555172043273608768445938645528843426159081173252725371251961740223328104377770797324309112117370309687687757070748830855361368822412377085895511624991643732521701653790860063958748250208909760159981854314277734840365630545219198598370448458784507380327095945302849056416284587351233571516463521537130603128920004139381220833422123143381112142662042430686280598480878728790648874746533092748679042710524652967268902798772047984853960600854870730122126138636635144469643398835851871033038655347726486146077987723106260265009423666222782526143520768573931270769718699427664175005893364612463421455541873133111864671278669733943217979925372309307354762629930055779604858184273339716667744846597515869667272832097634010675958562029779261572569582914558966146082122659870337598319192670479892294411635224306331008562603903457157525468242690043647516460327957285238501220911027888687338163820649095620722433763413395109131678546576001075722061208176320159522862186229888152850550558047666076879450619605704024646931520566504969490847508345809984191270236128347831576692992839411071039852583303659700507822041970442125663943731870419592012216318219220376076131571526490009585694406350964526589481175412602018516698004471423877648387787667388774459485071661164055487344369595337747817000792446758484935969569410395688525027814605540233315560770409307570762259546021174764140715224143207308211081954846057609870562757058506774057856522698710139061093183570933993563132288729526848017410215816728460511158425944664430375102706737870148204941960387956288541207310004181093355387729088401196746667880310562239489565858361327215825357241934979593612133346796679987439842142868611465216736670599799210700258217442038417180259313809409107356542928820989006615138334523907590836457688367395968531292087706256689060416228711676936774784423332360988763705921766731505581341263819952551999148062934530990330119681230196633400201572648211751618934316990323008345592196393759730394049563682596675373404331429667710755915236773754383726289712356502195733347633548994691641078350711973736135706160732547025959686863000258815204848040487859132669964900435082663162689388457723501574406852075139200373556052885790482064254480226958801322953659385567341590808453359004911990546997864019259135218260061210373307455093420371241679442555190382554180316594484098231442256128493168382694892321540939617306674126625240812262768645342246749491136169596457472349629365419225139922067433465866490881814985207959068185245447427486227676472079389653803150437735223384257656665472554853376625627170562974539076179150707055128294272847844437960325509180838550658946093761068518134243275131209848087263832663966765643641419606951230112502983534213229689608399755041849447017250441198006014134427832839652645238452756579422763569926777031299923488989811312214486196690464445784996334211295900182729173404209271996845218954267035004976497752673641152005395711200662148208026317708692381534410876711914114333044517666846528042348702740254013431093802737929872977698546045638237780906607827202522799147345110582884934246958692612540375385300018822344322202763256435961250815293222863954087405488433890159921679443500051042395983732600687189801368316041778049076674647953262438953607214051551374114672094039805392992312901330496522010838086857598502353931428022507566253265243935706588685247741127920524327950758327168431613589108232772850179459730775025843970260561500419418648952779306251172609973748259756532428993246533050631389481155579995692418002435544899222196961595816846042758324310483303929408040459971424239338734455075542843935443998753062861021063525723382900368300164911914487931232314259519819078218519260351993030610612384890737200335539988615708932508769245078729861420420311520468810020376469712738146713281080202679292403666923448969722659686887118943349683047765252694655974625037844056653426704962562201863692650445022011207210307330976510340414407125469013968850448500700520347971191546515793509771668077721348219957035163413365374431086181397383956337597147930978543140674270856278334899238812039338444803264012637388169613142250552288905613146581910668001062087840245163025196975561083694387387697276992110695386202655016627504892523174198037752344202795704810453870862321574420979669294201566818747874226656004238134737193266412721008873741106480664937837044154489689585482592291484335457601377483495897108523435778705216550114062782997242460449499182016126994162214810215228959868160551559396989551060709151557663936459282087131649458011159251495634804713193301506458560117273226644243656522811808202173121997803864950259151678996990567249333987980594926848026141263498074687929591804249500269141610636912882934022163418496321709492527219260615847941093133518837170444508804565079487656891364434138850443560464899369255637893921866404130739738225014710164209544179750241030223431711003373249647080261014663691667932951937560633349156344360030748660078740836333933154862146204821562674481276464066821252544318123190996750166235802812227172651065709975365138098626015627870419056146705902462668024870503072663349025357565829951599590631282624618801818379852052124341309113282998813131021236411451017850780380180387341290643800809044755957730241502795341158668071569698123791843945292236376879649117597931267114431381733955182422393524261644672313458884898281957804398424581403291858118130231414267466664764865253797236130420837253403645969181474921123079193933699251408089165892850405381287609944091892338464811128299460152333692687537047562807189413334183647038345039133449253755997408239230760680633469207248578098103066276014494547460777141018038025669593453974407514333770673578008697944195293268775223500456501893916235348841616485296224706564683259201361616090237997291398768630040624303646470639509956223556762479133606039492822193181053606425857922157387861489116950135413478179790802969968875790478573388872197247233644073806929107189551478328312480016016400479701478492594661385280419795400201681578567235242270416693416496693066091047238323126089500830770008768998136455596439689431345754812847849017229358612952951743102176219121918825357896222871132974090454795245362958540090541918828659700087625222053622751228368459924579538702946727208192160923202345595918705430860332680705468259067846450981122151351168345330696094325400390407602494759160812821277035224643747333892324893875885493477082074671956179162917505024620044749625548425512205868345016656772696805611524672822200263496281990267060883725721442190605363825106673375901988007836387514466506751850787381672680210090253894987416322731593416872308968293348753809562603700904279383617313548889479486960870996786865051227313958147376784705971858132336022212590369940248794160328032663373858984288484343374555440222520639446387371140423147715359750287809073469165633653973243029039436878126893660248172552293506811952896836607150888293434415535411505083830805338162850167703072802199505292571963801623243403265550263404210605369995819660766270246958758873204656028693358619045608557213702870699023558258049732339570152304071558761789133012246545086707693876825076734498004290393039147649703196520633925049833340619235527660798494957550220880163626998921694553340384462384039859482330764250424127547451950236253379832928433864126144204908593843005257897491525123080416049311612896880337582346403659738767304711282907405439345517784333780797869285515956482655960342018724124420400741450391824170783329950480669018019785874002296321018444804621144102231081440437694093563136787789814089599273003594328989462289606482053037355961717535544108864398789269429497896819492558152971498484860084334480421431560303526965492442106428528303324859957315335651103545580082023649941951302017919586777345027564685560981246147223489700105257426329069087660304288354236316463999916207994384380531091425445327958346666272763373689309599641640455142554434787298915371648239219962431608846060545835547059472585679585150479585513529652899544315328024842548233862275824495457233215573993700493255019444175273363893313464727078596011451246502228036446029075294399946100268125350142396793449199823220146631028836365888429621650510366386619162202090005474547265603327363779388142298492758221473214257342840309720944117630098509495713795083114341780358631645485090111863820858626023322744797240032110984925395467206166873301210688511824443457066345039322893544263428772629843746933119471023774898408816890472211003308032130021313212093900944357307341387924856938720671728042148158376937765916960981444630567126231971299227373014210775294090743243959632187037796090448339335018741335749682844953313399127952474775921250241317225801325210779795414747443567703086746677335437858797537808145810490342721829300193667184933567350967140069365259752104018071192188125506545385393901051433390395472888617902023461578905543456813974306804882315834242208398747636899223754641734730853171952821406659148268142178446792230662623987228767493361703547036878769697634839536652084846416716955208599384474160417490370783863990001663044560804184019055824936773265512490888036165859156874346555579626360730589337942345420480641749455146395995013292277194139443438686797189126923516236051224623186919001321863975412446715648381270959094657353461714967211295792118776004390929332666620620002573608347550521058907166307372699467987379121404074792849146925320714866910651641662372859299949660837512699454006205437702169417057310604459461903919726283573321543489133667069570745464336200082101934574580941101435847910048528183545793803407499356015881241114403883566847544843390311381886262251120147036749744229508945220369597012639058190792705609421752843969777955849456801812332760218829735535916255474539968161695741945090864758649627917783953484524201760011072652292492060673915425856280609052939919661812151206987549244511654620859735036298103898139853528571133679317426186958428136502030247056078418200047962430785068476799372847619487254246427217115198261393068401697531713876075704832701167788767376519475213393644039768187042403812301139994942348112680191186591757371011411388578730395306775940565466138711747258662083555516109576442045623808965823999390890089779111306990982751155583923990423828770031462603311699463047181547595869200077040320487663431531391843204752324844933082308100551262985274264200304593344464410129148975858379848086026297062340370227464064042231207032120214873017669637130714431183822193065631425936562384255500650612079669309002370609576673976148611562052734228783678287298899265982854672517288556526536095020771158650906797317970419538655927516370383650429609658719786966663488423098476418315742148685490075269142875726379923483386372432050096210699289074257148168294357306181127445889779572475674552107230076637977563420065413106626813728227660383578807116847754847272622463430418715471006017897504164343248078639996435016395245034751230107847180595091514824063980323340359349174396013505724045494024388708867199777202438883194904240508764915225990820316875909124007349099896157234449416902216870227166354133106924949056516688478018574362289684028440193797081375727287508041681474933086225144378290405328801094310878360129720671913677095273307784380687368244851477939433371400400821527697536104552930347159074856208727031524411867453149607440240224523627953393803103674082289676036978916903972105831609677650785552283561055947683907247950838397136425378527839562994952044298895283588074402244659863173995055558461820942685903157587871559143171500835148411367050672313250918653246563569092785194331602213213468268461461070413197412927991758758411572197185992227607952410544958873986147307961483866702999831978651854384469876828420071182734868241383131366441344630595772918640252347471193591189818127477256465115013587452078767562769511746529414351538165746328821706534870464389634376926340528646789762512772139300063048967334457256576934755313675045255955734735135625140205244722894357920410200087879694309264170813713624102825171603092459530569605993795214697068677212096840375513025454957957037708681733774906729574392570373934815994189899403280583313785728139475563721927125120998663675257265748088898214619366558452239954299551803300520688977714900026692288351573234989897730972611321449242583350211116784622685908240098687682146079045040787268958766924423355731717152132956603342044532767475409385702097143909106391478428142317461403709294479536455346695465486283217158064377786786754100234385485220759459714220421757909023457281324051319624193028918926932371017293838066343422166769199767022568831895750276853903322495520033667248838721860828822021609951432716286802075931170311466409257415281447427980470316945365593079833076363830176811297448021142122828438301405717745238408169253563292987595945965601826535501724104957462756613988634826197957631497804437865612104003562740128051736662010460128070024606982600720396020373632072674305749638013364895872849151288235486394183167336533028383858051962351550751569916988268105456248807648987167753518117845008801715568755208913365223365788325060654780831160700366965748904198053145082060108473529132328784261145182980751479354551501771997629660296434073991979259868646968639224553520844714980979856805864657559833544615525265055559964888967646795615704929124322494378585745250202561501920481699630421810631259535325734250789016266772569603184400760739084928780192642410279311905203494671229076420707515948893949827996323143598290107611245416022514608890463212460806809626497982708928937926168434413571654285239491897376138825263084156810849791666481073459095138476341394192798353603603122633161023418460641979247414742327555777286854481280700048974442082072019841990581781613035897641494898910801183941813414765886043932161078253437077798004140246087355270906666371245110421905316594599430891858899087617496905245861711836918746197218610668737546472476990937195734144931763230221748690471639583284774059078712887823066383734529200364270907041231602029973979299793844416373086082771314060892712862359112972716723709280471587072189361975795096076610824470064026312072339200180004375313017763620495926292291535834403374724223824229427243827443801326935304321514694242611929345835176600565801303469389099795063299517875258322228961644109474706687030025471055066659510907144360925573472910703434028024564529233589608003860888402800360414898610818367177366758748357758493926700720327939707957414381513941747088178284945816335883368128600589066157622122344524350988039294273969597472705852673065738202151964729137856795148764802743173682975319390407967320921043886588694282871674524618357538428820082531608605095220014864335976717455020794021267896816215875748158077229376859464942880570434180172599586131234933700579750627463584360106978369599709442018011647854209251020776842940752546070825418725043398069660316509970142486809173476425397879719392359071034004901528681810016712530080173223796167981188760315974749325122551616619238606073002820097408430530314980687527940463961188638753409750433026491191751233879398893610671567641510603591123796445373521455118330002657588509825870832335403151447510564015728214462257359371376034517817476700137850551354031383368923804275079690117589693413022444528032997265941814059732807608158373338889766239972289245469647399252339514101475339201209108307852291661824311432349757584285793800696584023880009067001707864236468044358851441834620362356139348455202297890817387134006879300954004365542462487783840309451553441024489255872375989496319301713023063986058637667572031141698884230154237121990826782064248590169855240336973459757972434471428215318948357373310161134784563075572099320647573986926436912282695993816103488043592365873036972742084388138747106180556472912263734314116392553787766337950205207959744146998961124324549229338845412493931998821119362855112433663577201383063756425447345829083020231585992026694071549655574422755156085997858799823396541640680836516356014928973347036045606373786821449788358480706597335620080093802997852147667195758822411103266947579547460722368366383669031993294706291498466449676942398645056249735113171687455144175025377000934758422153948104566754265497042452114218948172585239854897197561803232915161965092593631612780433190299829956464733995726557468403465522907375046049168949081985151916250667180645547520177213513590577621861130304048705135895671684161141131861185684319055423354115524309797191933037923638080228756592767957875379901371180957633253506903966400052120786349994642766041076490196086230836949438051903474635733303882649082348719640956448503426634248669586705196612042448881200703033880511650656486162412098379738927606696343646060090442962208940133096262787469219873458427490027480435832589557488021930787589767395676495860464382580000907213101512680288297368041312099156937645807394676636091691467468479452657410612870082379070457645132993747251448799944454179656766996452636073395962616378601149953614275766466003481868078680515307048789139181175784397463596574942993264885977720609209282148980681459385230887725259478170540770223437041874338728657124542022316445748457782535631636889420971287526159946700745120939034704452283548197315225637124550219626529358506621271053107857339350405128492635863052306564189145065389599129011961670076487950357028005974643190226234759281003324043413536155814785554041853937584825392650536214010177576874412953151249278877569383399284688654452332482613147945362519211656084929095324237915280127321643189906843637524838770976254207850771008690386862212801447476831484008968617420687126922304259084066142952197048502196345513246628813311189049079473110579844441320527630022251697948775489663962713017217255201297526353992620141475637749392320279905897633680979255714569109524430615317081126875968205382151702612092703942450911770114847138773648068782028381392289802797266208605837635592360261477463358468680646593731066269859226719678909465681677251341279503273556596014871026115110304284964250275553275095436379674689607250874140815123556945808126141495143359574922575902393996137097453745941888108360966043552116839874917969127875980214847736876887435896443869964545654961380803195596264895211720304951692903436125532077498308927621880514116878498238601448303665826533061589500036173916056528410069554778335565897539706108359226569121810004845297481676381772585945220856243783736745110341895943062269575162422307032757196690347004132360979661508073398344721120192805874861130101449661416439898935759655430655218426846600555471816917427025459604580607697817927762473280809258695273011061310569711723935326881970515853513939270270447383656487907435951285875079378572332799536529808985924256236354431301691529723990602987114780228744334421287429580006658661783389782558391244925207263645333138195637252538977075634483593150379945331937057177421375784179087688904462896147667196497866237605867195603388657687915782681308686718733078578222240981884377748962768094092756630094127881968034859099208072710790497555082141921901272530069224965452882067713376170358050594485210447391063318722767093665999437386378767054024209530078867828607692970046596144704275283931706166053631808235099683456152987629720592316734632585597944283798882736123311000124146855563285548426183782303599441126481423236053943878160791002491534557791110416762600582747925728903925567366576876401192006259876713038630958535186529930003813343580968729124117984505675210434662568630221207788967991796245703937954996312743478368618310483270767089682368831692851955189921727155635261591023621208537643276505308726090589532280580435395543003517679957679385702706252790931269311884384931668309991761441096529746483561966593216189359414432991709458569407377749895507490857071268700156010339280210693803206836039266613077030703556026918184569808631695069335700150206054765265970898805247737911797438001627330589515763144261758564658868000528401230877602113660034941753743426878766669388310793284390137271480168417745859658947653875772130644933059379934944844888018093055917356875243107172406519776906008829188449161700188092042675640796691791135835156141720774219108403805060989104341815882304656993252884426396088797691442127660433446261999026066749272821730391994474180500959805141764278591551915834403390147427185526031535534805079034524476965489331310104222481323182613672178906640029145359342321566472758027835181112121556113785179173201936818404795633890042101960163537193023884432316478502182596024515267887313357367519847425404841099498858716050656048826061234706151810484051648037783387427644057931878761473464702245140459152575783882502227258326040402818267566303549281066256888740284682868786427170577027488866404645496565146894653630156325073791349678523524631922088829206295095929829050505286682229517504361625611941968767864632088365208902130014164006975514157716180440424865472439763677633418001180730258702779568565430212389768869122841588693284211258561684424107237115351114611873352433064043932597161653436582925872571389002752029825964785215312071749506430499446141282722599393096558167681556019404084802307060317602197998463531344299233473814646580218249054500358450112299190670965079149921442754727429394093413681584515308924099713184327228450784896556894116373339413467960165336778903953916951388930774393512132398771151102126761092658306860507919728415199853966583084732993655878691292137694719025627612565554779387164838658808170609837263717299689579445362515387586440334172938966528985052754491532725850210717918253854176597870989663079597731790146388987513629290183855560199922707168954925945586567707620209079983885766049102854566259051339790383954669440352335568491420002575629495207080091286864684009730733709519872089837726805131304354207740702935093499309593207629689558441771049451588143432235164574383464942998536191155007223040051661151873758161010509458290695103978252814478156583380984011459017322024941658789859359227886693426177055318319408098971422852211107666237682306524744509387992088066248809010837796339146326073297941733657446093649064469489614867659848669023356758887920152710625034042583509845407907751078393216660564830805226854636469702339261448984879701652591529363312022186857014516943401045400534348542267274994614919952020009210093557895455883834633351534645940411491569488455380010371598705277197199722067304342616802621639507350646789938213604263255451258933165118012552084043210523941354992481483334473225826834369826277058494056423342638818311987571106012273483442593759743068330416613315900687532171688197853519167114426889531907286577240797856295092944691503096269485757544448669283730457180840680063615959841996870955248578837215594031268655781312821087032715630346413183179952305164783630206037077207665623897747553466512859806064181681136338134889939563837183752052998448853031517761740900906540969376745087786685111358827422298575099578599721430392953841397421104262461147578382446313720942021256604112993782507964971727506971427265485526419941291532148606692802702932299631167424449659843160637941189448065555683202738960025054061580210817225941336457428878765619730919720341005000448835656365848191358296034824674078961477935116758365254162252919840142451985437124555099651815782627164397505475390156113656866251573889604316127478821415933275946431526487256030380691636172104540288418256917455557748613882812284486654403985154991679153680192138975247086154644959463267360359089647949583752534272344772228614150306564854362167746161736050026712554387614235147628693319151632272807643941969148802085264974121482693651322542279059246436066551354085765213782472673896593003802032110025238591031105117713945856546237183833525540758489093811995620274749102891118428681400495264377313598826568664952694682446149325620813356376705206252815322335453003778186410233849320439668850640515853047299428436697349187989035452848312195609260066100777885700432911741718750726246963235221677367083599174190455466480940482098893819550535850552148490743596029537998191364454949183226356267370033986192997643461469536277327073131736415503408595818335379312199510867327567076315619388090259870108923916497824193789853292582130485396061761541406907213310429864162533120021644959296002977504468141344891028520183846902747481730295215274543505815853716512624003310476783752761612867983383843897051489640919869329351586521681567725232713706244883507936971240634243354884759931454630095239930645615857178161175213040023700879656670582237988850958598757039154846538483448802698868401023433491418622063864199943094654508008380468894272260128441241306322923604006283730887406863927653973466095109694288015605531887441370853754720324210603989968376587029864552069443281609144902820458442426800021819191683594090382737978366147755333779922299119812072964753491798646136027430153857639055965931292848166430519353058341137462198580508364728994592209797684282986962774355125385047996749933239739608010935554371236781229330745750262765205579352978968732556079379822664285055267536720329376099802994029775538659703193913961371572109525991129349566879844586834750327901312428927580166416193838919615902397328033619062751424973148158567020075018390382107637695099430688442140445557925355819968700326987442214698465060985427925084068785576009836815831359409930372210633750771406424306585434409672782213633830945753014952494634263261543323647704758707880976251260490361380960536905183797186625037342220983639706489173388003668696932293186659087475542786646613336151924974907227067009280695710245309376494664489714685883304647438923730942444225587613446379575638529660494706448689411729273387516115279058939670356169938615237620365311485048777327487500608439201746360635224198347630228127364938800172545329703189385715265242306155989843933946706828679256233539117542466762509943990079616613708673255581787258705913244150376228131678822830273938738058316998686035685116014051994962870052930507554221507420511242809490204920601983546035371301458801778921290642914275873303680994061356310883419089638217129871873810429966039658901828783637623993044461767703207357597348439699265745891646242382185363587640887333516289913935595353651982064568203559475618226425129584294634113820272147111794159938148209025136671462664295009478607349639196315827612340864026832194959665263497896256082908293441089553456427923003271105613548389814885206005464015212608070753692810445485986516110124283977268189802569485496367636079519162658579225336779488137180517992613961971957091175838966698147350341151912187245061444455684584230790525269301441096943872915279843966349763734369359102690518645046384945790733461951207379078237095225343924565693820078144727988609866961786862530754734490192893995950765039276503936759605748687631008737599282432591062509911899012668858947378761388145561953536827363711708433534827756071775307170996212844809310446806816028472379358602679859950330320671029255002894395369533313401475380640697429801159860590731378178485765455258369959991908263367396745468186582154993985847374024696900984432664501209594126685007115506016244065342676389952558781196449015813920175499960774748344272702766880275234370286211482529857763643939860435127093592527393536401756726314637627055745610487669563149309369158303433027674821069284999498200980934316802965687447149667747820314810728917313074429731298886247140193401765622805240511921145488500186930304677361312114459664873401563520081819579376991356563271491812533558043317522644009382479954817113942822868208646694421618042516698513234195680473474213623907318826786894804407520923191575805425169239269606595489383991506523727849981189603534493881384315353528981912307030846259129976213324580033452488909801718094482917458747206322868312870913641543753194239959070212298565201696331796502686872667765016912365259104974254898432565930048596149466392895892389328581431706686103131810579632845566620704278505842160041811511870769481692093774029766370863566304682827108259934831996181948056376459802090197522991961222163516214445975383336326041304208757052458331681309335387490692198745212605766478078717056796453080797903267494674145925759266597777151412891949355628742642688952225628222111390790577540299072364788991292235438837731243932104993919343420790385397492648253969765790530086072243961109060742731737108830831946279988336098285262539574219987795520529366124307590416234395491778017471807648165951273250905202684501092599703870033805217934181716647193722879781651100205311556382966141067939921973004140353124969368227596311524687604530977889980878527154191686367599492931510323852788936319910025555234072639280582378265760013286086285463245931165465131693517876360512638708795253682947365663654356024686732222308684489009125042274483135512712129087671752095039609141277237686721292499103804580889385615650360673458843163899424722535910490793901506973387671644673392612917349624155490141926525542842612995709729545518750404966198662505468162296402392348542271932185549671276109543934447543572910848895455885421466926655859973877337739117214555609710695533514834144492096268391741271091280155215202704170330126205242293363655991297457486603959422417287848109345549537711004669278502269375459377285580253013870522442061259237083867929910765724538830573534321610205657280637739093654128540429391570446931107784099884981082446753796344336631512087829087170865307956451053958969555701639434584354834153776923691287552428488358402026339809187554746520218530171092398464549507714192365005929535740724710786620401127270446564106101796437745084893786619060014162180390240124258101176290072731105288097655764915297652549084099430755179041903839727855908703594435783227575441883936713883016221039219172896415307879919049956581579025486710812174042154163044399483038542482026525064767934841425337105117058744445079307331502856997250926708407262304920527011142479438037500551944336091973430126493470333037875731559007778380597430569709789734111761912290446650474220000450738821588313608607762094368873044992565959319732585723533451998333809682347553040827239587050073690098176382976187110355832937755773525538882982562376859798170039686674851629121135979944746817144145875408053057127777397578242623958520659158782457315810137396147916350505511192076066437603673506363754252276447727254706485704454199455389645247204503060238877326678971356485985291978191088820156830086990213857619728932877588776549679498875906219735794535343668608512927238329197457202126788699766846651381925194790361338096739178726157873110999624431607123354237121966781332643246524887219646489456659896498080186032965681072810611828810090435143430354032706056387429205318377317808188033650455842833935983996879227939873957157909524777364767975732862750955673587627474111309934058744632342365527421657577900947812584696131255565626762539630527296264906815708143388564118057246810632869444199328344564357824208603118071249313874179184425358597575574408411788173746967089485835273267559367513598197732467909717320070764107646618019850031072736628003051860953180671412558988144445952682099087273306597109995268167482803371858730205616670739492756787593904472561748534895214249015417009795260021678841464848430329599454674636120564480355081639682248800722705974662867405000784967622083653824356792596488834796127044343885380299754936492863425460961900582829489456465856408977306456757966792165932707986448256568688274887875188446762687369100931462170361178868873227869110677223385567509075522036654440295961822086539512587598747336000553880149334663850927030344271440675467776170512561301807775560213983733140653639585137372040067665321410224927032986829204121969264503387130985683848976191506325704174206982344484277942906550149749496070116250442840476669175981572376902062966511408933192789179479848028598864427750810616922314751283163899793222238498853017728185328863212180993080738015588331458367999728839218086144318392164253624391173600312566632150065236080868756150162753694969290512195071961167202895885181992971971335411935463270688405700623696373149033721884267565828146790850392066588475577039850280675357018749809588675197411720177385324121393466200075871416587175688373170254425107871668209852899295717195676639864985299399111927020223952007446991805410250711190472938438894521038182874695796656616352601713841268557800167049384894679092825627412400604138559527140692888860816116526756301964375394200426355077762488398662636758940823092939998218328581532627982239764804127360227140752140087426316232147960514846503001841773756616105863766870184541685823599689933035057039671971338361908821088716706582423684517595300785086480501171262103811431121071087817610615058147092433422276391767969205999554309946036784435568813231336420483653775586296676819640972975771960487245691076159915035398817440574958894305517489389659121083144674979025882219541254957237569847768021625146077667998196873654691378611881725815177224687339958671088752673507049667193232249265968485973825125079910979726065770445999476007368974662499639338937279663695459504124202294665389112523274037574473280921856264912408814831087936403296996357645978606650595043165877347537281593660322722265702311057054602605455235816626876034289842413571443561442871525365345547948770830388224050259383925657319675608676693176470645451524809155898445134479958167769244390076952465748831438423077090509627642279596637703537321192457056326212399513618493234886427580708905694851966747769415260440352659929906655613092563510953346253862309314044215581491568586607113058924973779483988179854294284374954886396858785382127436044976617282403176087912652019189606406086593736399757013937844766761238047522855221536216539964902362095907342082283725308140636687927419266645144334291631824166681009447795279199036765210379041769717885306141716361578948352060281636584632320800187790397581211740257058287851997006204118688382689652944930895634786934503077674500523699605064852949022054759592740986270252537257066084665262172953541972047859629940082562066862020997673006440564977822496255371333548011288866024278896110432471913408954282572686771912708887412025374458305725110016853304849271754271624719781011863185026684689904739770113470540350593636774033450948412357470225817360103752276038857999555325129281077860086408568941736321065857329906565950074882285157365024696871348315058852626049598036898842710460398794414737433033827318265766343890599006664514034254907171690763639527474655040205305243487166715776476502670676306492291515100583790444882579758744788215656228461730777415047333658711947802530479678568972838248103648977039841580913636510350829077281902498864456776562087033700916552065919337735321901571728216714114397596577545918704762884450884209265586968520695477825061546051382242967791303111516971144005046278565582986861978715946656177977544023079664483673473699172591922187040884399124232486117620218621452980937553329104785774625809429680396795664770015290869253664827224129465321677003545756685053255413485594154586916540787746781227813050402460584918923908242636449126065511544047922319040824779399829197856584284757700147358886774730826502215100267187590941467859126657072582287963450544482599243205668078601862004451961406160644462626908730395146916821515636396462118157040725166218204753378300457313921556313896561718592837329653624703905603697520082419593523561417293542960455838693903405805325643812990135673361332989847233426050352803423360410062539397255933325149967459082845578131893919709418730867327045367224910760555414222039654170990259533016958600071829806938821405400728973917109572320222815586646739448545256303189421860111328734538977069318269923224433030326802632079798876010932717925576038950085654634750319510681003604029753316858579657452829838230995423572858764020446659696796989293654159614242550471442344971004847650742323690513852877826207494818542254267022324384296150885174952497955706091517448571672274481306763872052267754010598318540166308166034705867425025659070671182809715979962139561703983531202839839299983119478903606027032549295692949037461907655196586684350004697685358207244282895798286638753492303761889074771435980080476057699399408367125195193756534909583545655731947567451487830183622803807527421282987676838672425976884622779051472218272626193304449373751999148622505014638412667761585447867057885526610914892049251586012993565970205203474730706634368105845218221518168086159649722994469130033572382196533357376125947205363532070923045856983716625526143121579421845812560649102174399455646299842322390971324134913147917410574158191282374818734532449145854891276506655767847885295607521751210498149373300962618709481714897328383950919018139244765384699546723863357779979576106684014819330598749586229883188151392267974662797653997083794606076725981875306483389957060877022285595086773821111303285190615263737161058065151855673287384410948456979754615163475846303584611601449302741893927061258324359303831498917993200332111570268802300138985026872382506988745685672231375238546549853387593110838915064644829077117462198952650669969213487847251774687762219390178208623904804585514995458481232515068592675888611746221993919992985331370971298613418090001084615213837903235319064480574254955813491969876536434039562235185345718474802554152676571498617765237415581973859475494180044917141003843639675956098266078961667398213246176743834674359733278568707081455829202310868138563412185184749212400734409679428088463427826409826795315839773581399089954983107067605647432088572126216167171851902531852474282081100250082047096349739096117919476771719988027449173459527449554089458154278214189565417552415699160477647021476006944571370205832232733596227853629133048279786513769330274529704561041940813808424366443275270272225439050115226060194797521558417286167410930681902113872734894083625621213860565769811878351932275677765134741403519396460858184105528101757547917567884669423289977290849349440434577761954407748817175270298753172813712624142415768991238632884392426412556887867304659937189222222406828982797579417100141003850499900579523165055813215283397001129156890294715187262456470072072614932019911214931145855935983848422859566432616438060182825622971356242435461298254900005743445579696172296608079712188450441633989113035784132559775413028286770322699997148825493656885984921883387163497521677295637112590915154748695600267108258446870232615297504284933447079421681890153225258173222310060100061291263333173073602312806632234524222345771046631484588177214903037789619945574393124334752984776181868282879469507571141510215235697190366968486752664570784960339993488954030979860356180837835754057232245305673726458710389951536899356025600975671334959750918779123040640390554564745202505982043696356690579571934907375864213333531092252670343814596335301038398635199577360624261988297715837571837275628277643701719848602388994264688489068179964741220044715343294341998407661669863277076206488212706397815679746582721990987999018847507908757018655605901001928685384427580154269275302779930022558238654472791867353786556154802836859601676569511167755950612858885159523066075915711637700376654745767873991441045169736530997291810285926457253116265785008136493080606567098851628044178056250594799361189200171772380489089035148293969900308539304625040578087219696208111081493016781261617148952550092214342201111335314745522924966339855253961950351408003101348019368499983506758874301164663967396849296750065295387992344488156150811459330385531819420813035054031934598284727240420849242980089344043955011289722329582904473433297245695514525986861684525761960806366141055262652691527920388980534012249893619354783304686782656756654808137890512324030691052429967210671944282957124033844768781538479193493985035018223983559911771830175885408982878461643662932834271026311098652613704239007597699795615525201328203325434297992994798016430110570400793748782841184499949329522931754900595660486015856922837592073269464564733564130310778230769499281436278639188990232508249095634255716382333130784022571431730696358633815872967164555475487930651894668024566753530054462248249335454869328293843352113449801147381443168345601488242857984838995840225370964861570637944179168233063122023762970667751802369521706601585638289859736836471616045012103575392093397301832450530976222724621242801635158932597780937891845045911248971866236162601330430470395461610291268216269790019120615908170287777111787998627509768516493954879231603366190835985687661761436905233490961172955323118603933576728589480991475544126142619211653270678494803072630081113221816684929145507280877893567242493638914191305369356448342171270043992282032948681269583771568987178534438271733747974725250183813547752989906665486145833173452935703557971555574278113582749636571493730872095387299890266599180773457513132676455310692435319432879299368682388403621654536239761724828006214010333597133527859287573110188808995481499794317502173956688374675830745567492333762959131119835598963267759828237160869278562952961411811767541743837911062177038127141669737951857753971889665805998303201933309071580593434034549469318116320979456141454556779500594127173831109334646719659741376276927089963228533119651003167906618656297751579295625695836886471464444335035497884503289984430842540185797888905026539253205093196266861689140078561831161795070425102529243520686055291958401483167837596761366819694821127640375102093544735605504927607217917897562037739206533260493290508650541419868244851710313648597530835261704347238997781458714799076167965892681267856023680104175841495234800955143383836431195386362740294287770915719658292147768096284552184111545274270468345855717837919112542909037561436601270270483995612798695769398387404048153611678684699451322985758709395383073020260515722735283320858428924952150504710035546441502489557878525678339480627424861584606305676330959411940113287904872499122063194516316482135642318640675455588756554105838967364064384448272811803712810850877475798508652722004903508445258558365345122530138882837318115723919346545811021725585129776461018394271342940981237390021767865015371966653231119697711322880711594307802146075619108334882933197690551298372999823580292481304495341418028454256627095428322309531800625272796760106747861175108608174032410242872187136799821264501232999821532461226958328339771684252975084299910573343735471587259637269533569452515194671097842288476712166966489266689984316767357097646529555980184041144034503580980890634659948127698697475624973323198326194736635034524925403564577669829541172317609094517924486281992975484979148400534919116702028138578018729084370715470663032527721919774246565550371999219260073583793272682421552294833378171901489945318082416613844210390531358291007774984690631312742416741382214162103328993488836060997082734244126298615762288858245329824139131164123304659915201942259289516881534715853834901596875532227283019163892649363660257894829437239880229008023106023760980922279254104251951813584158554886969528931496969338063580342918383711380909839582441693269300885695746493888608110947201333999693149856047417650073183394728949247601290095081333077687662652970121895896674232521515161380720476827619968380392023525011298378546636243968664130857610406657278487743362611790199261556802997879604899810230062249884036577957232884989590673904116128902400677638265165315780037014834173168363981274821000146580021053758469086188781721882878004103952311223637432946446575704012510189121176735697208331622317237553608911190855259087221577004122075278959719832017374839956827818406765447676457780922346197023853191338648731107187211176962578972793775281816340542961406218666873466922735742541519684313955236273235287911574998179015430263223840264367822344021153869071713646835906918420692063133295672501595582622508246167258735065457083687243509901022353601481049472970256475230294850533040917294779835093350841001598722932391398708419196301387161002240464119988855682152388884269039980250090863333721885920372644189071142130791172800106341911519728770996909087035775361617366511314992337751581815172098903748304366447605472137388255991655503178728860097871029607070577161754845988439445682028497566548204388258919594666415784087930849158969167072310108978762319779691828037826597296168752912853393984836514746686043029417159138050325368634496493768250707797929970027844241341619125151480336598715996202969128030680920116438564973703291736185850104799155573100228074067866921525384470655765286375375168118120185366669185743617541149616631093263597625506235069672025947925984102333244898787822726932476450682625619245918748359477747680962493770580818834553371375641689364978883245150675849219898506877413402437116880391052480487844306571639259559560339780747751950036104007946902212684163542316004918343949924483803973846205681696576965652776222382278870852767486850703200507545673168885707022762195915334661370000411534330605232324826227510847961942139941948315472443798798279925533692606768721376852926502325161687824594966467624676743822543618892345790274567653398324445439623831789056996729017341639997622083699594114222883515130290258382091466114044628990826069163064748923663965675415499727461158150031445772344153998761031136191711189636998658095111328759621594902364688685722234259761772067195763877096142198970017756082718655191263340097266463457087345517289212841281132461084881907535554678843234050924967184416045375489976125208907746757952974489550161304080833179213934812106081794094622749862124054982212789267931138905052985457406024444106939248541903294979683962478465954885343747300815975352850587201903895792362473572494813289794413645287756984501185985675993034106862618075367124224838636165593279917842081260971627884841725156552586707840110000534039252774534837346934769354485990990173279032303407826496388954220816892679969015045282027755350949627449737011152416890881425630351922319600306097245759390583538629152357705808137739053307300571631485633193315576297607569433435859948124666811972005210548817004517146677963469856482146083426518334092119657480592452436808835405168353510739322072586186458636769427537889777263065735028515515364090842419320452176602889030056379759258892617382060099506351737895228185013084657946954133248929637524566711591611957833968185396245745137656852100805700702362807889399515292791763199689702446106684382704031122372387635477033450365951678122550002656201930771628502970553023014096194871260053111861975845553301424124457641079132033924613830980132799035724825808038151037102597196538874836779716790410687409014781199159601236746167025765888336319786099384034058778683065504727580220074806950460907176392326700460346141953598848578022386759050789477799507924387398441206924080947127631206807448205369061539785755148674263748498815274496406308980154557255301274703148048451274298563647657260921735722322542922108185131397309992393918603906857651493352669932897125008020923758359581943997101563736929022437512576807540512513820460875871761721823949463220467508957478668949350513338876156573158346224576593655887733424424077818869854884743256808474211930267483889978821448321854997120602341644116275092096148966252765719298741740466208515116172966259973993558188461990103676896104193437072996424368514332839681414742419752128661890335357879997247220954670239321640764658889109872036769278303878957268871908043827666804743383632408975688485085731865891110135243282271453072795656615861163975813088263133147273727346099807151956691367218945042989790571236745546529443023605708945703982805172962037162141570916831450914261727461626808222980553223078299048920537183502066473189766915647636909189661755156284928738212508830369216245104112442186923565666322101821535451039392482954546417638160844778440761619665671940442247990610235515302957091918604390883350983854222762789463176412219284779420657638993215341576217726170370768313236331979419873745953303319588165482382712018909878424136156833835213622601691805692650097856781711161901112275975270705575624582047812651934764973816891422690673431854314982668871912334045196078871662837382139109834805466167808148779275247223198370928633842247693445597693862520226277055052793644481077517710649323282665534155869803195108511014884565550856576533705090980684078369082057536469561536099771479210489244524685730848972083619416243839442596616140580475398301122333805433440937826659210870735991714345915617750854983380128830510544425260188026452758649073021456359357640323981348469601561757260805463293490933621123563457462041629654213791071868404441951000889451712181192097045873948299744156048681475385014031119067512540513498596297346559709597274161383416832900136087447435791089639373471007620746503279445762882468374936396027434453647314724493170444978701601336178804252950808602682066154425336264208651426578363133480985148307932894210993642033084038356716141518212996802167432047276839302740457690911300882498269165851626635126287034191511411428453657570775811861164420267920027316859824062081524625642142274223360886402973200744545638712765182239298614180896601591059288341418066036432936207842369434137451894014115850253240243465136398639184339855898183262345077190379795369799936667805148739483836503059736444268742315825660215230558862977120805960802260215468123187843836518179414315282114833094655349124150806041986286256822867568124391538664447499895461797770243568084590984257022006959068256449100029007197912079053996160832684228330199545684962696366536003007917685796374526791181709720514336649851601464214810355610868090223151626421466463459371642793959258736997351477462021608117339059083165216041870267144620247769607482670357659111290274897491802108414756422970543820909659991557528520913574133910779941087071926915214181974181380141981882535584525290215801693962686444847290835008802344717120160368630175954700989955099134651299060964094951660830839977822485824956855360500017740704045632799630147421215247837942832513220635788332939390600523337071027165069382484225358299647309320796668564436416768628884494672464962596884239681949303033170608715614514585240749859863174961971583375641802825329000201782347199130590874128967417907366572455315070828221102526409319382178927951922702387784808617288020111688839330556498049817974514662446177684787461997978150344088518890516302087680535231974119815300639999348382719031603569158861048314133940805616577083922171750730774105943893135605760631882590332451140589303898654752978410288508704738491110490517085656028850354214628177600980230966599965279891366068593000417690577793105089856457122211109670456192387765390923529668350599169307041657350193798039118336754460957049981399444906983725534352900819370456624569419170436022705780530367744965063567874003790824659682423545832568381137141292250503871636163611211775303726187495012623271488157908239450893996759468191436789474741701518635756051744312480653344838499914160342333619217846067581726129286379918652025345491540899099921811085013048250637732845528886299071296485169443626501708247913996750675468048952428307304435039506687640064220549796291851100732795852521208405522757591016934132017799487275017043562080580081008797437859868176767713606428328202047423201755379543281444573706595694747373021654033530464768245128999542802330160950774073379349228248976087376087828422668296347961572229649049049297751997950783344352868068162355738431963688767895652669006283235366115657958604720945917625914754960766453039605981953343009717821301957864014379907188523333937478852226599828875631901344394558968004490163237262646141096173633461758924589822348502280176595662966849995623210593644278176422025877492739302304922870377886967041558618471119351461602911003256778822856516859280910385226244382295640533671020683708879119130527623856377522716559460921633373697148642721202756742842798174731615832152996219900680188601966234169261887976215370050908002656418169586715935376251830117666754366692549869729890789752259633215574764124015849283250419548781620278374893908646046998369305450440953769517375330185816161529356298474422470437370130114506265025188947214284925313393421538817168981032961347412008898596010036931063528868128001456597768378321397979710188372297197252941946455438078887019462347543231891122410187734019555982871378675733392338996717305889708773904849087742510992427942715389172559417556570111113586638491595833905146601604524078152163104196495316463688120721064221696557243150161415772575043238694363795149246691098439944138773168378310301901036919621738996189497600183969069015124473977967689774276256500819591501948797968916515200874888704850794565332815175228095114319429577314883913304907508166325102489040359123734074433430595469617569833493101737825888140414825207402242691439285078712920236994317250558009749206309495121897119145135851997016217828134925611995469476510362800325301487847109457405979343032278226110639097463368629011708270354039270801023671351965846805988267996109781046973398587118527212386730223365985275439802702742730945180888316951303925551356514321830002241146973577469136734535634240241599095196551479523565414593055215592589197996180911125360206690172178777233518684283284128672268376848633148661787246249353165984679943690565505648690163856873649510549995679402327087363003983859515457410322978222208608193516596072992965841183056257371434950297810944903510064861185959973226159255508755804746197822623237831421218300586616718370445829686424146291528073991996208989407460710961666474410999592590013482922138016017715300995858363386471459358273069497472774880219307788738956403726401539821981029655937912274969428793449995665402104755603678945414540486839464333946407666370538355613108600813181045761718864055956078160257220085002259617210158482230435805349182392727251153047810443061989545111079265749970722082120623948470946914396799218117401161033309165684462716961566674336053453062493593296332578453102329926809166285370935756917666986525947823347952834740078357642487362412853567663603580535789752487936487071785460853893489140399929500664898058106318526106074099903238621619497174463095774926547340303428735869408807841444434896755909504919237782265886381258540078419563761126365863514723989332304346476357164050634902816336772215081978738535600944396316007460375091626831736112841581577099420277215208796348239909282496185750959391465873610710576667649860645827210306604843351588565802375145425170623184764032651074090012937443326537681834067813124964825353846883898070559380234414382676543434970605729190199675452885403649997944650987936619357734130806705792357695955021982343134979951654503084058643581167300347559586856190380497051358892199331025204096702939323255404222359784738606935254710783623758342992773502461913020839990134101984161405472586612413908308215502622724751847941700863533396074940995645584074726326515726310300440845893458514420429195928157506328730292375785757520570702157071034998081618225105651832581832911426603088790235157181867656644001281552440052285988376129886132475012157164088129512224913559929152870156446777575394057285001964137015815045032903855937932425089967568951658658411208830349106415008786856134747748960386831694624622592250739258067521229165650651745501209307159660318211917046691986684615164910321912185305699484099413296665802792473101030231657567231350620416115361049152303216669312408591493420004945225374595043319686551747321020151812124168661945047512973493960160494982271782515900392875320986675170293679248097780016868076905450032443473409357431188548677942256687683686511152472282564714660371650513909553481470806833711793455410466718418663623274764900408121842266070879965472292856387688921581023807941807725223771015452488949494464810079107181330219043766769537848886458320957302021593340392256670417580364942701107159130975305354662760031187717574779608411500822173676515605242790924222902670011842179513497751571628228735486038923601897959662770456558460078823833188113871448948111486053769647397368740735776166547103608950956403195957972008778680073608947142234149200833267267406822726661327053434069177446436869917786986196183105220670870902051480302092467813330792422499481279408849818155740447470771556106114907857052258327786662973553435860746013299146786337939637420535263938670399118895666766128175861001965585822481767412893279088357580171467922723251036267551260690529840844930214943275536370047511342765322437596977820833623476417062706954570166877400904086880844281143640614306309046275017074561473840566336770080856596237058076010218628251582334820147535657304800917336817649466779375574950919804971477192043344918886257805639607667770997354997093788878879821158448117026785058569619779661835331345099501684077724549588814007214308122401161167529738580433096153317184224872651413427552438777249575301714961183455202140603617882381134582315046945557740973393325808826262246488192660875188275783687642444784148554378436998741670005309643378220219479018523674904059412076931231000060375933039023263073137963226622696447019115341555012053387482714016484712061830695995902590642464629830171453354463821186710348375081931949608114481111350571725255023345444421556470758424336002220774846345245553372501940619767357146998196940075692151696613330746954632423557344416711217116009601271275207230497877424192835470341302218982526672908686536311607107942130424853790636059190886132756919898691982787811113329865610088919982906970717771357266272683617469557047050905059947537637314977778920003558634511869320457266581201379995101833188082083534925735645717440276933598497073834003219116912494778931405581830566702048930377670515195373713166206929722366481686587446341860836578637379725745963681062821360863724355310344192051479802353312681096856362844127274235070397771128341153881097550095098423365548697811660612310400974176612192524445866702143463986704162400924073746649289658608045565677895343134598469917168888312279698658306291788311015208712454328235631526184807367607952177481451070813468443876903745029228745412207862792302569439569780982005571302157862524033410600510952104237671949016615370242028801655543284916082430631800205839463428349730845208898348133234004289164071283939797248241621500480952321638793555227920700456636169693403214286731554171026064324972740527673857036573438092174126644278547386039897648208202051056613475079381825020512455380925512225170331413149647990575037109667619036468856183045400847682529831925715740072672661163450166856908769369051040372406720384433170292529958929796085631708314722009927725266936717887697860214306861882762268436460827649479563338319393097963808160366231259857328066272386167748870843455374153034699997973645745013530559887872142835627475364149551577792778004362285135994569878964375723696406834827168970329145321396741303009149453537735244098049304028000865911273891603103125872027838152393526852363514634824066507280809335411509519376429023784262408665902425721312731757686336635260294651964056289844685163199028730706146293453783306473290751343150554599041969242359304890980798231392392387003004207472744757248868709588825921666307883155381903400515294094449808990011970622971336127698989376335814467246962311435113102559934410940523898572744631090506657380357176750365444344564147562997924071660880079715690318573345538421483457253280823935965952513183400865644925995196749338627255328581727052312288372966216051087403756086322072475522126934754597636250247791182703796396237794896080301361636352435945065460219617084106116810884294559944301963480481804656962959031409943049261177103756554077992637544586823785619959257762649907239996318568687285970263409296616753395391639549997974832557218782975670541369994563223231543334842283994786128071829265910682676718441732775545096520480736897312554242345146424102392724283995442058614212374608117315380975691119888163228149409752226114900124477259594290093565873250078269560305707814799531360015869880185089702778534374477182869947510126045385660162293194404282812093271917973322070333020762970360168401496564327295096762506047607477519128660023427305634772357965599635476522232894977829249996221570393696251509843902604489193822999311431432839389396728439530958694397043579413978137984707816112509406264948285915321543323251004506683221061757721947863435606511147043305791549174871418204963304330929279919248811915711198710253642271418163575232724763433281465260992440607549668196260261374013957162533165021884786170439105448188465520306107882277142274744840964980562735349976115623441881016358368770321897820706958470164120632923726434410906399401520063556435713784629482501615743160299094953733208857834399350282650145299162592065446837947217983318749088415053569115490838734165746100480326338626421987723065385136922215670700523818270375908233562051839585651721289378996381131823605405307740382639518224682923949914480437002963770456180175648334176339133499611548661153574688415652418520569437111426491473519564787495433495179378695581027026422054049617696219447077982599661806831450198046771285450484579870818300936124961006729195597811675581673183562905371680745212643069970424085484598012074207446406469946585109911753417471561945445999279303390106665418886109542758931605158732416783265871304704135930837349907704743931954099829028192664984242774902391760518447658915694141775833302998929330095934063750901501816023036677554026477966373159512241949375798725229106342207224443732971859587905190781780502296203035440759870081483746589201529743855672287591681355970278795470385374193177317073322123716172528564437619209744678276328847074863091645491525569539968693075663736555445532351385389635552665973253170697276084088112851386617021205628653148935124108636261342167676844273835529253727821374876385251664142421021129514206802548366044307104348447667725846702754189241569503351316856688100836886100839267381499731584685132232047716545902677637790097529536171193361959841387486344339316026120934775392431181148237164139778843747281638866350518167574167324105220073157456239341534082684957061213937631024873095353878832910225229958107943519665933244675676340625347650173867743864814746362154527395722291363422609507833994160587644441139636500868064563611612456441286975026846582373426408125888538986325790477732141376897934578937682706998552533316236008300689546137896601427226177317900882175326405303229952560392994732001046586251846542357455521902480965426055378253397802276978569481065050547350277845922455807859481273479400706955239093332128892421835585090114052887655568875821334448425091847640339154110086498296009173934695275319722610214723141174010298578283145906547550011266118941175359676137602044417063285365917859595179170844087062751264807104538451484317455720563169684299596925300992448454462294683372352974672684396132791975688406728541226433091317584798638878909514443752980360116570042332061012004600407249890633882046934475861343728789099551621919941031736482538324350446741492518232692564404095846468960306093442883901600205645979615272730688767336177066957054927158523885359480484586050629834843861111533507975776277516182241423443664412616356975167000821788316762982468870109427589702646544133772988876601652621743275544488005774608185137654021471172792309968142774569881396331393650290011207086984192116023249392058744288255508647935953978713140694036280581960967607478586447224727237947243240368804649510875272438003809775020605771175069947168804117193944423461337281092339250376586243674506099407412552800059828917948658255521948225266442640476340481190145073992896539297992747071977828564222690150014697374178008284403365520976030734343412914328286336475175724646550732005495696814433317744426164503451681939923311768021236177761390272390768659610868930592141302672848862465179628649689893894133050218727659807459103254106334941038603186310215079145889249923008070684411017194951498607470643086525725253570768574037298088807638429925295476252544419017143086789994854870265014987381662626335132214764068746759194269374117782271362267795762029841686323171121456174034709838507491783170192803703879975619805370980857472085291849948385218645864064956712921009716046432118800554553794763272549208993789247354199566876962307948291908266525622192547801059217084056277848501237937052028917549091155436453359750516007835786770885549421341693242271869863781799882922200125582677121951563233588615806023055500897400133069101761641805982853761351004814551429308906806939204232069639258321734908403184316501365731556477178123878827292011794160554904827366985471786409999748967912285093531284524957068230706167023002630410795444530206843598611975820269341822629031032128825828307891157717184684324998914795270801606962739813510119133779595355578051293651561036270760685563949798366610635472064803274701913539632553443384162248519765017554282268390784746094030652501988580406631921196953352918227126700902304636236053366327700497254081425141672733982516580187159619860196395809453377769632636861550314216428753237672882338940551986316643554345589050189800772739792690539922113091506266479439944619697030335683116574955271746488230245028780641589684537102360047299044308197654344515079708958389469974498779098433393780998563007904963001965844389719687947563500033743634873108356069845703292697232528112374934623097521693533723992294256890383040151381413182594841617311849880393121797902823840455235857229553533040465240683021771774150086909728354740494252887097287105636053930962542569878248518092600537802792664361990926224153263307759645955054586418662646841077504903657630539385363535096622948106171730444354413438385872774400790852335520039226822943300521596254842402704097728579762925382810559598402323702545516288671359142143128352952483948790142717071764881539833864978468317650282302316783888252506476766802358732553506325185283479919935352096439944544674483793581623014608978839442238973253153453774126703852628850394401220185216498354323029388474357112115958960376163804947579852448708387022869837489081476176299271136695308696143333674320315943427973411238254685281865026222927171949686438312522590207875216762252610771608163217868787216579139984444978731937442733165358425213910269364456941992931908911764250373996715871862871855208347342994084503012309591275663924477388206341199041172302946143858883427838649481049163960473665834498449888142317195213403228383716153115701740454678781012092595583693589353323336451122477911553892266745316416987735361038890014266688290960916416369767117865248644302659699548933735317644538020746773283823182082578591490176076220774110528842511231932068133578858848068593661776148684100763426001651540561347608431905420708923448228269992533915608639898954903341226373770830098245326817582096305397244145609997537403384235391033584577832514207078047039699487689990536968637104074317397747073418474500844523958996724152275935557019410402532375889608899067982505880329344490933968776753136610105368306912336761756226658590371365401330716144739712317757283869789196113909104777884420999481205184014439991303140027613010574923842470906709459797635081085348626115148142892706819509823370876904840097557426419231143946501808470232507457959220135510858210515891807000115501965484468433874323490903595949937053884577448403014800023330331658044595032127874088007328613130271950535207570555639155137832901503343176757445951210284963578018954027265779704185695156748833328473532936355797914403446121537753929000763459366112239672893677182357434043281803489320745120005034155610783510286628999044355662962629485181560948345049902846664390223283514680128491356432394060015655579602547026144826322225198440254109384822630338965056812969472096055294026379670165681809220574939866032482939646374985907285525715108758353464766639277284596767695625693697364949445478569525964826884622965003809957588109699119549308905719481867017941866930775723003576258711476307464926017325920651244705990994080858637449583871440816942414555872436400592764546161031998519895406585895112971348652585775756498825958638422841107324076072384743260041738225462805934613898446441017829618065323474035358933528690395764511639841396259817124594721283627188303851606649481212018944949968900793746089073711419090805958614950160915566504429716452525013935579712413867549166166160846715168493025766732874121529750615366165360025009280417015874800871948486673260653951027462791502272359805691200549837603179957375744266338047057172126163197493591958958167122633202313318697653504324406751540677447998765268223265483496948685902717254408789605945991079781561196378926334703202920150654995740660792375771070101820239802608356747673762204112457684037261448522194547183063074446226741381229656637596052279909167890468277569416563079832139677966687205883852258680858802645710411136615539191367448933386793189890773341840164511555097584365560516460528849504330350188186189290079477523991432549530442264095212996995924683973750136117988301159167502330969805378810068683124655626107620409461787316075071534227622973486378208719477039591891704394701005411254538402854195475420766583454262730611346397672745770229712195891689147131196184859547014036527352846610244009034462233932005601925707840664847328885035008427491532890839365147954537368531825302546567025251204559561306669781734539172769603891250913425056481984045596904256477245615797782444902670017074038125268272077080113186093280676727408613299630885789678168823799986527284323984044474796844517303038420839197407776358747270989462811953899624119253545663818190467273980046778372596632622773498190059207350891253400915642918904138432050324542897274787346349812292376933592696960287881083113733923366818707748478418444510970024766818321949618439805465230185046631952035324001737741012950096627584774440019180292651119585985294400178922441826495873487009547607235567154932748096979561952005259377470213347557309428660269787265790191429228951404539846744756464147213067984174753517955197462322257369349450757019986370540913788940421874781216658446276042240814325951044618933134634329498698944979112443919607091666698737123279442025746793775954019888156452472811220119988274878954763550249349434181901173463241368390797895268979989530952422702652077531633553922776925381163341891177193058713801907747294593876739562224730698149751678545764479104911914625703937941177915686309434006485527493815510139523214913641142242150322509041001989408595231329284485380109027381827291485146295802143531157459975620758757722705163374439483197767125448608849755896902141588321070082870836398214197379264671628219183511207537325526220647879872280629913829738453619966715588322877720588125475469693851491968277279726107147097567555631963940701265450063111889489344145869308071670929243877758362323523538766219192527749647391780671214389758152386724174791980583591422456894972047972757916117348892749614510232622749861465685768594579399970555352253621453693448168239917445790910839308362946997033138190779285569854199796040244312696039169993895705233995318318659405750947090417718817752834819547444249715910088126690681566828113862740771562281717378316399585551697042104691964656745381860225716297428452789378351134083074938215858641040288443660123147304817220531621414700792372843968673005821815374845473797853996054125765183895433204900692364052735619396205829433661587244660153334782512371782212515745710217799031300784475592224568213667362175813966491687423425810067412265166169511489096390552796045050288205578135466218315010233009211921001079017466128110895466119218246114595292638542638908963310595204736632629315186541612566743371868502491732725667862132984998952634033011142343492952022665814691724000771969321861197503102213056586777194624486601892002381800898285318347002447499964231218240825670163592323190399780941769569011531784790934605519352837101520105385901695628633078960192515978490808999217834767787344816402886994768525795189108404033991948254135332102392809379567647912369608328410415246964007078161880785584940422241736082589883758695769741171250106228293680111572981139392036281373296449299091186275734156900715548522995338045335221004076491597276737517956167057686507740052355505504970656908733725482109523549756156297394985896888404810367402816075067917323755773758630222104955866152618159440187724883378461231750402452512069767273131692141438676611375027054501213577547408456485257176915024780976739091445576724241396118398641340761711194734924349122403988063611408786879501364881600992526704673014452680809479119367418391951942908851932066905337985313157910795507040098052280515987237794538032814710366325579479815348829162173837886105542551635695489450691504635865211828384772176359745851496444994485291014961613167495083603217010171820321266647525447763720076443225215361504295045516460718900032159180717045817575510696677637031522932293562817661668426830889634349905390556097339820375388739388182004859244075091362249602139393952243521449818206924066716127044457917332420787490235823511009110434321761587912043430918957395513453370526567656459336001323256368916876759192030168461825932853827867944311643905828309503651661391395529001924116583947165796393026001811371336272060099995249923222360854940557745638107127100494916547254473977493177953101254144884909085779588577671433388098213587799737202117816358267346198070097147722957816911728032421912170191077402324697115635544545403905703087159557958377948022690857238298501115381225001804165694670810805420113541319902136449757768451229987519694360157449436860575292188091955037803040625283082989524164553599977860518829363297983762626183526423857784676614514034250767136941350774455886734431439318774080952958820382059419034871478655584067076771570138476453306471474615716513926679513861777422499758967823314203101276397502609596221440889963044374682996551906458627674216571807800906452783222748228046214898864165480714839935864082542519061743105009411854458736542853920308569145469124462268883360569255313327690590363255472105014589749306345768216865534674200048239696734461165654370047704023515245499682795666200868953735488994895921369951221666330662240421012984897375464151376407145738673840788393104992848506864710942152712588189445345247001529579007097169656002342696602118596106461671812593153582340521125196031123128194919955596135581609205759337770865819296271843982288015797638721163322595359099752945482342155458018869746675898171528727937285280462769014281112928341923145319509548987312720995567440217859235638044136309540938348712422186182190610005736370764771895215864588949417372918657685755087136383626235379220992469981554815695977618443388801757273979554575157324077741849952248469884785776101991826639563914997057009499176223538307416154753672102555403515842859440967516247900858385829271853689031511570842161015828075575450179114561107239431439807010688262340067135822760046684844182105482920242046650274724065962640706783741615273603657846628192223865072442342809463466881434433873768880635138171642677864600824726691467363817078207651837538222934449609135226703445892583462289462477440048821671907696838756253855748926923228275332356090644568477591382962592682391824827368222297739817838902430771329334244839528987116915775721899842975125196852253787244752716126772297639246034264112685879472898027986964965692431292287141584189329470676481650504046015070692008634562027543398486096969971400666406364869908665107032323247543813149875985666065810600792349614270826721583859866353291090502362774352221584006059389967290951421559229037172359781557657901247626430180620709524767872405945874044458849884993258988059976095446414519185859842311072939099554896219925405313561445193699697889657900686651107509025488567120261560877834533323799791053044417398331699166706464216734743701039628317090561987672247975037503204046773981466733111614630805077683333775765956302731998954159246721675135241711766324588404808967639279239012371847024757663669962800407906757576124607563372166074688046640020859801043232993480475109477202327862243892217063840724568112914339779670681198834369866847940550335672304949350978274945767282962731761284391571663024533692764543877099451947253833828025116429988755266683900808107005681268413832570420364867451769569409681559699826115652346200337932596130956092050828701344811570961334237300705093146829182564347863342299937972248886775441099566529526395560792712703653654095557097664251821779446230117587714892659009050231169901491727730994077807546579227492215052607337424863736465530475985251362698487464007519253520221169719369839454861549243732613349547289116928086420118030334604828033391532958391905969305555357518507084502935520633775978433075883569392269286776901570846064787693078360182790151778906876467732558003921361143221423376096521555472108341483600239856489264167555745482162949705402499643882836178737932246529458020492913597323140757707381482802831073201530103354606938530445153730369678119803596686376033686530863896437306613443890794990849341235602419723870761055233349801739110079568325555414251519548965288431988841542280050513970674663651543358342528490065057609332351044926051982246994497703282589334285417383933389694042973234822323310840905169369964442686686387633832867695352521523254242871662379636377513512135127356791877214259212338668808790096809836909913689859962982293401530132385083159508339214538340847967613128208651292732389081009178465522287865339067046944623495529557504896678783545337837068565135312551249736417279025382256661328445822740211362417141443796751075752550162896574037825606893966810077495102668913082827079258457484011009784089071528741396014690758977479954544621252598164840134375656950289952224009531372730026812035599225863191199549861378315272906577548404986921449016416529141913360863629339700250695307173287210232689947615488732920718293127778592733959831520467911690602689535651253734941009806894829008275329511046514478208634949846063425494363849435037479720973463239493110171507180056450941544860581681488550245416109524525200912420300198876397043434277336664958337002264966793175420929379954916057535971651129911111328691239669414975150251260315569504147057866201551880615038263350548093488694335804267499553083542820609417231981784270082925463859192792431962048544576403258657636650403281101930236029498380654958338052170757334871830954469656192143221051641992285802557492229647911546439620387532591825768018293867137687733971964622174247231220503118418952461273119015167039098159615603518067396043666245843438671711927168116028363320878384559034041753466667729899904999124230215567096438351877246014884545473068831033435435047059274940600954466233300592094402498997180079357787443368394663827775006566586633750194558268521640051354116618937410862357248780036732266949829844775728048182638444490575257857214013249054567086527241644582163547474591942057229882462059024752219764795276516138583191997355130499071230229519102183303988518921809978705415103368931406569211817161364780492247188228575085514605425477580539684873100321155937798373903761778716044505952818035699690784049756197921032781373777457991200287840682678864816576175635591837008788369446906068319414777297490035111557016551795036886918809326180383451107092988122323925156906648474335254404309563656838490956813161716753325584647236873136557027257679472556253877496984728317753316598626790771384306079071602080915702209128546851483136709767317769458773093699474384821611602280293246440848164129435344800199384532842383018607753578208905331482799036206071169462172372755574450495602296447179091411288858545560118037288762568955892828235054285314214570138753304881608557915606595664001511840448605551970336949380315347727449558842960454429212252137155632055553846941957899270804524975596344164457799144197034079358953959090491833668149804842590897568037332041597487826683771818083024209028562187211856494222206355252775189107403822269245839005231562903097302638392040696003745742496918510268164226120033960782371448497620399017568664431503190564813484012407632341216416123609490894830401658042324369102399739089615117764714407921339074019150481782709207983548336622213883635995526750342453101073667031626257627538438104111737417042462794661391660781838182492408172982956389377841579369177148556866648745197147877343482099802300483191257241347515902374837933772955543142347277760404838553343901427997431557992552686138973260469040981441461224487671718849960923148615474572357073442105840890018102557523170543548707127927831042832771885263081451350107311197719028847729503482382875396201783173859312882963452402762240728781863927529085507053461175937338173478355814258783700805693031999658428273556198188165131736442587091126778215601876515787500863354409088949160245637249799424076873391601499006689828683099259330371245720647534372121585068591979330938483357081194089299699699958431150820643494214335381359755993907466675773444988452417145825765174699114361046438861336686866301985970667385544784875230252209279335493889934839589996702309933386295026777343196817732158996787076329608329525393958261444100243780454512567983186133442775014362602884045820617263211497324106137182041228943282741126315975058490796140506524873561101622564150931159880216097335747310081344605494535669043044922772503876189748997132379813861014722673507434380550140182921373416205480821794022123723598687993319676654766147068592602899747813777759317256087829674616583514094455150218211359396228807620161575474506924441138376707252518632469212761013849042198928300424444403206658165615875741635041113929380582293083135026718705936352941924648502365303858049934689938918914780530700271131158745746348910452133443327095109894472073538779866677075939063143383793994105269711443819201110026141796348590600654862675979485608569053316769513752329437426250924119081811255244878609843746700467267143844840274335008555838076038372410684531330803721707131561466411526252959855693546006124601577989628244962850422638184007417275115878849836925640358562902606092602907727373391232472098595057471394199056603819902613068178449412172053932215518190171287973945712106877105225510684524608677149506027266965310797046994919692953754169919418642805612346746524875109415666496188794662745387941348378818932310198329197781592648063993135577891142666338640878734645672682409209583441367887868552638556879674655641075780977197095349290510606208932047480901061818932103405667352515220657856695949654480535852654682899781734157392821602143726060178484030084892024978291322395528190467255315961860624395686447245050578137839238595962434955619952304526610801290843246983689654138491655913317149131440928660428499982646751772909050397778080365281852881543213550272680973008136011299154874276321885529807929219588501121395345652244243251508025841680945163766355338379933935831740194075601745620076777370795291120481295315154438589231542152378701798404702695059006987333789622187197160667798353207376024226282855057401107522188663697086164341149253659272547146904931000187055638707584623476993510825259085688561027522884547232558052944525298520113284011984701764066804884954442779918886897584261974267029354316205255767166720084894444613845353694310471679459493499957718804310906737443254026469726295110720459954038242310604165328380928366792957841817742049310952145943415651918665688803895319894226700979979451763412914557187155224991741017638181681973880589072913276966372283240145448544501535103422656221311334541326914758047731217228392353432902747455926512517467618304173954313525951609130311207924737030034526778256368299628927283271601583219083220870804628679169958334418435637872078708185535650119592891350114971858034914528813739148480090706589138541879872085773695250790934226596648612742945907656365512599907479036673752826649849526162219970990133927505775556156686928842744332391002347674996503823581028124881283642662709261345289766811055164674661608031517907462137800438476744926381882768062378341006359288053510249977003345057841125050458740498743133751382751425837418871425268188026942161890694375353548565045228483848637013025999820827782886028336132817728499250410128555465976625961377165471148032298354064199971901710748561733702788852825917386189945151273872660502398840683223143989695917876531117825599766328116214906478986581179132614064751976891254611858656271484372653433190973898656076713344452141691079083181774121220091016467998650618193049865042902164008846708974255972320330739294669160019177445153457689828025487835449193580132471872901022030920865815238940135746164056358637762449457618700523986609738868341152397232116581101975618385736324023013259101061558616186343164227821430525530476954696349014057591214977607571204959992056883023280308686761789004911714162353250159818120329748877810604495908649062174818338653962624086611995840608600534361577203190679715317174109493501353757303825079505783297145075896584635598352836971270720326023352618772374370850901707471148695644768239756496200935591786488603736746726488228255902968853814496224050506962852696631115999858655262454716621140544497731925190984746792976618734467986228343833679343965484079036748914121957328360474143433167368842690344443742657089722203627001646778311972640224493281022272532048509685421623749824854545004427902506732078885568735020583573328508633393044590258427091862383348961287287602611985294582872438517301379848235681901480979830321780582239601018218770924856867748741254755242380876869598263521085606572763476950923880623898431677881598808303096784152031543980840347390962004571634430044149265122622317804660498543948031474529463462480459964030998453557843619206695743770497464953637491980347289632887416975026496344120573791305764562348786818484954320189512973676517525108222928016891199770225558164860528453324234759030703338907014202797076947642068816293647489432331516343299945505120796454966502122303730320297332613475015769658416627914370317938699020308414983963968265323806705124094604726729205974726971115970537751638135991056833864241394951870342412340456741117063907887785171073766377170309444159268336586848518862460559551343854135404775120646476289653890157020872923467071397687134876933529279414435913513329031930395220417043471213302074813070653860135436926976049848030199067743488223525073833823657307746005451402582168994761046431864071817663393936850260884255702959069810653530535562488805814828410825272191520279644944082163225902122880620059859034311507988237386313552567985917274397012166586487372112394074697332043212127895126436550576832926899845714880827045447570136847239386856665147431337221046543819153616519672341103247336653726547843606591850074848141511868217815353909434737121652114808198961925931535279757330936627486449485197349403679679715955634416664710091802457053595882307815640261367213291631316267303536268012113090508148474972211005446873086408665296096978319657495659774633658845548716172638858405629727453830213193353750396532297766003287144968598298767244357025795159019499798444228993370218268264093089109440641547405337819851617881473183593422502145174068122013418256508578927644371543528929694036762252645898477349715339795490296404927159820802915282907871337488101955560799170062613069765980572883789118433640490222824440809366832983441214194287049922115569691528206874462063945191276489196217019743246810541946493190503234823814642582248864134367401277205730963456575202471942640307511840498553149575406155595334710128698332182761835196217134320271277989285123747930323662999828758562629431497712951353928944332441536883506684743180821814377076195840893608754705175467848603768896952109599552932705285488524602755450862629538826208809500067806363858868750055672367013552087648339708773892561846512307149412014976015543418743153057090147794553692295756524547449483574417764744451001381276836966297891583583054253764381403201155464037202647110006085468061443165508145997291253490153615901663088943573724732090544680491362274985853830408132038802908012772932915657560182948415319991201764669233420471803616443635877829174212740879781664691237039147448468800976521562393684201533964273081312171450170188875932276273599676177661570935072484485905935340802854562934835382188792199919642574784821364460439182926556400995554260211781839479639982657856390986631679213208953183641227960011259202586281499660802748186431095473933988908529207523976528560895530083696368880777313289938773661871012634027341732185164311068897152519185563928737498337717586712417002154828353469797514103215051647772434481999078690368877113288049337468998005348232362861536589101020250445018969406728249023634414767460564544274095040714879449465644493298898310968024565986916319052928670199339826703404518818058668908221232074943244623176627986001071261579402665094311717126668262118109356592093954996185511955606323881913933490423390096758914545389275458165990049605024105241789216292592834508217912985429063503147803511504882324675629765668271304929092460976319057665736449996852311315210454054600116491293098076158398099992645902504229657955529449033555363252733195506729642566668519121488027074492647181833834339800824924168129447202815297726012919584502711585444737432492924427332705444657315511520308922574526679945028964027827094934901722310468692766898291278674661330965105283665545506761281684308396706823509225165471056505856820552404972156244591060808913353243002737960100133186816721558418445508220490701924684331761720394848287485189344524122845506174934552633454122056681832140955724828877596274211217693238789797862256457231315482669786306370748171100395348881748350194395739155524842001181972552956174813201055188635776854838062431548908589523359248398760965732071064208826443942875873614371528097112343176281330319322337833986365539344394573167734948989395481859643535044588117455225129692715301026767283542557783168955216997748809442007776126632815990527871654022242092975694044375553522903799880174781330038989153163874396120105529157481413311224461738383092393858199358131075277635933579769789641702397328889309035378678551012821975495882082287794034572566864225187177628395755887283243284419815130986544848466966987531934638983739338508407743193939501121295054489438430373317677822623797684060675152603013348515968902268586287381019060945227171225431856527810884719136647250340856390431694463447649380976173277822106702204041543161833741195532788360785398560040109659808046420102974160646171931778768527703949250399343041423428708685054532256540571784332207958837292742019878396188775474718740190909728704626943469256984572268541783636507209346998144069298159678630137434129908480360739816298175037823987326971475162651836230322756016058962632166260429462027426162385996641827296617095956642581070374966230763768675825179222784852381546029827772576248591280533589189746642422864651404066283873160067538098642051468106034515693233933612023643899959191147256205937259239651275352424441879724229827235251914586509145016764067984471047640715559649173305901376668143823291190523576715080083266321497067330176072238285017796573217117222722710757526962520507651824047435356514586912770530814222959154579094297624746461406980287352669426645546537059444681176430879545676580741119995665077494394460159280629399853229375679959617704443629233954101288971477819199152562745429021192165055026420091350368476144194061337088922338433317316440271427209230364635344913746875913675480782837148113852507582487640779606078705771175699342498883628847336940878642637863734975881019069996942988662769754608945656759830972270870765368908678087538611000214758219578775847477356035183503751550327318449736477313600688129063148559076693092329528694406738903948043134145706306967962493459333212633146043213445453550497308895921784134781110249734595998342428739024027136071681577703459343839024877133107815957089356663749275067183682542195778493340973976104562828962285431707236601545181916230130929561554297650782052895733503984983602622942270924307611898228389380813077331618443983414643993993017832310816557775021301539746371111661150539233555325660548246347434277571844659009727606667156203200471720800447169912951875549070929802678401408109972938216950501325721902312562534603965032311340243474216807746836995348070403797104559689849373259108609103314078631485654874302923988481236329677704005200887090677621467129861287394501449830654022095208224539013380937119798638119828818144372401153004751253345501724010930716046048457940429072669968446598591553610691001733197431762007229392570089369365337692089448566492555399771148171380959202998890625570793584990407307711570359143133061771463632933628440841473552838270703835199747858669973955984007407192461029741632751161982886112051199085457793011748528375840206675221771345366716073852948967145565470663840565514746790921953896527246275136115959285713013876514490364347558708776214691933536382480709609486055901638021710645953315294461893095694121649107082667929992513599708904965656914006235957131821279754228364636773086760666061831202802673141845618135760605475337167416275219085288749799427698122465371123776138520591462082820771974890640456890406366444286056301099176459563738748994302898604182575336694301983685068641626176500647523443450816775290875336819541297953283213674213552321791346862621210135426737152327953525158268459632400826933552916997293780183185747214201669677811857036411757535498831089985300844878829612667638248444537874519114050913492852027173104532419802988273352654674135947344498659138325691931361333530844042113775349889061230536616500449335307796175932287298345899617323338928718091007358867456127604368654820789176668250324202274035968334046340435772746750091980511350891289689169799143416082276673771905531460420026999510142164241477045872064105717467578190418451446395446106822352698686282275525946461221190250114724914938987852948564048249106919125037097436926280940009972800887134227456799397399408380453547815983011098963625946720503537943178817806765876811680744657202186912358906641604275694057588984168867918638555495762461811929595315825243555041697701399851194035208967539767925248056727891609404434563179538321191472027024211436262554121975244228782099213909387018651441945169086195474079612419460793270756126825483764405020878966936862675516662002818725692012966210010375624996394367434286465985686782753420702022339262233014690432546414879373908218617820493165926097605658969098659677802793929357399610566716689966322972453046880199877694279474208863547525334753195575007969889515967189518500375459292441460065446596082581833518423045805114318192707677745237894963919590956579377463393815595554629169013762335129464325645227896222271981416969275861217082268533848548448644703392486434399938797795651148831909473973580594747636866417680801126645028107389945153765874029835202849407168347556593325828052263812444915769367544758945815804774545227245839937510848365568377507617735046902994684955015220242266979942217328930600306621743822206749708159342789408002008547971227625475280499204313173575163075723514827641539728158366108437216794642873834592308617387941129794959817481449091787493743798968370494376953347019158238996474186063520117096852992954338417309817368697777081061899327015498618081749013054744204512691682682078157195657363473158871045499745037213583893503928005267105281449197573977663581645612105863594658076220137617356882003019164322124453697575893885232772490016237184640797663524849192916711466236616236715882638894194429252153997604522076893511489595446420108402567809428301245876524586178443378504650631882622422772640257707569938693629175341455280274580322922213488443897033506753459058940235105765406817546514300199499944952083393253575250428295091636295601404515949118239063411768870179204225199403597624810490805735766740661914026968321972892790030552816271546247250438478616273105482999571849902838848653801446342604863218224742660919084570104645881794907542104763989326360121031628908689699250231270802063447819908911822561224227858903749287461739997307155851836903566479965581118871710181240377745491985225856663304288678596685481669121100493512011737547465182044597124472870525793073773040034868919417753283880512020402475494623467813468123120544179957174411505568213576537695254088687297316754293606045957072513864864609831292780601578721323014716687426227262632570432130879151919077812499769670245439448176575810916278561423709761520207387150422701961333954461963093689059138817201550323921451415518946343345220153405764513727705714771957897694615417217402960471029814047747887628976695886855002984984520902023664358770915241721374087876165813418361762114195765185343477998257121914022635834966360964730222366674529660732290432142739642430443261655461555317176066424847641769303775882635018847037547440095356755040527737559163657766598292230822237118404793783894705104561653424314921154852282492893778176746920107286865696937586186357446546395105015229106403383335682960262693867674094080267413459908520926030400967738034004035330000948118792106171231709455736070382963370379495680059512147593310079479316654387021809382969817521342228543656409098949054665390092270656240759961479615472921379045558906882577924245332042920178350197560882865930409561043697002590118624096140137162301158674387613027595183532432309868523170853286301070787658868936258908715823408437584577606078060629900230199423907184408000215410006220734871405697418360290044583611767546681890741591300689516063907169738685625589885635022741569976013523177505120186666878779757117145216159192994225829564682182923922952711048319066423249403087570430651477160877718039079436809442325777866007870292560471681670576289325506393609253424884399405954374746303457926342331348784400094523540016337039136971350110238832093572375956412470343135468645527048001522489497327579832580535582949862023759237301677032699267704829344795018212130002968801469974592247308141253512075616019519494749796462229240754680381197473425467833853807915083204196740108607566871057711168401203487861316944378941812113732064139510877118876932635166907881397838117870391081679772713648766469732179482816480252610112401402577297447595981427661049802873714322645707330189743964881139394855988400176023705704001169665563631261847579826560335785544003046816238149295343221167777826946488259544943565413273787677883498135131270464498548736336930274272539845584711293979700399152225827093160799586119566509084651171826595912227131623101810439811832443213901585962040861629534841378163439185273492621183818467275862605341468685633954103428372315010919180155815991757607674305821948387581791355504141688413402058474505021257070393041561378955369407071775947645897886593542625958629229765106219302306400120571543182690426220139031365553745737879522957537835627193512352529122015059517955533947169412511515196061482017828477711450459884455929532816952338184558572949568856912161130797450358339641264774369949998455153157066107522990588459161361359477607239817854764327753993678857105067620063439955448756494463143896044041695318673449623581439720614737066350649774874127688468314890763180552165612715972876249969808462794404410503295833596565147277482699863072624541623730251377358504209223519520070773104820120109425187275983173221553765314066645336347814204260166990731936821503261427295553207488812275790185361660833564848441816179455281413355854806407392342448221288733505893305843329865731884787212265401430715350464578263743030334206602690888559066304970921756472449985716961590597872127027692308031872155684017228458788506395329321420946437519282264772307670099332713013073267182916780901609414525776277784976767391399518542954907249349972296578953521077305462096902879787719729792375043834802970803714871630130099913768266662077050582884271490166163807888490898408349330074098198774287792144074043196627239895444584079065720074521765015181034429474823014433685657300657402764901768777105723844355949051235337226114717409803835470704806413624238618654298205611362013220499177522791216185009436753119370549973584965426426480210862213103833826789914052149102947142715113071650740108596502309567524820713436282132542333975621474886615067258563416094304064484731463972111438576459997226780468872358642214153009140247935431039766924889852812879257147860865774173164964965369016374947199632272237334389481494978563301158859956089535728891630299185506382136954027048828485053689136816579133024316981139979119877061112168428447684082472438215901270285488135469585410582035869264196882638370891365232554032746976501783575508634318269620141296822552111341017693213955519927913739028516120079864134854646455727893995214460622770662755315673324906955428736392595322203029032231032953789299568706702985399585968101174658873130329732738894257918269455531089674833250368018958922755683493392005533247703109259915893953836971193479000064112652697412575730502379992486078624198751803481009137907738410072859158235540811732882707564831904708380158878264282712668496189646928915925728399011707018869803726216628319681419200979915614842794768532293882676322933062480158957916894574952624718464445540366430221500961622875444168778841941211018353668767093996271432188882363223817434747483218424949056551856683230307233630224825353665989908238582783346620882507689709020942026396426864351527726003201950449481615859157882489159972604459638702506955011092921701788385023255664404813236505257116210332410213113574872196909998230095556634097288450220737858668219352178265370155162982089631288158530303533371514623422095784955676885248360864852385140265095794499631048937011573291236718274968284865508719020372755248214409252520100064463157267264458921264700374081508803359020739768084823918482529830073710169824656408862574889987903428047273417803302655416298472042052887540059297250225029618602140919755379165282897517824837518658895038587459006150883936654927468090453319953328944184370951352055439350271397259635953636793562621164271129353146204478160627419648219613841832893485163031041360980969871306620072316707277961068579025140469316711699256075124008335683446267216338595190560105222549692481551029691913075161856450212496870475190492757923696651335331917536992572780695716359149832744897903486024802854092688803587260609849989867494867150215032431202546442691092130449839403693254201993761553769989055558842342384387418705474575446617038078470035368634055697837880378939083737004092945507397552166331281297807124341034031711168864969787529134100785787579028778818324507745930683262507465938463777329329257217659646043560366757158935525627891705809323794202309031958213620904163140686486938009530345710818410946527573553740647869739983329075050599613858287476424391219858937200942762374458604901310819507136115317339227630395616783414665901608261505729089891765720159361883963558846264899381217098131530011592246891101747059135985714695042393682937273320959653782741040809945990735522238158797052955314139826252515277711477993892626056848535791023133368814698593347649993157970556926236412785057304535483786452781610514181580058934425672043733931116028452549813020229166996919695446873430459436164953190874550322516127242081986171562646891863565132331543703143790560502860571778507935256983746605226840726758506759154625209833138470627670208287941327288139170009323460993291397720230981776587170655564339748984109755964272636015900283119135744563358374679951248897143923901737386481458953076166192292357096771649420749292575705124467151324270073175317146167831262461371646914695199313288576090244681486895214636091921804540495719483482919301421629357757619760896530778108134639813269588515445405269140255925041815257039443562254730987707012913708893784880630329735604267493355322658393142054876670132087207312114294171959072995940368118820420687541297891937650628187113586017921602731298149841453602653979536588325156475007220738279972681458737354035055576388296377740543299154906684789131145817699391271125880715285719757399816033598757694457624217813859198655457106384286669050858249917177400267990580652707778741442181910572579483703926444744093533703889599092351445941247712289115394495973059635955457098429071255841816501396289924922041178430763652601773216888908139624309012063101929883019122231833868327280023803866994091116056907374061143410510003247542237705097081472932158409995571639284830415076358692290602040246473386641485922481331784647162338227926154487592196491228095692026734302640532460322396602177594839050707416404330511260632706098692177773906636795418781800135726649902217732994948566495870065643012474654847515411923381194879312427073887982583107249648726828589717506650231914410769530818908248120941094601827934026209591886703816027559314715014462996120236742509465045722524660090622918314707617938935972794373447554228359547856334597929304799882338806155879555875512657458825999000015995515447361210085657881605240621672795125883860885383596037903404048973468116969789806604278944968647106544437515676226748247335456498605977035279898443918258834294534116230042627716326301147513103254025669430932967274441615681978004909358921570286424376823497013477740677883101422884050984479588791190589175765007560387650536112034969435697072930711624790608590417477388540671411206179537562184605173909069148455121196538388508769724429763019385781243763493731285051863078141309014109415730082711812603291862030891262900706642624146931414441016014448055078649592084530726597114636923632889504432279331262360879493351896701449703816305239061271483469672280062912436388295675651752209952998876710031943022705222096302684958908397303228031097030259492071585080608094021132250703848415983948391858856341825857189678559740394754843777930998753356641571235919257696956670155184860867369876115994686847154767387814272991518502277693577454508146107006655731142084459103809001645418733363539013688880242043931561039183094120060234184511929326780349713592832318438451002012743180951453413559221390090588794858163603699677197147797361200837463845982576878428726928216270947057903917810414879904468448159834471374929900570761683104483108522204324590937284169390508945518445502983047820478832068984656593564261558483753747104352250617011111298540769338227520464477050991687583704233901544919292738542361727194520271108738300624811065077583886098156489094016625067689489994111296341451292325497420730180577519938067239048415031068510912819304938253631551825971406539904489376982086112021000327376560730076225231410358512413517827442282652138146989482347180998458298477516716395072832739889839641790210180344868577714625384640787761200462112395671116292919272744385308075214792774288211562366147604431545959703859898376370749694895725991691264440880164214699637742792262335501853285657017805521979840634535233399358056685004405080019720342032607199857814426852028569212268974246048240150434424194500435178762434562594118777421868819381186366396373745469706821256614651271989375707861532113176261749173553595850229980043838638897570098957661990436971065932302315709965752528253506735268532766320577031526287806551024438986257851462496522740441452507713197047546946453346430264911881379241417908448019186589661629972420606821629991411422554899405138262471657891800790487057914408078208343361025544618514073715839890565529011027252930743618265463336721100933329718613217926593099261826165857932822804596120698790078970599031506690090589333381831898448482300266542031966546412196760522124715163268526594448573094907834363757424186987164126508158077130980780951967490482691138215556369670471751832408354593692667990316916384513487042569982350283112552495005900318125969008645845198017882679152511953464232954543408934405653650448223190048986072982504029258797958966352373508300808137893909490781811830373176068775690890161450622373865922346204928087038542847425702796905354059408931634462009707784766133710715957593560198625691789011882036947442018805437835669033071315100401346673810113875332134723221078613373597598908687334789201698215337455831117398029548554736482999053110749587605321198344614580176241768141724723168190398547180392788287865234701577740144280731049823150467290889839407211593840464796010162286583419620198695677544474881051951537431806038849754648497093739466413004101230467581094167981463124499975320085704290255129653024917492119677552387732414259747290673722797282465339632352507087209559059315441731863910438251739418434145060061695847286246582794116227862996118510699924629072630841924033043640185845075835455812082223337874728852496277990120928344915536607349996087026439726455113615677729996920443414497094740197021190146106878567155400118822089961432092935591384217451133690774928328654774259420008254747308055515425215403629672096612474034891565317331960108896866353516640352928364585959771895247111089096849219017017564734219080821971345217279799607211690170349787826421421993328277065218467730976730136699008143382737164819071726853468322704798213955723812873814581394055643177910483892768486879106723892911357471440549063613849557724612363757897489417599214092140195103830092539685839711366797657751755176232949457460613060882708945334407938931011859973705017456804467633008863858296535714663767267336756519681086461862360303539370693292104838585329432841053975851433247343964847801529355182955815249028833653312879330362575681611922659123372327014400607771408296014537675906166508660431199488116095813431849830879021861065800216060722301511879428423691078443512723592707101514630174840769184960914660139112435588179803147775153978781836466088074026476415404972755169454608382287497464239127610685214551520307293425171962136404111374605847643801572490105412050600883498327083544049816955033830234206721074134856643581586014617393646803736046833696668106703234711364953325043376195201912258037592766552479366365982545160285538092869649439536000207119933406726822285700204756638826781328148477252282473972055120882704564575923146038155263815656707782799176912411925144503598542682535627143920606965756727247976051386575970548387118267943938733501678190785629744178331885864078071408000959963661642516785108561719076397610394381272243442773535660629985159654682638835114753548415718992128432041702922170858986434515425797223791402899188199175967313949834368011567886901860319909332598015244627869826087867545562519119286337817457829120282434389157755614999302320013293447865573867737698482436820457949956378282702484473782112482549898348671752543316963035278812933426546700491286663775887996123481738463475333004760151211231018990675248196110691650883013577525436982202971846125372488623091044581690220414238067162178107039620478474013971355877020516842329500494103182653155670214950727579284287656040388264616617390790572363885701208029366058254993794718693477088093047607363536384679302175000920978506684158157990342627184249682880691033549871419965706920019895875872638733368381222916749583457007192334117380099548012826276867330651920579611660622226766075427003952273607279629885339505679162245657109131847729973947168287483528415464903064272703326468403739382479951977412077623106429270468141728060312781509433949667869631366739055524736509968159117545621720062790190474733100645228317359559539346125439081432826923441458052572320130065693944163254504534304125456006498248402628302303377782890097629064980466215834250001532603338812761500288899990682343548517817495782333669954125409307643828265909222475849054403425756415576693657863385935272237540016537086096353223996137229614491531978971076442814506858420917857705812435306593472555376055098488873274505127085377284458336764074009740608919460161544886888364363594251326836435726019656413742557875623477806347437853454722453533385826319069544146215412729380383337509386723440846382246413671627144485929237874960738690113014755743976866443324551014860833247355277045014513244957474152598028949512407015628515189889174658644286116469267135609929586180597375085360641974367600852381911158184237277553844245383859403187567384148576270899729357793989595264280523105970978722241922813423869525853223527531995712059283602881869258747124497377786373718011935276819310657289012951424395685593772686955687799313546923486426911665742376558996715385954775301173054622737989692137993758463531883765199150843895859251819763808921432844841030910087513891814802254695467871669650276403061716849742669478801522693192333490224696845658859550387782732837058991458381892904933232530565523007819265013495346652302526116197128612782301256604018244351852384447325835062630264485793769219469031385048269307539987070310256990363733205816244713677470700371280775002698123475994564240290656712767143272402413562744091191466261980084994612251950719804877652657588970484850772178798682138303743332126457116537228016140953021304011132303857151094286999421379597936300682161377732411832575912878810166284886306349508595901639745278208948142209761891593714551762850890084864622295285679615986294535565676244264950592781325194887628818250857969574742854110498688750627351637744077626282177360398514377647895539660388767530629840807984189255948141808201660926773356567787625680657226122189635610719185541158663745743356388540245542771209413395112768012470515869402155098406119559072950689734469384757100285717827296736630118735555211825574190370450787316601909916904332845860338410372819449259950665790568399160728547310344206250532071301603054189098357272543752749396553747386106499279641459470425845607851803413378175782020853869522799034948006630483969623726136624869535557234225987958267455507275536798094055888595243349687000833759028308562734112035511968561983729860261735979650101880995881758581689585083988148262303499765598258888662629349562605641609854006925575655995042246460441657958712410837501768738510439884513099885093663154420045418276867415010033823265471542904141726824031865002374427478406313055685526921134638906367099712278523352088778338272694258220534957305359297345156681284393345376040968782808741792177471616715839307428423088314606946395586090601369965017773114896033576185641788244128369687546131693116535087799460024828767724088423072871504868588653372085917317531083129470790399127958010793363004111556357901777139582242825645981398852160314793428228266537543004879466566538551499335268543610495772695537762361368367608564752014940265981758314948880960467751477084135507762789354509491568545886002106027527988012891735751521821130260662092138576687362588174826377796446855375892417531806290052076046925119140290192457632656101852557075269545863752138311991399412371238439966740439774134082452796282208812422464877992742335395763850398389375776069280730091378660890289502433900131962945546265263234122969304129040527441104289190610442667280738037984764883176733168820980634731591427267474806325067625364370988926812658587903986898986786927023754559212568510352341079396811016330852215088391865505274081955709392070963764998062860547794989640562798229126847269934874424771798811420773911269288451751120134877583422884800397119772086981083230491693494474396046820874707724190549560255091119590800153235859484832909073247519522014432407942779747795695757390518921023428190467011173035919543408981749225009898704355458678077024012463096117738610574337294351746321061967858979858361162591228397742218521240071145668407531891453705185709271863442662897976342878960467206930122395708490276351479274036892826394591656336647604106548446530612148869370952822760663980817918554720241628065375062038538132940473102560328117411461663891845351359851441041697623086431011109412673346735592879398708301075779164687774247106885879214947003125910985935105478750961908136556097273101856633476905842793424840046592408970469130492544899032168021657255958334227188747168678551227696792633225022037080776026790223863465764858955217368114824209475408629081810549581844373472286364189694926688805678200162127551358259107395134886317380013483462007369093448452104348887876849683422421653601371828227930598479188686668162128090159927617169599830466997372435853028196731540600098841552301199759503336809783468624622508931164729584256426467061815779155787970667343702336950949299274359202308812985561461968233147544364550813525376486033873377426519268681476159728202174475720240695560852214417752192481920669809011579063441126839772861688577975701724877868367927285045418641421868142372158135112042199389922345862747863502893831383822811219762649338303174689025901246267603330881876386561768401552431120011759633550510559924878963769362526719326684793157934631960603127882073837811257859942305345172535860417397063961085763638964249895792518540942267830120528531426436351988853857359999233931962020686222589225987202293812884802339679393216982431075224821954071897389398025314603076066446570313136402950963168929198112519014189598516329759241134625149107424299781818186605167671577303711577201542405772140706011137134459832886433554165189813142147684618849130548622393525848280888275908566793517302416549604108217016448679114197263649155668644032992919856801979758873021791509375140507170837790587261683177865035377976007481647870298548326404445373149263909911022400657738600035582845263027261821307285722926873845513635171499677868914369353869056998815353060057687797904985529584992062901910719900827738216513634194502434065766852479332364692464772297392959956205783716992031009533659676902322479412297734231009779970774876908898297781215043651179193694301301881908421829119454591716246709294477143941034750776636606980111228216241297745009457014497634867229123711855974121042457387005303891399807556454897917888672244987991423086394068697817610967778875713218255902329945548504043918347703094525122395860743292356620617037807340803691059227041645888210243506216337301020634536392170750312884425059658164748905178168126077858910945043701962087735940196359445700679518697916316495417440568263911101068546713266671014099684693116781424702411173068356819951784145107293970249494689425971063871879114147582416987451605052341494539435064371291144912804139207364564817906403963276121007398349989237724168557370509580983750705545179195493261832181277267920207318143523528586676732233150523183078649069986276642184329043552107123257488502339563174833440644171523494821723567386742911364900649984042841583055873560985333538054067830249153845819824972531209094701916892932247987281152573728471601829740576237055215632391967391221410635286768922740949938575992255781473713546882821100252556819890174889219755554592588507654780495059547700313465695746061557578602564734491778388806539675272309590012739594750863800000508961957769507677686768721573638950113699894127348001769130552245666097010477805201850639334619856519077119493175856113979445929714138305084842398923290367866709286547189948756664124379304838491173441553454653066509048165523844354824041751448233213328085796811644455130848312346238832922447340571905237049223140691488574651422518034726282338805306389817805136513206220488863499879210319637516491812697156903044713489347509134842182853225491743469916151570766429549698327669195216367759365732477191328399971285285576821101764135254928588977872951188642629546146865880930179000245814286514888153347292039444765672055964587902303871610633688841915966742918070427433024936841065557359780242478903861527426223402266570548700672050652044194872481903041622928597869136940307326273520879556428223954236453190083199939293011757997236621543897313862052577126441820287323075235252067644027177440786682680693574764015398551346711307233573874913556033075482628601592797505445374482320870397312264235286526692323672188630775384998135718427942089311013890461043955940628298037218750896950413181315868326317095905570365594796626553730219255696759770736178246100422829016936635388488333592747933694393221829419342780738446510233790542775991128129610832234054363375399685789736478303763310315383755682760875942958235348310860239582454288874635894623844244431683576310447765540663964435384859747583654334896271218196459114300183213528134974072414508730943679925470600107782234384029695167514069548221845983170244607689720996031857961587557621808929826194769710994280757180125394120165918619158898695239816107697715990420216048081951495262683996088294414656006380535134846295029041764026524821034867730727022716395273064407615078727019316195308156670302860130855999167594421777099464554258967360318543631533327905562689536131976999022443410243595762136580975818022679013899206902728220474680917307500584403014679798997077926694985724150439737823806955131252144140281064076855075639384276865034161627889466199209510610240844390162357603650401761624194938713049261728775424866719204624178615289317575492717184465204302400716108976466672603752189502590706359044716860507248330836510937228552816778152557609690103049041782111816591851095571109983146584728360210911103482534904385868086090798120657571068337511680690786539852315190820128583979757339669221119939509830303773545380704792942395689590168969566735644151039648421313393804678489078399766371820751994118108905885434540393262495893624303244017745221141035052747275500715782573923045716871097671339520901231020594929487887663811946859084205541410734827473380876661805877547664435803549313707111749859019063077352758963022859277070786392731322475806881388841863731407922997005441739703577391898869286257871894512495143229946124724694737653151901096815526089124451904512631226358401142512270809314861486072029130398604474289481213654857489394331314875793115355984641604736945773572748492505607354067435627901716014606640398723227975914850114530107675438155166457994745164102596010795637464133504923473100745622842673093575862522210416246804022983682454690520364942202085094908311664051798029054582827791381941915928630283795585701436654799993505208129261304899611159493485860755228569734072393233648857860280258978094638658127117439365329189088382208716532455145304913087409433560597029156029391367330393010303976971494123461476214978000199749491986087825469216355865295984869154157656370698618596490503831121614024329377447265659725933570303719245952967233687850036241741876548220626411985469913188728060227589674067100060809032527112398813212592454021634000414493126158337134501474396423988076332815023528292875941587528663556890899483897005449009518239875851959110628431384748273560527338383330002529453646354557331631496207495602312039496393280937026366794385793237460346288626324194468830011887011856199841450658008727934038855192353148583732504400085718776887453435928063334285033581378285698981093859637332318721897457827142657721143943215753704586282763755106268267589050229847904648702461742756488025188346778850845629106982925623712921049713914780732022645571919561761191023759315930637247673511465582593229066703938989951265799171025381415631888353473360847710509149591008269608216036478736539323086851243096182587613148296169978075387008306433739881150100014678536671804787478380950898466933435021178548503556622336544636861637769382722734901880551173141508492322994706141910207528708906990157996539113012106807582667103912373998134679977518924317733086486423329393892588734506099300798724328067329702015379457110726148910382875253566661230728473955956735221672908782886060989057322204652619419225664257991236916105190395931649038973745262638661536239346983340559759878764782506029369172356075239029511286049871238908663743372048686412281124432934361801235390107276169741946710890644433364345148850551866465814437574919178664141950899372819152940923678556852684536037053566353122829147220753147922002097679805241926438754780615719036517060296171038786070321608553602088073806658092350302968290750433149202361872282791651304471855980767561607554569574176774947986016476685368185553062341078753501196219790966564363303095901790283935202471541511199921934666795174852426365538977706982210073010171017426941868155044597133244246286719538701865828496120372881232587501796476211077496335549888798437035773325782954703841482541412491721079233066724270671048341149999142333276006610778255292531791614435440933716064437785126201131085343625227863857535393298230764137454625702936791293388449295862275806600865977293224562990189864349973557415459046642446573091080271167335785632941215537493578239470099960562453886824243589313871926995249513459301434876273791606718064198024212528330915545570153722880338242801272978248494022709691650745858236959385606193127029740588606695204713073129650256649929432527544241619310945534252033137061714076525058020357817177957818913804911252888799998915120526896712102452384773876658564044643069464262990799590789706038250922494249505533985717381621359063686128598712469767096752428095345164482935459752152819873665850331541185029440110722316518113138722221896647839950307784430741893974307814596168357708949657517633969894856637342906920489383627395539542840697708072716774775025393772486593472159509939966197503733394191607346630749171307083060738935007648371866765985600514043163698923812145189648753325813742835799915032708921791562330488515322121914295789356335357985942309040201328291720814661868903108115793854128384488475893616851251037128505714333960733975817321437645351546869523293626794973974932289246471430179358248267917005283457727981969491507271309959838480039524703350870843265512750398340491807877846602160694424016556264480270336621565943158659590020363237264024709611247874196059125348901356590024327259863905275372197256999305305896484114514077872236499331462837297306935395171384881487836426272977916159868977428790205706202962494035697117002214980484044364147449963341056403437528635371497399066587216974673332799075766542339974129832243601160808180223346750654801404819640454299719472691212952889430468834541327250824130522888203060441086269147290413634375222313825478336318616032503868524424831410515238386073713185673679914365351878753811489905756919920173563742510968025332009457177224978266933658699865835459688047777839553185368344255616395670464199792411708528948027000825896638691009498160749915909597635865074422778848831774890129835210883440167603661688012906234906950288483588283575494963000342502121399595083747598651525809905577979454782004359387759996538242455575894268671758299413733221663049595512182399137186535576306558891038707824616448958204391966004926100699781832387759850115746771221280407627534260930818977655803738798141256127926332418752165965705949192700953538219388539654193977411370874552882852428397195969071904798417679825780943821513474110496198228193461585563092506498216188959073660114169605876348369550887430454840695835291434548061442528472964806171171079369272089748439531979557621912031558927520476120058837742273588102516207840499706163145260033790842937265473563076557604462860361624964798047407587182317506785879826511115330308853251539409136107003958002543889066816333644015521173507133685645202363072300216271939218526580451116296836351096699421137909464741240806874484470410752295410869655747229591451865875063544132161390844601610507912733394338854017595954605689496027760721416588629361648034518436089568573609874387430512825321373139690950540258342300137163268229219848198701766126183885571146532140693459660043233589533483927801869862429922855624903048555067537656558319735187421139965674739224423633949946727793509304660935612786331099508968323933235411017664614154131365994141917290118330918216398066904557393058783826698069466594104550482672388724647944808677404314418160780091569043820892631630065752107653618342100294858667938937862357059043337588372293246135464422879934317160020455230892007771824376450523657202218422199841352912082487878303916980368569267141974507609395481048719574928442114118312026776667221322455769315173003766201826136899753443443740175414649896698965412739227811638063348032142615556720355079167563094887937097036523423403462048969460661577849764312744191535493143845870906921339463263842662702394417679800932210594820867346063022614828256888160830100848160645482966372386451928693194955336485147991344285143470381827996687528868852986628485356386561598209601423403442898201102528861111474110256593098254549396738162498600931614676685942169537096515537940121827881586726166570736736508344413392991886218097913859050041434676412210151343698178028092345852068258577828573641556289482940246035924507666300468918335734728439859555685522331860887235604004828733461540719904724798566425290044490536445363939183037689186349451831979909162632592688241448418959471204641778615231424042075171483507178895926368071160825438981362784979225726612182175225393810374646341698125760867306875742116513875326064267901838887038977926368784286394251663021997180237491684831534289925084255268388181110854317582435148316064995167542676929693090846318005538890842776678697076607528000225365161937008754807703813120298594764236653369101780566309210943253959187786895434248374684309473609300340072852787727463229940881741203806938351042651164134102437927817612588113056187782477276507322374131742075900150124867798563361875941789101847350212346897734932247743729753675485899652025369855280338779103832197874215461124833534898346332802126132670360767834889592279689860338122980461468829467011969542004852884455277066971101124254356360833112298096338904576129326359780423013174572468630166391251158776057457476966629794325488092035227200018374178754967119041839264020633506237471116623199316854141609717170739506139884225298993561094720359111028391590844059240417018541043895671382427909935781605484421656281470550455678299998896107458889292930440136167570229261338054952819759486407332132292009331599727059744986605159275802149255265289990726328976844947103747506835772443955922381141422407541939834137785628102366061591790271429014440948226948330743061924521121108135399458949924545112209846789316747822971835680981009008730316786193015042690017841990278165057185000915190368371273056136232984789424390455817346678225457139813993220902373970050925782969440080781040703410747321321618860357139822972305709139685714416799909622743479551570611053758858173191598917345356646817952325036243797254280563070785218291866724653053531034195927606894607804562529873564449402175482004506273552533813347507312539256632957058186038593440326673101322413503988066964231124023189279115302606971759452195597115205557296339495608293453585313298485573357463333833881271839716065216579211868278037322013861707440692218383330352720577221335932022689921865945637862441817404316365029059588129561334363906314722111160536561356335421922159872418993957656116141487335533777886722442494772235346782630111286822389506435708323268227932311724832203689223073616907321624505950688932975719412665878618107623564537524823990751766174442856569922039439604602639874978175663604638870331642557463236550272994935868556928836175764866556099490104852088520483102463298782211738367732002555855074481478163271726721073870037418982317760252416502126887564650136785063441981329321453322993130530139091472531635606173827782088253146755582687663550470275590096328113873096350335346037859696094662400576546662166509648027908562159807782450462253236386122156133952133347569479633221318286592722361638324652210751236039070113039755490722513357186461553191838562360777303077590746793422646400144624917861313089545444566483924223051192952795268543474883697421091805586761631812772606342915823773784656874415629404495943338792405630295181761395064650640736964600046327830870721079270793005539934919942999931005248751484848236332811268604547376876384855277810478014966454008533183133686858524619719905063492570801553349690556914923264845332145239414189585657620416110644689176456307583523199396212952084547755188833303912477599463653189391436366769661266461158617835617607765503139522440282367192358180083621203535685370472686816882875561710351990423353219837647704170499506703495190098750249054643234069803789087094337891525234431214369863235175910927677056292568666064152902530326486284802610884896753374630190227880126143458102478910295998765751768389364541729358289122292004868428246466347670979456638283326114273392104787091730398644520745384990702443814009948882291966129485743311537532275733925588247355010014900393834367432233161844443942762372258283060422964430807691636065074835405242286783012334000714399784662929453520349310209491418088440116239944276864283198047213881651795432750429876800537389008908262860745944772532784862401898047060578983559903956390621466206563952185343078339455776993506025613126117880974680939711655071502164773385909905882671294954456993778538013816344330552298720338573865042510113458180571782836983622129443368702999203473746878462754495711612952224246067870396108845378564150843844718342962291434450842187875564691121633112340812890164027886930344755706174895375315526052589426130824211485733220758309385477250210499327580124688617392075345967100828981206672404032960068396710955645874762735633131743744534637426069767805818524707627794763873097445440968596166924169881131430238578925072496844788024923501359948010951339635924434867463072649100150750094785199519908302772383797160610282416119050733818460785330638340066189480217804226268973776037765978337881091214087800685385354619371191401725635735934811713382899247122984558483012831292738068662648072130086645008386258571640672014728082084782891354221322359250173635693561710513171221675494113310612826850525499561049647892849385696148347667182957984768643660895235060415810807570283953646345358405686713584518501186331156767981380046327771150043699743493903297686944519069430441727740060094798227810909026965467348489054933573707685895744295187359769464048254844460992326804664574785694586255456843349941569203484129185214729558919625085460852776228739351404157726632884440221145893030484688269742360893628573772884237152760913861039305054594826373151455383826890932969776669601774951637995446680022018819090733662397169012801567019657328885236721169684659397203567437444853110417915452030244812956244307510920451576177211369497741746187191209451843723014732571418072132889400571684432551943532217625935330982635581108384713552404181045258234944538198654764099150132232929328582284119943141335243883725889945232088890455097085049981777709447238598569380153044266639139165269504137360635293874658901629057546370435347540097129098641216318368294174033395602025222986645257404141690166821599841841943776929608252420959524796099560671573457015318103195644973960148767402581801051346456187051636423088743219911917682639538958566617137992807642772955707726456681814314691032648159156609279175955539729787613140088140657412978653771291601773903618668980534300185361807811648429611066070534782346062351698600746209461865792577626823059530421846343555527458853762996541632806872586818748190159391907053990009668233243124672679328034600279205376035528668267014782915702590221647873922749648417616556042932239635844987354861029753866199080085202755487459981434849337942123020713744305958134746592776128544063063271366799413493381965024969290918348804997100068425903382837548563161040498608694837380853620908385097752495356765878629550037677497455742557618573648797952528096985597140318989249407856716798761369045133439907012111149378165081434442497742052532231940103976421378202073721333822818341451875190424193349994026078625404008278340983825892133093834745623575463556884748803432006236189712946925677849258709659877090348623402493479437495109968823641681371254665521421868946437574392058940972870982157410485569857007828288567456033852495922917781991410413673923470158109601421060155842934566750632899117052200622714818006387559532749078760764046967347803185217708596472779515247023340312607845467907535051044690705309532483977939823736555706045739545005468897944176546966433969458649858817258907801991592560649757233392669997236798251330299612730469546745082495270129794735836234970664537365547364945599143083342353405387324869612663243620937581899100174892523042602668097353520430732314134783919834098655720109894247186445868459491598933915488659689117744461839548148568105043667937251894473751766339042497176528764381584148965630143335577987572649824187669602217048430555574532294097556995556958647486770381711973400518678714090737114003511486970508471540991339873608693109889459010141935863554704475598419280911353288358243991473216849305784422676513521139053918878786912090901568591118291154740975855187366605315099471887243345862981615357880971136345848218781570688505259831328173317717952765181209443423746231066038247022990523114095085984742284450609079906387664551822705457520071720300016411371644357752818535839274443190655391801955789346297681310035660482478014228460063587199580862925374717879232170593148360577733959010998881187885261117742461721119269003910357703344472458431011888067034966773195701373173326020430096579830929739836983524301717178684966620511278051155508936545287669200474873917983576976461261102250938070160328412465787648499496217502253152979383205306525070178548426709950692122177143313397787694702995824143385216665722411260379128521251697511871887348578886457120747355748152508940086821307512952933096796151523768582423748648251868869165307987980157565164123849569728386216830716697474656904445388598715967683809661864909663027886197752706821891881753153744507102758839693777575884461191475807710967460073988872219502047229972664906918836255938248108815493499976253544441206426474057204106651745767721255933488260370634115415103050784722277925712907096029128053291793712302829365235252408012837518976085096072241741506411449024882521401325729058096817356506965229004030111586978785682821711785478860946872998026306735994388959774384708917065763125324047188238609608022430233869565043083109457872315919850845058038923845596500793503227638408690418464254359881452183791428644127868923193599578360408201089614723467436792202462875511169233959880128800517490343155978104762148042918316076639861046067984963525748452035287561040712951922623649529412496769953945564021405432551606814348188010237110697940838110913261231732456407377877698725550830724216076672569814326487647889557399324045943106964636353148984947708886495315534517343373007481048909317560672687515566501449262930901082766526207687400262564107387248241475129251585769332818896406189824626526788865552739846429742305627151149343582428488716680238408658746126210840256195322336567762082520392395653810432366247223991945572771796164348719922924455795496268703070107292289532797531595717015626451324848865407598671533650735407442418935945069966287792823905774598645386206156261850102926008073219947198367051937560761047448202098089812518774505929348735692412768276021641499019091318150246957717799008135608581336607094700431423273730974911159206822933688835180496472212139018442649757113508578390351602462851658340782494534994606462544674899875559067800394863375427128234740415531768007890113639718233417725498018289291228366370002628938638797769177896378244377110997220836941392153139082389499335675169971371942602597125179493595393578997465131111903282842654255854414815042199811533124947438525070835797126477255769527104009475653733914440477226208957073987774678716720316773715301417870943867873714861090170899020133822434071191293126733509412354999849170105038756867278923135807644432519519954813492573472208213773686400477118321669910813500285173173317856300832248979593274432261662498425242708399693613237038442665229436985574565822316453645138470333177892433916965610246597770739854358040892694312720194493749262677650603865971083709373287343753722049395587504736692332095442836448639669319919365731961674785834030126814573235530717173079468381303374101773660085545542478730739630868585098683113803408665229590531101631996830105725479205834689572386097758872743448358318842019309789264154479188239244787940315726595583350673257584723156663194533510438469174598337104998854512737503685345010121557906226177972722634929815725425934619594311532829803498786082284039292629303543050031847422909572213181274578412005365717169584185445906971079886690389808807048753806116696914155416550233169427768832383670101333645130534060756376973700962247104878511041711047533850379228820662824850469559438527515223878405356415107962721596510204184250558547317220595621849709820168106822546057839053914684584362358498397244551090718763609309379974121206031276238459015541064661825152569742632607219474980860005987934928782893547377604361712721173246765686076068985800444447971619279005906850146910260960030988303530257220378838124901131289989825451980152089197995005389961472724954202279945510193480631948918430158039445210733689093751767591213419817244700447505132439678360124107581309369128934640213939809264187616757955544402970063638116532810172177309603458757179736436705469298332836573421217849722520656607271904172090011280718768164061211985842159937998752761131703691853807376461930305414654791628986372215062430279975111497898410609715889150162716448976715962961053520439716670783878198492662609990873079624431254135284419637716279297321960625670925537859474746780733176551228437003755192811965721080836836869397055703238235528040632935087186982354220660751337484799924534352914876275626923098257886000001479031289781753635791288404946002186229542048376266019025507883029484437660846303024547091311149409961364385226996961860242674977224895783845281369372241328043834871824753283980558399887664295614187671827791759426121289705271976684788979945051501572952430927091984794897555981889676816644897241560399172105639156717439757550404263591723895186437703265127695559459398416009165005129037485215430825120034252706541258162315462562409047045784369690575444796017364463054116917439132541961051990748798035363862868231242892026876437544919842262450246017252139024899442267297085761203051144622298032819276266308444345139766314517667096959055047963959005883274940120301684103678227660344067411813650717621747948383833821710773200596218023921299300960314666060969284747821567126277793980527617360639945257710077908208090151048588317924768834097152504350607779492547039120732091498559903240920601372461417192848991469230170358338233565790824117205211093368924521006773353577817477795539686506839149310715491409942338409421598038130576062795234506658788859694633733991151673515104273390062664789090988983643751142983010702567260863649539186678760611723904811070426638123091147893264359982016946806984316458764828023560872073289565868845098261931449303915051055191837430079354143549232262832248337700637971183694295951560256875168838301871593290625782515798573210488958426402944442596517504229243861992550734440381550904727184299279141781293173307911498092880260979439478463927373986576675413904216989843890176379472484241593559396864134110960448646127549380294626223307513629274754633434673845351197740689532523565443837466269054474747572475267685045205381877531051353093779238432436492406044104645231113880324240668156027587306096716690860298267687292979623348800331757287010970437265996618683866910625912835112649638428427731793972062939320898233542856552294214385258062395425250651695637207997070019015534184244018641025854893471295676084183775333059482773283930580669902733572146379030208266267951066704083732368344310359514185401599493296011125699493259414099511470300598346104636690137460362591597712345798590107596424897882091104437656245286663663884885035676397119731495807107630579670204327903090573174598938927743049132063421187837574518575771538061142154209164798888525594644080773354759454325170226354962391852035320363435332102824809823742510429423308354297122402011545929949599881630224283427680043672345208440851628315878093064546878125321724086986583330326893612685775812660309913877981496937867458568112904974180952039086389724387478372583898069067285191264535996868223501875389417823059552137396314733758726120952328409679401638180241292457802603170938294911278124251104841010408525880654829187871105707156862909075380875204196349492593892706493331915076720466643617557946107810903781179519773028579537852746549096789235374549500017128614696891340079789341175722023485989508902169730147369904721651070434546479734206500867301307518779715648176760072972733090535691711232892169501017476325413853539674878263054164534969207786697352017331980038757029225306242202743969811010669938479720677930512535998292575343453645712228040648191895575980573373038163020204814198041757041881154458980050905459572379509150217730996000417601788225317578801918604801653632167038040882143934011028607379148566017539247589331450367104777803207659418566232894468706922814621507860875364655401735076093637630567101426888764700096564626790590944395842591727974807613733504063822293677094384682425118263282412616223951499231012035555201736440899453622975910729837059330298690800573045643129014259393747232343754909077431463645409142616791686816687793654431133402617325286814547338818248098330518079805258841152601489348879091537361828749584844988961886106195188097441288008048183681457275216410643727825906807181943460629017872564746556331006784645740343263447297061000505346974418620641030458567003839481171907216605535672349485006591878631546398640204583194395497987343375407704705836285750579219632167836655887378596223161695308782338930526938713353895376702114108939172135926749770698062778161559968548289323762809543625941787458416985195326506280878195044040875562552003983846474533264738921901606558285372413174081879957294984379844571695735824309932315018296863033194061533484718911021747688236103835050337702396309587719958552793534386334399771824886316247228590781796848538824113691190950466313621642168906776613923943154019444450838710044048700753402594915974454355452823241177039932958831821373631961898232395127283643137845299137824720174103721849794423791012205324711660801273117189653675187784256803127085817667072813923358646320153802416649465897786411036658282155652169557785101152268916600637983404450482117052322050594164018906644618931203892376746669479760831487656656709526488276921359251973913983766743422237330656109848082788298336050112545939020616789212657973752626353338311079909447422964518760305494593844536121440013350998870280502870750119131482466761152091163568788891532127980554514948777887542328853716931763184071045244230163952266169787649644650855265384499073186180969008110823650466975811895460547368765931274642487323801578295018096396279206419790151464173232797777657431405346232504412913097871561507456341537627806554110675576156831871652258419157169199520180953692867159278971092040098925639242389922757744974346766415411984019162255328257257824125091221102390049931381639807788840146076816867068138880444483122366183472839506061672437344228227084979884315370328953248995320657489379305211416383419284205386481533619187969207140291328643785161227120437301858900442913289972581627617894280059704237129628388011080443498985387956939766236602326631679987970560316228019861232462251716489740907461621557844802691826829416942634269199575446284847699720419444998650609563288578704142584339853596794651424876428520449206717413914499134277088903820871246299838920885469804809272536718431703707055768447442528514418670554672643548404131297122689042912308898067542177518074125543700259477209901011445703888692236996707018021567842286591384550147719812820660762024463426804396445991889661206561628358253763006333839388732118934421001086896031699094002417533729599397399280156087234209842963119535822191950559530384119648155059193221397627497396983521871755781341984637469544691168469065758767909989183914785382078489819655092133526261375793190546536370880583557613762757464058878519956634511943404356778285098588592828557420654376839097577428997463038294071979832478877903974825188870762001921755103446650785282637278489309932351015495718193157871685221174803772734415129181555639450612079318431246378460640182075656676092697354300174666149335160724667273348553179025896780810891670925723863602696347214614965482876224054293328047720702467540110183655486916330347665691539588901416237943682661290753471171769294823471121374981256547450652700007389721883493133165763606240497362508953404619501098532836097878402152517610270904825156077124017328547379880526316437458976166327955823370685190075628453662608267930605382170884913515480943920431728828751951469376976159121178348601508800719817488433455201401430787617670719667665070044715468795724468857694322320256417577312377552375714770108849981240831669797095674138034841369827883444575369482168200960363323535941840380618697812622528925820946652994251056820502773065122397897622496390009728662931203917142494218219537972562577748106434817027643355343895484981888308850653503780901113023897835895615301855638731597586660212551315873317642663572005896072919032566365295793083589023495887073098596617163678595484319228429974874428237244402802783620683752897211494601859537540738075700093244871118126152915522605265359084586816865409421413670432947888033550687860661834935715629306264493643899694072884455008267029536027945177933888353604555204872107305838930104140208000996469210020892518791376152773012801719825834211806297308425057126864176194320907258316105024973197478833019950319590847901490423899088901715569282435118565626233494075202155485015620021617080505986231467738536556374232235945046784091545805235310371011195180570505189150234739699858786208936684888065337257122756854080404827114321581671104129190033357210632908610358472295757624690772033664313191960732430182432085206337887664655894403337373170481838384638646943802716733493143319696679461917970696827224705180924135731833291927797796310374329806910079322531896608798086339649688014357687710134324891631184866205131776418613334759031816023158103079524763766854379802526510072651171006820996357939166097449259780945915701320337431095931083949478894132515694563924348239638130958407711534523972931987790363550409063950465738336380614418756917249032512313384876186687921308179329742010011924040963310566560774095089986308778746713098414587641709393970665960579136596151803237843820501481769058757684728945368086325667731903052978302395703461115036087616011286412459343811789067643713981540035958941086675885241805141866050528206461630040983705065241215811021500399022986179249459444749984667977422985113932773748989949552372636846482420046256225727040459694822883900549843123025017022325192254402051695314826430079402149484335094428368066020593960782101606461491809783065594795387665930864777890123430169637435137350996143418165676388276100425576948711305667475805135756663542967513284705749608603894421860859228726099609672083696256949661663805545141052094890822002652536791265493972641689561352653708670284846015761003355643175674772325737246102479116824643919025157008509984085912778001291620870678750546038137332034577896245135048982099239228601448414578506020875466127977528551409220811917389499806269238121190525924755560271454703915376860373212760448149868211579952439412482412148341128198445726321698519803877269423320093161487191104444325221812237858920120919504927610544743566265535714217482064211996526156825192728638227556520371110223814250337755103080559686084126210156564076151783826829643644331755204174338580887862241931597827975329760357226745425155120757297406914187355817188245642404870142777207197971404544856863041729130091112963969504706186681013192768123672416081692813335350778422738784279894367606935917938593164673084730946011785826425211769881692644592621027702365134465149495763873284728235746956056776426559119128080346589937565455382475076595349455441714016186606799074819821852544835283712370888129532939832954268138834182394886027437772059805336829094217583585162332765723784616282424657092386044095964736959540739783320954683830219762929615737168328632836589471213496324387265545476821948597681388879155433377620105379740169488348052494783801140505644259484844800018593693050630843183018046173794964776515837622862837234416464352619865272668574035770344330056053119035522211592179607966495244672963656413210347571045904792874402584704796792842483607254327596506118382051319949826138952400548082653811621635906519397175771223011328588655162019876960995341359212820588247978460101385642508485227608456138838275079444830273262002085073277446404329143000789760522169671075062869631463053479494808694807859097978088093099210629248726727649393485038075765303175822433493836662038876843491095340237533641732727196015982014050741788190885073416945936604793273734329124597973412768169887149447039171856872355131954618342077426343315376266113449346006131428568689389732591150004638016151419976654861538945942577248797486685329192603005843802552473704624826971501058172768762841362928274377244100992569688291657982209421865169064715387539538635484206196310896624482822583740290983437291169532908351555789086356626671301025288519519301331813981890163033106891251393531211704501194365116833120099375137488249490693556215386901329544327388068606113974925928286991869332153178400358017540356942161583491690071097442261412026881472873098505215330982211171759334459039745152283870933335930778001464841003948248708477207318372404130873658905655962062738969050653247000076418759040977300314595129413528652465111441493448195100985767216950274262831284096674323404122141976328729921949240706931626350859199321604407664841121054719695459084298895764813571597418788364169912806860765925515560008297183413514070199900614455759805025895513182413813499399251036781036527684637373850164184744141667925875451090642985205549910014777043948097152042180344092370864046985815886170833717417562528450967324483475298948249923806277211431829735723959691478509854356739399521921336952157524229450398911930172300995615178682293375557650835846435081796518208174079875844298433586487430283556376896398661792363528343113471031801157269078180963512304952868146515017582783339198321257734585250111483646424977090658593738925494524238186972271509765647308239924404058288222091043875346166263907340320820462193406295618281024229457722601889498813411252258951644911695566377474524074173143059887892396090332773199827519648324302811717653969702840117481106546856044790094137194674505087378736643743968296721745151697375417116417037241673491461617302607152344950550674417332131430198564673610017653038877974996330548249338829722754295393515976543340058733662925603057573477918574502400522207171011059369486286914425138669439507927073614837268218221011440708185039741357791157237149838188001419464481284538893652059975810011506938063990991085731646969085906818215183264318985686938864274057663993408838416020809492289195609490367839318446767634760570629743886095345335551168671515426024302654826855557003333199589991960459099112488070369036337860098207189185370912056957901440159108423472998818444629384742452632192781435997840436811949119079119057902137291555672111494728466016541951970911747984341387125861159564565607540972238715139673607859937040638945898695257481609904957384186850594158114777109943318778287389708438901309695513649940211931888688522373478996748618373160491907642677470048588609722231747173179316630072983071392556726039833024607630750589433251919990342017081182146892954715643336577818590044301071965209082878260441530029427314143562600876203971752046331880746960571242475294596741501739903896464617259149295773482911575466800183559689402443189427926963609326296820331242447905004281095181899005431862774105604754376881118100524610976634136809763025985651916740588684461800570014498167842865457651039773993175878063060252963118844591982067225074093584182096176609388622399645535961333705562443740818776484197841208939254119693888973162671557666074217935883389996005582483960355045931066554057376283048613771301669635312210426505070435185161934469234788607823062695848644871494063431728096711553331286340039710068116058098232713551222040985721338945591426727163836026730594381842486313055553231124456958117847554731379197989857980127303547520136299925641800816481237935123624955780541587415399690192537881939396161102781230521842171781844552746935602326549499518958313844377011349942409470393303792035298214316654613117073493288308718591669748147072773097149199502557902489747076124692646479217869782853669130600343536126707325325325384323430125381197248001106762934620794730296584807552471529394089229034686424848993487912026573833120937861891627758776276502077594012198201388848857646093326696368320657620802880773557187300734781546688275470881989565676417265948933954319360708944058792166591066858880785862596520098618272722807896202200700203766913231874263374048486065715303294972098792235716181006977527082741691200184120481267625725511266020850472502982427111135509846562249018091844134638985990101893928455942704987329530380391505063463895752293011629354261872504652547853322551992081970095385623987827751645150121277348154652084372379076613868619969936126141623851254499118783570352292166929471950386826093552007287993858610065767701239976273061533980555573174649568685881512204487518791590039971777943014029499574990896809383069959323941303072752368303977671028711503802475433184858588620361788928993774149312474827777148950353578618847313565152377762776392144935092439141513235692007407920176277497481587005021242197090423525598307658971888635762074169123600144617794271917302694125112444438819478288121211398286645291113240551277161599139539845170891559556034299865463793431659691514525353985609162267735762404735111027797264548430216659159481895190652138470773502658363462798257381795313467534984095128093791617289681092069836645480213673326128202759514088998874766365444571838031483017855963457248995328114647663852049126309021375467750614348209772250702640285005183636699535706859256830038817750701894451184009524500017978436253527559298850752534274248270684068643997832525382796879464751022603398013642720705335619411293483104064194651615245130812315816121937819390502490992053960997104045800004870177003898195067479862163104076645773446738013059350756475168992157497738801231566331803770599034631335219680514134788541470845297413719520901922972567935231716586122761680994457247032572507509315780873709271274670904876635754971687593819468915311429061285408772013088544071546038489163217200427589813366971191592358118061551936795621641513749143911477593356719591721545196232119891568461413291999537423349005048700979087665286019198898382351824322458358099275216255358446870131722011717389878294644725671308976098503501478723169923771871114023352346747946624356549460440612720000244024978179624114714182624069780056214503250645226740876513876004934161869104114083708073034802714491034645386603274632087301200050351224888198680013267788802966390498604880961754988764614006993504829708129807912945553295508519340452753156907625449125600838628142515484547715414389814376822800912179539735196366240177868804241234811037832227654546655915116609903241725064776677892012509824217620192490706587087137490714681466983223271112408255413470753232966848411403222705718423386977470111863049167755513658289427573720471565488785198441846193725300958848106501163936403971703237935436315198431739658716190348498734473952524197625864153288914529598610926513988592680117734992641142099900108714846233381604277587380402173822668818459779330061806759392271924292164013373618681813586558494429560320205329920728740975321689635254147354626008318513311048676100267012008797329395191232165368934059568683040588791362746180382009528500702924117753302063888152163761624092764685352802882897616170029418881853470667939633581037814791207047345075497117934385295451481398282002089268453618313796423328358102442574663765066103642997425837226447408356894615735102872289441320318437144734915052503798834854279448123389620546759226224960431096588947175000886607662708655256663441578471851155101097929788371344716750404604437988724683846665313226658274567708367674263105501001946724163027527758236307695898264964624663878872448207582018783676525661372989182508710333856399323636325801608116021969585835964306362129512866316209208329923498849264842297714802600419061417003652875094687970955154610720909594017333092307951719887080886967069079375016613159996627359947561856355839667517131259785886363326343278170581369298643741875618946963783856351023282692998775571604272140857394858716156973758329409193889545191556996462869218669400724591635040834543967035045983616238909784260544271523285492840324818376566922059273737755338055863770100569983523505620864037783011294354304082586218999561178819399948027695587098063209745791162364276218406066189764112548862132384354171719825210567485384912113571157538297488576436559169729048853659240336795135887071819790371196583178279221833692562880995804449281956503729789381613264842147334639556674137436362534111677247989042361851966769780000902718730137706999594413811740962228702693573351984310994044425110116775803414612101738415277037048963734307768525603186586499814421259138102702127592360944823191559955449927080248154275647451292859425965036125952429788391345154927703579977717084796349651053180404156210087079334719204382937552442260691172341169966057694983829731070522241921200268187853920613945389888147808581522837136959854687382215329518513009512845083513310749397637096857666552534141981104169406145479521771046159233487597466140871281212330841015101244553390814674536440787146377146949604742027235789002756010822746343824426618678431833577759140251561751016754792959952756024240376253775672688752751739043687717807936963852671904462459049057651093115718290080774937411002186367428212587088089849412531910066635551330425038565809418974121046267612238443518830075517627722276584410817420353722473552012532669793065644240727203119606366871565627779078619495059958368016468708272252875558422797433371867409276238506723597318504696768054073647214987655005756199930134344982535954923410719558348243496329686274390668601047028428634297023836582896952705727488776235058023484515119263200723115095395385544809247952509776810364988806128061505763450325479936395755082629699232199686968607770342466132739481437315162411189788840528309053442588965467609080108418773199698909640931819310734317469268335589303896280844522861825278887064688230066280601375029661481262079704783533746098486571082422770383766530945630428622167544494341548301054199233643070167608503519814532518620886927061022420318110428543622142643302048025129064435330310274179358787498506058896415151570502835996556744295316602430656762354802964283378024624543975509962170729326360701569782150880155655003983011412433090269134931840880937615013990018867812306206122197850479678632567948304870104397365035932733062752897103060088223020362484253347101691054262926332516621263673789242088614813446908652811590559141422117598337211699221464180030408521352627550258968004230875054390157674856430583064661916340932841073624783421704568278626700659724604228131499826649413101137910200238456334718018385807686056307033073786656595069117999836031774994077934642243907940940752963831443817907399098212332978767292110790331779591932681895903453881571337759099189900727680768782024827911390537279584526466210626504526454446654501316737262769818053233330485619890076117888632903533918078811893162557206157695246899499160318451301344339967280561798844711431459337055776624167601188556391488746068352431505878543477377646182663706765275662202670615199764120254395664081549978719557739670948311932746216766382172367172722735036083852284223206938334180772687243779723197912835469984361254066839135947351019282181454097985074672554510844932703910571975350525822965335980995652374280269617883853989032455891426128174333676417980726499100193735868716921703899465834479473002535395686304637820745973963411103565023632299799850321363770354811986031850892210778653488324357539762814493669165062538548749805847415763562192855053073572085639501743153900601786675747958069006977616948709151266363963871203199282181204086447392468904406577769006666629248877330118685082092540700954709799097211083962043693518874913596974577633376823991277106156285612342413715524866495231356830291337684928982158051500498958913421160851122609462853810250562233635345041008147229961768929329830681625023334340438485651738540809285409556051784470020966246349184165512267276205598343487704747715927142341536747162113243297310289459388912829470651704051712306410752789858754336215791304493349204520410550837540974994633881386792529842084210772840862230583146628847237421693008925420379474334570598432996176639314018833608385212351908005362587208718010139305482635773432777119536082106284596371547153933822979579349334251471696412000228841674561349820232153520758328640706157887925593009904814414462705787102421046190624445290434293732332274207117647562851266928259742912594411480429017656671982248740516866502733107033736389199770807112571517289948954282261522387613815129201586378956608367497188284651175236780893183816437488791503061215731084360556161481011284842438995279770731799337549781383496054476661618274491947424209701790038237418776655803144112049504571274440417321977433048731386182703552662049016363287504751245209899960538862837867019177460806962674759179432896001427691786710066485864187568015224431608904767456488655910170984684843232917763103332647985086130519211387689877680869597046759463752942900790569593673856273879065826451114363074407635119415124883527440987841045993249117808003877897342381694733676920970240367047656515626665839837392330271497715177357378004944755531534182103912795961154377471353530519749405942863128192542895811331222813980610685394198626543070827957983378725495050931242274715725940967497131160578369260942443414336346259267278710039121424622537971409263992848525414470269526355256053745391518796366584962931171789795029320960933040032724132078464145013708316666240898062807221907893356850584586139163719241487112217695992737863323161799332372937202049257440047832638201776590488896873774067088614085933862058813330387474585429428606990337463667027062064242927239337095544574735103672381037517197222072470669144410098755422859875824564001941812494599953598737413515121158102724628012572227815500961817078428848450176496977678540958271571043098876262709518737882274936919453160645103464933670537071755268955227756464027061514536555518855682681278896456284169681759745056180198658617999443938310987960695749743312188054572632010104157161842094018948026309024692100196041118934904671750616222983792774053732761555896214694419387437981026708270840714054998105425377983102936792987694928466784540496608810768182225675496550982229258040715238285442073070436180671022933302109508645301135830217398736889500824029108595089278735180755442838400143479946903949943041355799812139630492946370918048599725341147017239301034122867395581470084265322105318480039992614937645105304307869237843368863457953990402550116940385703982741124601498248693974613561664620773864909157090995235446048900206046850163224422760758356996917668593963420165194391715072464372095061708507933246444564797357512328087772724381032544153121570129202391040567803815008678504604852673356959659064924647868926565879650935686768979230260992680947070240058186516352156387517659545146583756063369008169529583960809087252015417970304213285997506698438627798555104047848193426962844631543825899759022238405706754540057229937019296855309589255557620247623772549099406850048696334143091675231710057149259233418688557778180471801025456918323515560622910445826704384841792722901903327432555434469107063546369007879575101804694575076212157629365467044415094803009935985419000667904292295562912877574445602930140647156102035850892939044756018153891655028761677159534859532001853407107444608338719610467990628409097351801850793499049954842714265789258435801367321780314154201202374105721692368025404355643942879182499877448369959600644078041246583038541361913307855861035927346748560705874625827426880210009045623540161324324194463470710611374632984510332776733025024722503726409321858134256136046929420304054603177217314809155470742310988962980614765126679971248328321589521223718029525335573562076582126923914582869707026744372085021539337086509016091531595237169796401324692829647802849396017983146347166750727093404693743694036409730672686950510083052985924533194324439442819491639717039516713931879596885356628953485745647711500991650229279448959735088779025504162811373437349238777763233986361957966785998474377164174882039807029178189637237878389960808703824942012738421202269644998559941880485328621343755471023038909610897659148906640946365823605948638225931994920182044960827205565752879943855397170219300737244952114283580466539556603405274187102988272776357625032884097322812012023509772678305696636966235673372308334433625275299722690471286404721322991452136695971797374553007051391987630671560612928723917206843092191456009488959822117630820637729474072156760761525671022487231344939793465926194264051283880074573576335110083296278544579243872755367602573035399343943752549743050789806704671401778631251592728582551451710283645520252259600576525398408382236489473555900740171042876259183602063696217701826851039658405087015778675765479435163923812428892446028655525352808330071685411172955402220565845657048655148524851604402908000271572416836137785689476859834176692593622989753974800827087481575965691969614618030120651738111362010994346453940634450248101481045517926609711866189438038276001654205914228355920794134740201454645584455084664350455360638036028268127202107096800432504239439187248378114303714013793698292896206427885257804880611992185946669300161000318415576350283978655701134469175816124436518907339374244177696804763438487807953986439590684249239243079332078549637446639999716762348637163689038728807439579240879341072674581876782221127218983502328703742500769006665939866392100794703210040023745972946757755312606793921880421155975572311771994039340475322326470073638755378138510590354436139347258719296498032485899848922285996413181711629243246636705431311558187343204817847649047579586122992931908984360862062247287983232816546503743017879814025939205004006266952359392137970114683301824985425771361345385396711101542712405949763514297313523533970259061543601514683662679532238914366201445855378851981298216579370095957566650643589317052874764581602089940398773827666653678465935320673659711359707153457138439465657593237741322021844756486164676615060699283593413550079256956865267532173558827479084073558599985757068261690531964543882222249835476903061304409087251390748623690788910711012629980742641161707665361879601001283393168971669412080338388380666161140904854572990899432540664855436165399068622738627369243332994331825548730884686568665425924622956337818255918610107008317809134778654998584578927204882815838137435766557234364602241200214591296709117195735395283253757654885271046871201096939062877453334847823699687015306328723183521084589898956004957596204196430361608857563925735630383101669781951157134923918053902829116928137345919065354496830831078197039026679787511591535287436338251207770162043367164454764608022014180591535747965236797078372140406818783415787051312564503242103009191435699995050152435140180619713973516960258529836904562116666378039543971227542760640406271424147773061012656635628258429484514116002920906220852344988783849965228517517815526747700010035617317858723322375616206090740696760794772328211402562979318052726401498983956530584803692178371080356699298153287076984670879498484351546969346039092828932859355208378161558842571563013532584384514718216144398616002169666329883356643546726217691327929274166552795201443115252663493427803102233612355355093393868723272087853889527075259061588960653788930783386853251522492102003182402894280679591515069915927096297625402809115510069688841420390528243672703712608086979799348483187404704971890122922999083777708778915217223454964491698805808982866718900292002347990099425158609181932190532098891478747235605373961003599696226930232506739089468308372803919817164311751918093160470700769250885551014845169547765685673247963068044007132169901622575624311965506675654943178031238711527734421098257015859484680868958721809963806827212765007363529704695564824978269961426343541219348232356779456944549509570358014895144802108490094623654671057538128018002826247848696622315984119320109318657249895776405850943015399455565410314597250535596217292270579157801315428141488090651408669281222370668068405490308786655639936130977756396000303734382641202006887992564132529627165557956421745700726237622074095645297085773720714608793063448971101665299303560480817715885281466784832829602189903682908760931285050094638072191454464514012299085823567467261086789731848667154456497646786463998821429548653945387893122823404675286455579687775252309320114097123361902697588601549712719450796249433170323853045689119894952532336795265504554638365764649301114806867465608220434996697864970807067785469686189436616463456640956613255285656744631139450176783705365395943839291179913601501080342685867251735777223019327750972832175894264287959552572384332979763707173317481076258355163556306193963244255767976590660386335163616412192098683773195837968077853649416008384135070242379076086771209961234820645711766563841372684693542590649565908244993032421195392032712736013133565234452143891884487094972433019642620932731538047928385985944599422304340108597255186377588942394255954271495422395942167807247459350368550073089550926650761375727805618922760052543823050110365290811306238795164388068058798857265179601333740191927516258756392676104777301998153291589126934443379802584765068175033560707991666777982929003780500129268958542816843899787024292675390703530671756142403974774985104989533512472677470711819509746370224669281629110500773915780821541972278552336572275090913014863553690562440635312813251407767995985658049911255330319634529720769728400570526522499758875403812247446104953549855215933407708035388444524321567655674413371547901540745096708587963959446392403085952876328190490966563861300860269734524669881680529696367358839723755811622501862460172362999532901989862612322920376678577907237485920844223706525994206731914061598839103323082510967308559672162023865847228098049125426700571894465239595529738578750651629662032825850002307677584418985041754928660783165804079106913443430695589062209155857231674645985306179087670813268002726860285996912251934333311311591031664649001392749821803287945149299008570711600041133326900479618955884033036464931762337262740531228904890377028064756853459152096610623549072981732449315417084303398542079539974013180587369500821001117380852167917759077923854272265591522252863398341384194420524863142071473119518349285140456175413102904113726853922074479159862719653011146354415509071775279508811130078164769936335227805261588773591857589996532126657123768260544885634505663414164988400594765388119760296272848780919789718416854634362522109564000573700064948849333866457428082860929597720024450925336428966284689750936801685499450057653247707743740718442763802707106008140399325132305857369909009577892302240152071107931138986236325126212834959382092830404527990051360653796722459139397001841977452115564031270303636236939259548398762973091310621309857167246957512818952270319243417756014729411956301341409049256623919853927448753443450314909711300670747423903985424420235243830007215677703470280298171869919975074196811541917589248361828636668682321700000667430200910268003994100993948751849635621091817424830880767407282205165861967951532431135507681804860118027932202861428056331847370755840752053071441016012657066308262050002127480212602352163832410062570085569792128950952150260237870573467885380335244390487267611647186549088306714156368872970680835402456313646272952686579456675578869580061407302308861925264507938151138436921507138931491572417252364451858934450789329603968325052468880227603299739982462183471811595419787847628738935989507508728116426696285839195037803178168586957249366600268580806734147627102253975771247101737706977884519236053408817680062114712830732027836274712839111690595384850173478978667910284896505111295587418454138935393367482634624444205494487468115400030948975764114004458963683962763062953393371255836605965626001763900548262886679452088212170849709393410765919502195137231339913267907101221120462928050194431804173743720565546259789672238980523569641794446106200528194356036628225436809924137840780800930349906096843738247174412578662242476823781891347722154998427096171470509380242585068559140411026131896145857374330119793652263781493997855759563499692607087454502560980216523775903973079996506600537491955626915473862313389429601423229565291632850479680986653972373714695932481580111159598809948764946277750865749772750562440079339744837514013819216761873839628792629067988168920582923422551530476178942050560218038052985127597426981792088618547968814217565572683025931443935962449419600086004208806413301752643672671029420059253516294096179278200150927006337740818031926155222719456624775011443604021767894913432233225664929404256887269926824617312620366352951258510353175389644594489617894350364230976466124772219210756856443537471824983468926206560814393721677307803916500841019302304382809157376490249098464637048651076913683386588772806932756291974240461654358100315809935000922785076752653617825388201307877659260333126608211878492524410530426992943232044280345007234643655912483205290742123949608846308404879423989829431225707662589928684948987321683767177264188338380693270426413429834983979481939613174602029167766416773424198782050983622737553043993472443594563561325969260983292282154267211193843298330907817781202993958988268292571074950826345490381914052589461851626758499658017260209422504242543951282477087228208468811687068831898923732500819765516690354390149522674395621764135685317610880917359600510605904532447495649743966936100431765687769830861713463263836432867220349198341849294234670315537020464834618045906400993932136984177952672315099245927732332238704529000211330621255335842203397248283517925714272855359800904137369395639536670175411082681061201358631539011622437923250397921024343478412183061125661071937345419931172731474127085034102679636321606949732290085159875684106990465371464167982552497417296291355307050831692891982281619037365986449790103399287916560107584536562729878804851339117054191871339492189498423042355659680044528907060881875190033149068317263020090721776560542522363121594503999072542377102787679155439195931284715056342551472944820299387469880147545381004154718221889439916884817924649548865988010972468389737913518782534284140495448362201240147902243301445521721975840134441225989792808276083205741368016246685783186437786309964259491922776153564504364993785431298265177707637041557140355411878458638436418552365271472009589650825108443917353130369948993163923003194141307956306019182124185924327941985245434574522889838303469596736106347844270051792355883765544245250477256968009839880302034136327805575433640150698976938744138172566004054480599854500277685700020233896141162206995015100147259194038266312970909070077993612979609795999221892391273225972004975981137305598233281425847540537500729870250557287573686326901699219502968628664600482163517973880988670860053189303745554153096075637603244594903076506848294620805524288206165647980705018264905742525476580687102354827025802819497248064057826233873419685326445418271939156220015715602395996857327006849858187289445255424762999686320002788649612161420821458480636684339237610077224141342121946444098036084350860249773583091703558962253547822076413304101772124267498379590914610892107183301710673192979368769675749978143894270255239133132625236620692146426620728295871355841804538124065239756858691933017580027375474879693596553055472763395560312850966999352619573841455577045637173591669136061424419241758940631337310651799009812113258924289735309736009674949022117174941114559645322262305862541868539816676604094533170424294628543994126377063669291322247163523435778521849267809036516306125249002198101460373808758040617429571958507433252659969160693463188044219818234783794485762609985429514812542283636703855098811643587269116111008275960653366901648024650007106442424128713266211327261286480510972652225461667024932882997559433802500734981471259223695961841244002686764562552254852343523827296573079280859687004157125614708402683443067683754900359436462454682137275282841151987177468786427333818844506314783185684678292788561252764483373178140795011137686522706467183861466529534497822231212272247126045096824802642712972213953606491853983814362906445822540724947696839409356754103832050850332679837060315299372010923078273876290088742918261633428838904114714043361273161858036902374518560301757223065983506334092799733714274558146473543198538693303501093484632147072049656734220303217398978238151122259070189326383248311930511883593761146875279317449638974542519006341818159857357493986093889943897145068017422359317841416697447054512059010272767885551852256695772537075572243075307016598327517456194835952123435792832450200438529085199400261625976619916291686683838647177400590089137177341915853375547813654582521531333695610804000322650813043245314993204265958142793810047446172553086108712679804788933280289226789685448842753259495009754871943531441726730861310686031250169897137914256410960425759038881173284678586959687021574735954020094041818953786176004570430144788664485943663832459997599308737945863660497244344795438776538089800740042091971827855338504518581844330684670278119052083166025477051340388921443932335744678081415430134970672481918649109951207802683280600266243643443073481360350360561210734888109816411615477919401149960805215365485033256098855793257820213781891765322284175402028549472972628919380397806827800144205041558398226726484426797297880935702828094512968257222076912587895326856053283163290249236618459784250535199561322057035079620608831896990646168143133855326214163729200176745496233602297248714710011038389779058424253517928677145841082739780267475912196485482798188983575744244943664550784646206179227749659881600251961989253919733666700097652627847085538524575318486689942543253444614031206354519550480292274633089494490339526036491189516069834809926668869917841416384645440499632680991694269640742833829571189262232068167788156857178145219916405475325814613007024597080525693162567569484042065579489090819143073578465390259176852472221434310060762874370353014986880202461908851195087151877098159145379990793234656937745897113614014582656050720778790932959599508429573560578798535317382712036703528577197474099368217211176460890508843589562707763198385195197968107124145643650116992590561804726145579379965895658796717835182509955588789036562191612499498351895387030089958167937306868584245246036764797181434734861458890801763872074660531067415270105212321801544340602195041143813468402048842788624464488860755837759852036596271224637734659963657026632640117737570777783929453624742908116025821133196936363025086078473369425305844363374042618996075085294526862022253179173229917271109712334372240161902480138693676218170482001846739210032399643953885508406432476537847811726975367232608808227279318759373227650163312512962070247114062745553133447466212918822749813159897216274655152718529658732722382743430208770832974335249730090476825362100497830116944044979134751660339597873380976211469331297009013951468420701936202565114348814870797971621982936236525110509806100045437604175803893486834743384442400831805406070195056129643210496768338449870734329916834978141421315331499745392060281019930025123550087349215714564501167939258476765922729223969564355236017220096526099128635630466275597800746724279260958911471431572384291883721131427236060890229182968536482033239972506013766404226345674653654641260000562630473649669331671311720385274541196605861793220185794342902514373568096852075776036449178840722140177500006232302528968061690694087280236935012940228509298846356729723801665271857600641110122675609532542261136657418504510832244168449082615858199238240516136657844746271440976661669808311992180466070051351325233806414035663009691999400648169943529764718777858722827109814485715114603425577848339167451315547966425168583525250617212572662698432248539393663701748735752496362430840400994693206514360284520612107493393211377323973769005521842439718846558556058582104257505595374026740378904242566410834545040093572850937200832132383242400922380893006231697966803743024780197330614051455499384683350173145678138926894982281013571329088155823934776804968323093185844669282638486822015943981164845491707568644608901475836676974751648442778445756644910251526789205104799201333313034875632530539918698200843659899501346674907813176335579841261160743074216118005388058691815497609512751052078626981934221746978132913668837201134578278053377473323560745204342866621649237830114237131679494125551504861690398090336073068539051973618003348064096783037012113892391724662117661296200460292801126331514939100606877634763346713980780210539717810840129777901569936905509186257101268254494931220183565277840828507195418540107742451697423318656295003804032342947274508543654784288888857764699588592711691570349001257902129543162995325762641539678263826214308012780868765947068915225516028552981883159397339438146960890694412914723617406367031028386434356374318394067138562381371276372817638590926879488183997978340136541526009234955654965237088825608758105713001338542481501117700095443399129249698866187344473833923790234588898598990278985306869822084698606383995534329802153957129068563018166170250410734661020383836978166339944016935922019247852599941447532712548523041305754609944148318517329607694042957536125398479115646995210629793569283578730040499268823978198555533458037436526604850999362245892888769547040199310392767805411525157077754494376630234326624722131047227192182668256380535282482877183586364533249935372301142278396143281032979441306277333130152996788526992694311602232199021360377306678578042155050091909699723428354046472406455032433966674546889264186542446983806441542935823497394086154356582375119428421993744269829784924564916258230447556045067685876778473043818053832467769462870859306654965093897849759591256947564109770580468830964256025303924981604117589437619303636183386520118848512176000462655819501963454322886479459279387477605334641549302340470892101789909176146987552223056913006794685627980484278061045980018789741635218746850725854653175958138971793557729045262900002744095971638167572955623752210483395629276829802958902617288665581655708300329713865076305296317013409093661434103060684533691942835937047528766887321364660548582856311068871372934012292009514284078699535635784113043828815272084296321446664264699748978156211095930522473461824185353168296510406434903113951398428025274544098105685266782863603508172176031556928152581142706249375085504538132903788077166294033252070984051994143269862707814358513337618062423365712406362318826807552821745226457315725023103485905451176386236610165543505053418990885030764049709850129192941124165396142636036574786978565421473441047003261406039166153009516148638858579417543163579199892118938763852778136796375507972940442210050749699294938454247496835432894470316873215920533845857201877781357557577478563411915881142055743446974714389075497281060423721095135616117214220883572755273058942661494473516481374007304996819829418890549628057541759247262277798051458913854884986577906536177848204202124000284001818638583205460023860949202875859839624146100029476551954742842625604636197157677162895720759198125742982962326359740522322696773342914979819379208334557962476890113715298773958252918442852426659817764028975349371785308164379839141262184309967780597668450663410614867260333492224374805690352000508888402319675239334208840212175342768877795937140319243730946391967686245530362807203998573949903246374351748576171204256748666183726114770358895930656444716303855405992041347710057101158994739303383575514196132996457683954161121230755085359306565760071355165401505962035150094328361639572817813831780898870463340959018591370613473779320395670819270824020313328515881140206022320006510465770194947665359962565955650727837700252344847907207720716016720829981482119548533160233672412839745759375999914781580756252738196568632026460844711075866907946952736095365313794481382952963887464189326116820857346720060954075767232994239299561864368625822784018796725025078463649108273692340915773864734421606888735197822774577620231255751075981190212065940850372167628005413107615823909524154698200851058998096408116746029025507837330829210138752261454884359037828384423350579437152323330908522252405407811932670882817359552135721682397728731557249912722479755195467494641886327847376347044562945570041956006817390746973212699617846400168634732463278432370791207663569656007950096542949986589407853621433707893276704123458110279933983842571636264121840825926205285077531060122538790199048157671848244509593577318142449568528257639116820408659998985128547996655801420074555862180726176471332568252738912388217324783411065288488977524383127499729049637351716787419359879810336556128059882304755368495304089937687484336896977959248901943567146092477314250433907305630610063634780043710178732261187969486100629587721739214012303363101071050946191249396970571025673589762175667145721671592687946849442574412736636401490984494534523722138124461910817009343221291733577664921551638177886479719504912636972591610158919336844691601595031425789114294734875776519741326727088762128039569787963168945977964545105431966437041356720911404734861931711317803495543647326945255255917596272067583294586827006109291177231059631219603337236145730528149903141397187716553041838158968102806045635261448921226889941452713504171488206744546408670547895768678204550751777645248819409042650346496387746140873936843280876387951614778838766884902242034922525867596112518952038184204838471813171752969572963366787219173485082417715423509626091759862519511650493931845202467838497679345459258649257681794182624112098118734088301349894574029160612897225078327164193991070235641502376538421008966576471184504926799768372457805539275813343727154247432877819553424709028861580515799240944734286503914137338029073282339779792136606893425413654805117695116142263960596667987981401841757292335875161898648306916876489146804746398649082637864428893824675352909469765673814108712760542605649217674669892038039541518728375294373129371157108290652835536678091218654176125005309118350248599031445550383271835279388700946690810808087576724798197711714951136113004836875723275692123627686753661585187205048949732234382494950820168762340493927871586205898994664242943934363252821951773478018305517257975616425251586609583059661144471659631747556631120829948666490089870673936938565938238571902565812603007301239680976230159005759682667853938324822862137880045163676342660616034386479341614571503919701621352830815622785232603048276138470382211562293008640334103844731798093134876703256591659418695055092237580442589519082847649509748470089581704125007856817204074637415253398823583917707435615562879794478348256213492149027319376404038290090381954565542350582304987655055151023277728956066386726982651156846649110433392535722332674168943521159063945729286990859070327866939074522415520104694948261671590047325084494946278336442031794237460922155172839532733483937010919532554340069894809132356304937159366783909647903751041095626471264042863247373421597485979545464176057735613684583720552676994278737934541868077361338091941401754065780798245163974452148416148562609794178381549266209676192229921206228854762219884740607826343704919674329210677330858822559471984170546484401803741714643627709994323961551563051210159278393651904985835681392950918241016360733408761849321068605193884395314092802662175265034786078212375375771798289284372336807975394677421491277034588996821504189069975583404247132759001575192082844948590805727871151291079834286115911238924900003643615789164070940887741045973622942491079230660664968566075044662958135145125933483868277242517591996800062292535170261602621470044869942619939271338523801890932636413910205388064784063760144738765441833424223030524496979456171769250451531214287545842374721866143092198124531819462877400152761246722126786431292722179466768771278397523689433673368536898440064706848993705275125967274728420587281131856593556012453929272579783401397027347813114053471322940048505440372663417488336968538489845541866011467265419677947191473452881770656880795086538866905996970302482303799704346966014769416142260048648982798004166122625950975507961492132080913116964808790577349880080733847007499327588028306320963353501372554132698583454054790884585271207908808284961839205215099053354461382283825537587704293677591181290718614856713362409809728271771242127994568785006580109837836613675307046873733985807683527818796471307753338039434111269417019364672344038659067136819551706106873314707913128423358739582137441575874292193651767975472634916476059601101160632818891347609286831346303694056650936760425351055308216427005979267394197741357399978155477197729917148290390607766950015703892218868746175694623105617329710001917141357226003082709381093531818199755424076101464493022028288797993919884029248799155448262170457962668321599393493188486215372990764339585325814836248784270393258290744485825176122762145717159692124880452679725164090359744937855976153887859385272840321352293557710987356175281710790042421364670834115255736868521604078873083676570989798704206052301874710319003856345098104785489489350952900521728989643268952995134176030470565128586202267757642728751074057079559286391888541848087637003960387931427118367999169520400186531184469611332089932711281668551865427446480294888262858920225744209034955586451206707982596474979021514734542236923655736613354443525756986841405748912388857944132187391723328482953313035869175092055491982694463233273217597661440380667889305274891174000484940282300374415562708464414591676859423223320040898283150549120746214191344292660720446280921598447638386330565679269866536127962523053937739193589180114586996965400982799443616562561945748494637807891257471777349956769829115393923763178723665119955798695751905722974685553135558601505145209660195161937744395218067392491238239665199291925274671147180677844436514549180849472836043483049709470910007557798202471063791319391824982338252870980602976767937286011104563316089903800534450130178559294549917133960371366638657471557889950850742138275579455516611975819485184587056672182430543085683375392442489563227467110072314055108029742865772445171820006554951151783474506590353842833524828643357274382615618594109262205504089933737704959601386452830599805408328304521854297743642123460087544589991765997775479664252877605147604548589917251601140412408691397505740726518715582535374318657866446625763771646745637139823284093479451845378283715833201084516315508722190805992565219936463062549768444187891950975820237646680151133629721063074533369976380700043753880424985607165273976040232498816654943655731762856117207604065215704791646014625391232997468425426818979428516077913981175898111396118852276821805893729820081599477147564724086407553185803451820308360529116854529481628979936391662730179649436855261228611957083236817556377029555283168363322358016066560191453675346713577372558979548020125165944261566956225600055852367940274079077129641452983481483241783949390705632119758711776924078331387426753130123057510609654462472437469226899304806087751124451860297010196119349295184200278506014695184659432829501901030772291786037035684364890111483104181177498722436589521422504609632118876063513562421508256684814367584745726543946330971794899639892167406682472789697440768027677091225307733338222900416149566746813513312478400225648496330468707643756995326702220805226145073704736395276777428768591254652432351461076223768627653209263691149567985151891657539285484481112780012565450863942424508894528232530758502313763536868425580454769322663448402018919130456653640652027154125053930519626548959073586938942483244992178879726392894528170661471257288848775541143034971534843087387477364957322742406948647766205983724950744214564307507246480870990898395523971270437322891851100740811314134586251197923595971996863716410446110234182013403260923374282333821531573392449920798406803764029708242198452264578057583024644474047294494891879732141835609777232949220447396331498169333060736837943848939235554895041105520191613166563080209951154429322642945975346374817829127526672048883645600000302111158040074789080422871636805625429010738871921472728177309644885904971567396406593493460165610015464426857740048110129848767788815339502519031226243095984104159719456831528316763620761846245421754140467627292158409690226890797649619783298035801348428949675227922429595607707084289747264512210277147254770689880000690791455485556368557663156519210188673364941530013718099164940289168946970907640802818818105467926245815433981579505650890387218280936112757611814183988893505971327174176208854307852546987382830223297939051053004000629233572044735587879244705430624529412306559531844335278182375269278996755425568610900711569984482643216516249946204639106857165553993671596750366292907974567989834321418532041754556079444327059031728847955600258328618927182948739211766815308369909963340270646096983934662609367742018040070581246217425400967827803582976158837725217605483549209092893285709808822346265867295727645325641269778926575760748482773966624583706196387854177858515251253721689083437696415441278633841930061148877483454155321122114100724160653162043891781586625846553371616802367051607284706487878451715549472755685099521185623414315939348358285306936824379962410069015026392784859425650030073706657771164348945629478361069838252398646307553972377707516103177965216315808719003014681497187496257327191140131409875715713376735441484507909497848834825933179211586846443312104097287897678662646931925806581767700531341143169070013591695039757342045115001597384875451521125088547813344995935239520398833397518394119652714704158174600835558979695493816392338371114982754577400909293657177162228864395859849216351560157986164557473631611089261639142048861438734429253472718400739455621832427018361849642438915153108114868746660979917109494204128804020252349602021972379221847276931932576003344010929389928280284224751530385060026123328118931033837266450011148250914396600433657249305525009553565440853545821019893046240099871558907733992095464344850248476848158018937900413234673903864555839084485369522016366208249821516367531252550242922171633116539238800465586928474768183191603825730885486936571224445719364068623211812303191660496920617173277591392006687452190359185243842123709810174896905271183710291510277796047338806762482213721841543621818838988747852459435848786327938724892150393736640035023333652042737997665611656544499780471072100823398703859932943264049672747586602630886634008209216172352372981967242522961382187767269066095385065460026622091941952558970775601152089081986158004661458363312745428233132571720311662190980655649861998327834116951261930853669711214822938308303780121390924977205147739149050641868802999443104781746891605281153364616011517868765541397599284107599943659548196879132693957171288960214661616997381096759910689821858710879422198123956895569363047331579152438179593343532375265432461535675032136812820564694787443641711525987210638120328049080799725732352480209067324601798915760656385239404919278153110175026854876936336395456083126071557628469373355272647007427289895828444550795492640535586422448711767560796767786354599587441293357428929986956418150885335367711628692484007441385281160953870990578553822745529383004772394950111879332658668967901642410624555606040906628973566654590375810490624394980861758427235282310100674800719599457125778850621139593447818148288048906623573608822829290465408168240638278075448565340245975673629060502834363878685997549621570779643899717764919127518451324624684962748860573013489359161323692134970361234619650479989656626985493609057572340061788102467624415909012710278868146552272414072335565776590168676982674138966749225475593629450637026679708176379204351296589870651232835155014174166934110088141957007843714613958552927857118122816562263776637489317409099665608329193719926676096386566775032123593974057133266476547102427375595402500441137930819081665943568544240396888237894173707617047592962010237990966422097768711198336506666867544312383177048705618971970378801016006779678105153875999740869684277091961967907385595043154894084793914500515825741329544537948343354008948508521257410981043543617218562378007352030397766223606628829604979878735423143835573667263413535453360042860586917458962674221662133218808271401145969459102979538791376931836217325443219528144455997237678278711821650992333861810674818817201133574378916364195277308119651801210584366287382119664145595695448367202351223691850665307475898323701414094369591973335056114138669448504639323077595153731622323383396616768991368198853725233704224953149495937378495014497128211184265301826363493805414202070080403995806091745651341998807446399529290154911687009619415860301213476079761158394043055136987905080465079676497326923821246166501154646222657638956087721253235565193503817460147856820870193451178860136259079485360925661672110898544934388188883266405843141272570293836345195690755181882418958966575990846078318470003742729454812577045625034246356869225319062899850996542281637420496664654579549106721258262917728545392450962918577923151565646414175049959642987305795748607086364772635523876941113786232263929351989774978909489293818890723757369302559708136225366440306204968092945154390670536488992288043260076183806855691892731392349325865597363102883489233006111934674169341275816738484350808342457998845048943792226220754440432082563453149876896406350121459289101278964309444091106088103566845053594944369895618744324487398479140175442801204178255123374623694195041949015197665871535321547477708205188130682801382375362987773900845845449374147268253079498585142914785432587358904240418416627622495685754380342221292018072808181027603918931744760448003344303400484725090033318644378760432672462258419226922688745589737900502591764392995265176821763959561157375024816777043845742677523961116756918349751881499518827384782638380733535850469546259127638626877344152591740922416008057663180879388831626815352851927689847195563715295856659474797929959046565851283323842273999498665487363595887424127055287491901272392873561734981712977594846172258151699124672342696810380508272764501425118178908381920797173595202743856568983838198708536960827583965301399961143013384805633656960395721846460718176266692421800295720757138805224600439925032101401593786254227085979400416141606851506683477051677865906892280591263457446988250061447306369831635832614713318966098113903665623856885402171959358116327167455922047386149183570215748702734812612330087580995583676998783482303143793143728355618312801625318296427653550282974711179584207984419764865583817206828930349810809118215656289343068697435390517470372766603367885317618679949449280826177445853911247623459677653580830668377909097479542362343512882692031910498775992238059857454077797413282285785169904952929224942128074040946715340105197181303412666280823175263509980791380078949503391750377151672709283376587127692804682219631466749720938799800671791284968257998571352822918515107716206184748239627355803084453430269716309763508764080730613368871539152145234621189269236160377305724578913783024076874316882951398018636058267750545442419423214914253799114090389563492645840303365585037110248487515639434008213964083112837986587350916195519551544140611540495244794679915228289451240759204676410613964029708643058248372373696763139092369595243970740174679498699271873542864385444201531467448489518661936511197032536779871949943446842971927454573136689705913223190276232325233305624246356260683837785833069207450812551718560536508440717382032997962001847107706917602314508812403545583224732084799581019017723841362200786033611795938056594767421334546259714352212874447327024538265725725680445912308793703309032617712909416352537379193281176268686879637468139036657255215092234457108603063322751792486791547260394244809293692888894757521447267145808775565703810420228181007724812743185695020877947934471423798855043854828378305087943696155567555920253292269997290601861570249477159637219174561239632258309559909086592379731992360221899750192490273926851802834381532913984320072839337742211052342219877358722289612160820413717765249605804485017202353457042222381757738058076428886514206619439432963087027388533334646017932680206019077083812470835261047416173356810671886675246977049343141792740905574591917825124054341767515774513821202709109205266187460384145025640137439954619229113365930793206054206464535730715600896732911496828514645050928370466298827782485108413712748482449743405612053245459562228110117121330677069465800179951502534297444221198380418643654832340367618441488798921823177225454690815871409313199961101645443217198775707502097549619682475601639157967131197616487429372594874668776053319599509647977230195622783712030204973522375332892027544737134621993816093110257080586201691992681357062832362493262318009492214540016831590375367289423529554585347617230866522996984618749373670907997569395124586308927138635862489669215831270273097496961637163052786015034555956791949267805855354148684684962300745543170043803199083859440814265575191971714416908335253527663021396930285346808120545882754045134972925452357040822614753555808933169362522663850596398098627535243621411280938383630045228291597023475871160345950794614478238646918757895467601621603301133414367126537664309047921453154696523727296985531198265672342335936609098181155496894089361319749455439776591366037119644343873426947833707732934318093736804234426170142020301898476710429186220307066957745118833245881623545972543765452103252822491984218890057033208175518140380698506815499672861025709835837470614161252371621132286525777457680001326566330216122543598905107620714197385904545350321623729158450175957533806899497223284900388516259578591232012547981209801678434134128135127125464309629122448049189068803901984800596626711403425674024826869112493091122370244090733466863926061612025993100026778646660262555701776275595158921873544800569414391688635560444716841505159418941503833485433032121338095088969099491674110435968876991913276390133818900426752072171597246276517996355922476068526421045510740793423783952218166308853476983320435497784721204525362539434450788225245206960585318947848231384430265773547174402042906196423258196652009005488745941380122581884194868803534070540525335236199223319958226988407945426942024456181340459062255358949607524389798454162430221863451858812912068989629287111267097743831893980965170397091015321362967852611308659043699149821354559517547930977287494211348444913740908185489469242076328797469145331264010746787592056657853641264095821856265170471115432589194224277045723656197719106569873238468400351073026974368885980442632555675255747091023530645719121617346874914783061887142482480889239694544253918287311832327399751096370329047734036067543823640628923052002314044545635145536087831187835423458226682399476803183269122481785235104649701434160211623160230701251871877828177259021473801832585991146456558277639530026870596059305733309287250910269924362440303681869075168155812516338103603625699510597916282887648157138215635638609966976833964001509408662433579636789441276857002910789525532269942091781455209281249782152938024862079242996933338021121867854790452030475044296244252525934567020529369984521271981187968060628676766838815466617854757335265983954290780408284751806853159178859804053323791744770219137545792143840174702377178170481900612340265549922209304146124580059632420950697689076324715160079475819550765573340904813318822819491167599580946529956611415608122403483382537769314227078654177084055473133899878307180796893512509814916101254136493519592205619435700160031268925421677879485212527872832347248362260795312554424402679899436124001517553195717340518611643591377076890360104563572672783515246491913356431501330084164474101581442242580656544929747439936048948325784271855520020470880079021414678732220489972752714615480134401553256797489904146124446743880570840785817165545596808465055762768368306193896583497119873678925257315600275160214126505656831482820275227151353238111585335720929373057872970622136861563206082385519748843013076668773527939186733336453163944280083576159194261968718221803650666636146625017555224893058338978138830672828573408163180028806808501783949897202584070695488367815498210211654327677023249136496374885235650345450770856230587822480199166608720022531254771568545323460211141211398557713343644070692365155027638484230701568493127949954387686126682354056827587419905452970502345748376946541997720202934251828255589467123052599932188193071606892414231460359183742351230449700400194985054329272470372177868803362671764099364912794238075175436648410371779451474310093561098922198106080258844053436502300999545278034287154644079531162678068673168382263882188721394889863442836652784617666726065051973919599348125611397749508538120561893629550937374087863872211308890909006290982328410488367757787568341058486741733745976301618166225170962730483690664015045562873781331405243371278115317896980255698664993204955316995534359891193315656994585226176759415668322401309961655761572474968399090306261257203029851581264400332611428790392013580626071115865417774075342739454343552497107668272009480626601704078522229509399530729908764637339853903697834381889572822306867196006034069977460251708595640185628374920994367924016507346175323107456321613088551144826022534114686945722419563665669044332830815868870765295405958606727367250422224037606520057212406966356835538156893409607193068473853245308820271124016409777082039529826705855209387970934423998494808685408151822793878038772511533624636302047967909241416152746043939118958441361366103427764742146163752766309458203772336576533720937590435089830438345725152085274158003029306932997976532315577367051135634450676851943431414159006690398592939743161479446117560405741320159877067013105765261665374183028939950563480084274820582646685989139827730740487850616572828253416335232851846051279920863335441076912061898384993517155210664566678826550074100227764286402747166219315968514655768178877722497760719170737763718510239330375701350244954840741880883236589364465876065691805852333086767731602300224873074445614764504225770472310064216376093238748850376875250655213373590173671200376487259288504186291066102580523665881404511734212242608832156691831640539592708273356734231374137030168093332397542764380867670512594614847398733519362983989421482889615938467112313011885748515431222200864981160270928864792151302102254838878147313995027209802440995738481045412454421031128649826073992483035292302332410306905700733712654380483673663606038356985733032614965735361567659115726065073766379432813721550299195341879261090574885782648937599455209964004978976364671264742149281976135685726574013849299660231777569492422164587278153617943387269831867420500877139128046015723793923542083887512311013925037289411676956917449810460523343323446995881116103345164125213737364157623410562151884854140286600316825527636198514157571061861119690315179090201695115623853546230540710261142456514991156757417456192435323585085859963127153942633363220636840260910880011086433958147250050157872558383377516603480575683514083263926985116882419351174637519176281273832542638078532383557497374354394979058999578304530810996268481781083602632644298935029860805831563384177596926594711971925648535202780885676059067903536885865214647605887493177748955371343629753874802456262656596572873308160120536413511243530076624979975437014726837759225494412867726674231202956754822343045954901355478752717079120740563087043841365129286307949525277273865594515232317079880228568791524495274488179976521298039133095410394018592908047591524665281612534014297574981254197969449133494395859101173087278021769879195023905948048204397523014178889467269172770612248512014513866396782855525203341362361471603454426955723254246296215338149420979875030035265258815878545911082838997083267942214952938098201639258570480033472696051266735070208566745215011769181448077097741506336149639684752642541920371004934362588420922811639827364847411820462027730373982508360695660864402684788451526794669311982056724807373325421777531096856857708954802766961263999021468214587190756057050712304061725678265143532026859740857400945122897544982403983910247110069549031780024381366719002232738318369649559008293501318534544541173266027681841546454650676672301885152967570056540008959970893259811467582372748144057258516390885511126891585710147285970869976266818277752414087608340416885436480085588130922271212288709463762069267840282979800734293329792414597698287909494095889639309122730935846904192354099373003269551223758146618275079504195768180457819916649050674914986194805288314836195939822907284190840014982895161573726329940654207306048516573619289390744922466372613098929303403598437673971777115972046327785045272683759773932276021779842217084993560994101253541511208806602975039700309810207325744286549836840103059884087180700583440236827366330298530627240444633217285955100631357777780324212853662195810408091342164323576770374240322456835345996521603022056967445895107149781941466977578608461438071676175015674453771362290575174915332479571253425427625263645829401818145204805776106442981636721712340245149380416333942222849035892072891928760300330381000664587988447052510086823605839553586031348048934187645968445376869835064476618304804082604855482538195383365544194542104864398186706881617890611072734622514007238975300369104613577844951439274928555205019648693852135163770884052488587058300962267007381627019662928212257292524417783634354426110081529840433672874465160596638182241452276294806247152430288766989668153974697476661496298338090699068463127016437180483277393597856677221689309990242504056139135116252137801596144875728601710019728920130212924263582856509529579299920836121604733571873594413641575044196339919188291876046509113213443512203111663113261825119074664786702613636585398698098575404797369212576028232273128778578312889937058518105660338649408797684074449666896907125049395250010610161746973668410456606809600371940474342550694022621303254096527446411800640777372775954272246947514174055417174598517272761319823950707408931154795005025965672498313417650435335586115878876548907805600059879071796092558656919441841887209508836977368131206990546562676681394803941295357881366269164295421450161635943855832999048371685594062582020084011408831860916376512225404597850283448063957780988974320538372914173453568705922817177336601950096038768388281017760901259236578140243001915672121704281781595201216830305435198177851813467548369684198539617798279331453440182108704070168897926446411267976184147735179266630451304625936932539493487134948846951999330053759640022619413439346745155543378614523367062141318284422389862022539586839611047523366358163327909230724551808226471665451202826659320528961356367840201716063252920521584976851697137529108153697398204518017504720485401802666197749372605819405722287000786013000190559949894956826787357487239141733604492530900006650454224817873969451673096686442309566621016742970818526870075783905627347288255044946483316271773087710433661065044905174824285577867497548106898401097554132958132429186533534148407016451338546833367099510090749675778133794413661927428614396743047923122719526121147590687179926235518972313122436290800468560755682012932451639890526407562974963675946336187014552024225360815050641713325507232988217269147301332161018579656446953748964862763155579995515698211611918000066881625782274467822639603656289449928695796726486250803531175049982881539581231542979418635213844540549003419340970907687067151991447126006418821886082690282172827105948178164612494077287267446034357497666708204514544285525508245506870715183657320841174909220415497542651881943032069740202272212340775460971815973869465825930318964622673982958007940549757480933287230515467817342352292175855743650111283862724922380031775320050651412624242439254356884707342947130768432060195097458623181744622846523331311193802803203944819110913591745804485189335676839167340864219301175497730331890993972527085785493295975491296640016285303825618204265212906664675336993920030997125157196388800461176817685328424133682008909948416415577371347243721299293285175125053093431169523235560380344300696662373323109034736804185161776691710368325023569072172489538204071644879008258317230185652703693718930141538509010788636816281289734901909448221644219978687266378166902112112665073858767785802032078488557152763380327724820998713989151766761482265158202829244356056247254996544424228787735099119584041934287286390284584065584150732163978538192861066796142378753570653019143614743895692212493041908730334963585761677514567705597344016047269891782632405881829967168167255746039912505931483741043012044289676590798391095766612627436431353704914772338283247451265396537083106865130143315474722870255707884443147651197459696487811431361522515957210485621096575856108740566759112040671108914709038972860683984692916551100434714250553912402508721185909486906088330193900319926985833920393898192250954444708600650365524292937226118437112305699126434048496460552973720788534114328298739008706657741060815062511754241310630503840622653020683845901678096225197015413195894627268628053492490025691694740365966081413985312411810638927276634724228807868133631342202102589637171710630005812544726081520523337648576353040116462097984069881464903961659323986262876297328546064688665725406790234653232230509866097865985405519660584720932558150717690850436886067039567976939651712575079477866134605615230123175667106762135948008563008598299835461144602219769820346022406771016077564832823598062447570829092372219656581836530985517554646105693494762968226207790141529911465597226976768844752968519176376682764283796508404965669163413474917809089025280260323524818956278352882418483591909142813606033780438409927815836761468661600592210705333624601579543629051641595970026796019093995216086472479099078829070601036834877283608471065517362790137992202719294429779270058211121173887499103604048353828471861709839268774492582320086204669722125009004053602551125295033782636741368581235374022628070613430968250794028067136281120544091088487690118488085579445169601669052006369490365564669689367646949788313796096708068489953506841986152627199674872079674400220604504414912527606947303283617180632655271459520824354971340560699658284611313878966123321780060582604036272556978377116738717644738582767966065197343432044415784943182204381503329581922615262956048983876848930165295081936388855408692889226862883866833194831463628997384741311798789422843595156197867014176862261654115676133545317243966657996172864498960612994862747851332381592496525083438454642491136829250362208301960039601335106098721567738087999428122233019106022655931141332661525600995097913508432864980306453771523976450378116255352994775873879114713432529039986540633718197787949059266005020559788548925186812555731947765413628041013433649703111059052921879371925505729744816598465516146179061998676224165571314186920454618461321238396615063333692490131779458544023693827996253107786842865168070869175260156969263655888201429777124709374338489713730919385359090829114172140013421337024759703852546312660272688309511005818945062755823757339585271585554387089760453681938992990205891530828303598472366235257841257782637353378691415318250754298370479832319770412000523893336335433748061840081758865448637077727925063963059098560571999936704617894344598051512068370584722662736949009191408255170407358676512740363731843871036026516567518137816358226397842575178540530718476107498065922734117724447548399790175343523951026679975793105835356272094867048815120240212371612127732300316472148154634981945167812005299541373668287219578675686671062133660338029757997790269535217083405976455512619798673065993735913225588468605361758219918430069899467691412819700279051155830178225443315677789733983197247153596017942428476539942980725810289917458071804065139914842846465919946460328806189709631076116217798106606150823815189629365024561082774820435995507294684626642849911933596915159449686725553973232844023475418442266042606987616991904394682231519420409317812201555029212918937055543958591347093729116540739005390118421213613250338096547246970593312811850423380343979741897941934621388412156905885819524427857460610960550299552579612163549165577805013265020899360726960268547596657556308319300393036234237501703780000147687416555649323529762249462170492972669613925972864280317955948058904791762006231459648305772632587177560752598771830197263365613116873088984695806745531435769418154968317523211221674147600702292394881401456806706977173696431332537286033483456043100080747388941044497031826773189996300152643582766459969065701392090509206929336033685587809704354824295756735912411542544666059718221643825871441998545808061686702922485762244534444331272436544842231824428921849296511577171498694850292790540948687915414413346549605170616897786187825807613102571470289154004037904924262989755868775596981459534788319815855511620821323434375447343602258333098117577654937120003654364654274243068207717250979382163369314968120726839529947023731690090837365952999793562533144880295732926818436094659224793598160571827010849726037967362845078926662788552279498135988977482903346123551742517616919227816268704863329664811239570102962441483114258563059160424478024501736320023050176932781611616559061185876577105645605103690503559848491131515959896028702259015755384740260922468252273139049107171337268045064667613168900047496385604162730511881510819598701122035612495094146237693532154415442627117910865376981407349158369184041347142997047877759221530053015661797877234783271832551044703863227521353226792675367250454190541245844075247211097387825643477773728278124114528046572079739612704220480985329793182484966382506572136117297941008364738186508883196788886429569131257044408215638995702725470335006520712774046679111326027830924149915404291755004497656292881469808751738225215281649768163263330237108161445586801712962524447073583336721299152146024385784952320524817106482179153448725448393155212567399877923776254073323502644658347413969706428406743826547484337085282965876337094874677379679872523495140951243051604158808439999666400161110537707917887168537921053949307311450339068373815275115593795722856516752723617610248533415182610191539597486732245440493216628176584521440453321483106316755000672052608241831823570888541163536584602831877573635932623692033909666364594944187753208913207353569918845181187132350408081476423968774605398738714648730274794945334683596268860340972097521840420431222505329179892325342706835943356052261730675149566137021809325811558169761549575181974407235923677236932662023608779791012481874811692055934383690939561982349085176673127272294165141501104421830535388461725751703059990165573910156934488214377163364453782826361408055161272821860644413880355161735302506984998586802229775043439812730271467841092490495765008676810857366611313323064126340087972152756382125130942028314446566795229930563710217101669138838181330577081139730831454301824134363436702084994835475779426581177169036298346372456401888993876086977460430529543769517285655804623198750643360095447273899413490573281737939616072750971072391546477902848229350130945951240039898073366940435976016989049368759645584448065078281206688190625769508283766259100706971944513850389635237519695549502560551365874655658013163000410233269124306067214887632763201336317857031671381432605117115124799329069744379890266566742141174949746279565313788971269215496709150820488289810672534064285433472736393054160042432366146710904636123456930669863763713450868438973663072308214319418807332208324048770464830355530197255089869106443890871013948261642370995691295024262502717234067246760900927518385145136631080690851518631158886205182012441465931422462874463535677842319012428060393788837424694426285899580468511988642207601032075139518039796340217927679039995239509931121022782571064190894721358106921686182129809045048121433695471077492070479314224232450732201565878512223452471432852621382751141248169885964409100123431778026232220847770504093476075629980180667305182399266320224683121310787414234911433149475888505512398928081082636449236073630332270082804708394305927555716832053598375741866984059344686614795998651227985871450733725772936496672771000896315889345603725433937990074805869698823653634947766088015630922871117399427765959937210089090796883531014292919761269898351125804910390380534748402195630051496925252787018430157714782261690859620883143492867400279348152631856538472080717620013763117770505909507576050514078573031759134462477437186646265541404077549961162846222710653547111600596700968627155521113784809643560502837620539401548783165038699348751163358668336187775064555791859483831231601922682582142566679030698728252409097919075850241602235512476770276954521608332361010770165700354650987818931410917647762361461202937959747045433419929753024299128181180221164272435772246267910177799997097108908268655755582683983118766496386099846972346977090719006999954454252133369136176395361556545644597203663975006536254131104828377888505682121899631364319951813339262673923434757189864083800882648891428645579386642561364989213726785173830209535468332039597391040596794052693902373820307372773045271666996572595336981518156105414345382395691733751818125028509578523448272826909784092715130364867579840863201976410448694406092166598273545340564882966116691183542116332183273246274104515429671303386412481517040505063059829168089765084991540221961856654682470751685940382852944366548538897021483479754583200982042773288525579732430001345829643560792287980163984761589737490992974007879130354761601063000049185469348593019991218801717071050992244715755419922527352577013700449396520941039691772737262842242008548017255581847239707890316451001384747396283399224674692172616791981023656418765694992600225220222068337574536089904245363859023949388368928860037151579995260742108509801436831190194946653251142425783512417650748025905494306946188743889061261150156561452624261527829672419480544104806317132299989790995090485934265424647116871689454351064283758842902821747961545150139220089495715704659419819600707518759487120957772810635879678499633230595985668757692480738425991339002081908212673907254324588435981951038189730548332799916348816029862352364740986331481395274054960984609075071896824477531422783244197348775239190004862155130003201824684867040645820248737374616497316285474331580721358447153846533258278055306727046616826352626280015147303257968989924102423302224467302053196626659286395919671679183274820375961104725007503909064856360982198139984108049835998037843584974161047236838613838196820645681080055638183443493349305221201425804572483838900795959051156954061435075338778105081252204310856529679708913737315670144417615839778879968713746047881192613208150850677029109152267714274195275159956092604348736643746108692830383944943777218720741603054785752535229138599275517037891371265387123254014461609417570985678997672603460359269150964298882835385915433236009306122822177094081508376524523473073407720321107199335563221982498679556112179036396984188489199187583404842662595511782915247661487992572439350754629364264985833268270094861392680328774761990407737437972489541302405791050470618686587894498114276629607572805349635207440766609272410244192792473804172629018438308474546413492400075130655602932480164301361121668540350827159764217445495683229255875656811925950159029652148879772108686766339725165445842474252819254432359741697413002288294973099907301625603503555141878839672333121578644126796238497911828016013266716767265017703471981079214423379234158682342428719297141645941015359423701124461946839191566022845017665306799508102721676082575485911305085953261326906391096804014396277344022070874460413760635577922342128371525252911011861269760127175394078231923920699168589171916478733447724600024882234647287551737570192976372531812167922731429737770376942624768388606663583754889435572201150947456018949835089948150401454157785223396548225511509545707436865668012339426512778533578414179066819637316054658478988936149156339372583597630004652374384706914104718835296351532727214217619700380412083279206865954344075901214594733527866421443339464852694850630223396043401614260776860471420599948717144998714070736381860715485953982116862629055022858198139408764258099774321775575448608128511870534502781604018432646429597288721371495041153355136809600619628269215841534921476397555805332376021937705615904288719895726188274376875639174918771726343245798132029131381427959741577748915130023457701371861523638678880273060047280830176325971324625059049276671959513012301984586579936794681889941587495505583892145010965912282214561967718564464425798401700529590961046177558243768196275872818859719639653723306841590163471189822025318389978648594807176029953022981512123308231988699352813410681097486104872671115387089935145627875532384413297327325553696801708371196864776877431965110257863888393819808284758667693317163693136370571538752000674865912638290877575260227500401980227135128019011184830319025007086757942107308981980030581435223673723345455115873992686551249999414907472758278492395456405896214702026930355708540533307747756367556080694556955314728448315377355257771550804429944459494127066759883653156577809785450736866654960898138973459463792395110369258775409873659514836114590128721964969567464613850761734137328771416373843307927063850772799753829332936444647647104722172117473198726161812306460220077757408982512041159955255613894264404648186847970620778769641369906142889219606598995726453600560049923677266117128603296292062007070601489477621865077739056462890132042789893941904441400517964849833905015998982634921553640544080092094157481675354971776751707196537421393538575310318441303014086544813633348349483991924749024603084926979341941759810513232128561821635062617233830089179558129773525033589524211293343632938716300283285861725139930675933236524231964990575027141752849746203030518032507243566570382114355548935332925100239754770440083803331901988007557085333772499962660945959453868545643601839755119413314413349570638621684025448183007190361839726309427942583261212981123086821931549515266632321667989134741095766448304018173705214183588339741258983912586626066348040877301818565198219907949638137409251205675159539307584614197073897795260353852779296864485983768299663746745900974736579143256851583291346036728760122747097277725101298688258005747298751442930371351284542422415815646382342206351401335441055417377940523237107914677412136096352544635880453429850582905090060249188925106344126508189301513122242501187555757164385788159873138259747223852939392187104890579875678526147043877785812050659965422792654515311151097920367645185798665127814007578825747313902055878898450027854625037595437737745148840526621538804274899313857169292331715673389458460016853082124782440587467581046091378531232191917293791834281822415406633945781215251216291868286040184553331492363051760969362577782478404378057735926220595524538699561819835068196310084836098388533355299454508961084189010829495327026369437569915950803840822490766603825547879489462592139959047380617270301453066429052445498928725823137240213152359662260006430809690471393294529512173479293934261334562938717749056864871331868015350729816390354496889338200849369380844662917295154060204070792081186370871647018926685891362348631398479955371260501685122754671475557075239236740726159706248949330930094982210068322136135628297947495684573735230940961880198386779078828467879543643778685163138457144401842437658918479004947530162870436285391899324867753370827652267510160731381692555451655399875593031291298207039731306041787029709673675123752169684866486555981472878339054580620636326185831799809411893475256397900508836170261470939305521528925949834187907896804541494046388639127951201430328048143461405969955046478244580289618254593298822534122523961256013719742916848951913358029839222478524540848517174285474962413879933678263841818727521993839185345659522988526495445099407805020260628297246027887493942752157528998029756924597790047075437995677459823523024048086327945615046241500297552531251112635737429871877970421486394526951336893061810237306338710205225302314520998001998052263432208326535320696184799384173126539280185884424097463997212431090772916866184352109930580249471079772705328377070888383830260228851437234782461814301213245386004223180542448698273459504176963795388119908234772416515949503871858330482138131068449205733222651497799357484246709744921107777490417871509885885014007829975010274586837867397688397416322233926144979903093870543061279150378667340845103009104895683088834472045817799014427031549926234226511549816290126352945008174166899762515875013772781810138275551252216897312727736533364869191984641713124535839772957244377382111225681140922949155655836728528576669742176917018720359373310868149324306552540686112662262966449015884242293850486423169207388978037454680052843338318022104929264065834399194839054363333798029773572922582875862367606061101343920698043664416890271827538536289395285142565349302520547973515411386871590458028148521951884238259630448841725289388189635083019329943934651983663418587731310600514790464087891320647376584514577267443051611723452924894230432645527836967783053090183834323053200073489116603331150826735678032000609227805401056980566874758170800448871538755464824595474559106339855770444390822545913505881198351204056131517744472811204373148282888205455048311568956234574816416935858821218990111099623642568662575872619377281341826777710688105130801447774717727355311023779199729341045098670475193648517391159429321391257493605819770251706131225952506072043373830123302960432559158031299609260154595362867964517995163108121638012223983631948516539455200712292525646767861539246401639255262984354882711438427607603868570692236268687132434520258333081618893154014103791475432835799246550404396216559385316292022309423385684860491148029438220297005950160589585960287077655186113579826705284789069273696140532792019089886676936530049911653996959369855040880351080222290344967438019330199594152708867524107692858891478608536305807752422421334545074587546806963462314138977473846227158965158022284137646076440424686607782098237667308421094902478643878078859296879380919215728717402921833319341734003681319689898917284526918212278877993223706756329706888926986747789872467986428477648069716885080144457163814674682718439060927816745844742988252811554924730865845316662314515016688910394970551749412698937427801950050652697817158170292744823458731446628351612156179988224726913586966282924474540762941948661773327972519546967123992218944115237032959883685224965185489508424191226370205689895472712265218573810929091123484666145305261128725723106957914802006509540218045987542783474363931081392377340923995484024463570466610272604517971459111948608024449224115670278779449047871644118328418728881345325317566534851803820654716326381481649488133486134831870231020132151981068438723568286673237270084625173046479626513907768761155996014536808447779837130348421889277636099573165354220693145860847226261386641675447990734936614960331648735058603018037996849815606512909868442895695459045542556694184792794913323625414307913783884927898459611988191591937040405641199276389153576702036789034833862236391617003977235180315925070663072299079838562813152726523114511549280749104269538663651133020035241422886126997591643083904895774429292462719963160945203181749463251585538906838705756140079703861060865028758653431257314801386255218540966147346334887986492308186775683979368971179653984070300757708444951251507116733803724624049136579642079253853664188080160134371251491084513843123559700757816593943859532039217855707002582734598601024245556609628552467025745187080339206039199466386634256113777225001588328814903803307961756788795221868442455693752625143632792134424244692431116342469891153773404047016673653944734199778154281394558744861330600558877462417151526616000991785864314908908393608449683482975078150926560048833421802762493107321940021008510496071921392884524082316910960877099208793048978261740792348952157595263071210743514231932099455624858084668439665063114801508636703116739935252459352500625352909288943172438692893592148383814224475744321249565449683615870477066245490767714347701576414209109662625645983634229622440882357424989729250593191170668746718647029070943897529693005548523814316366239799486872252522850617517060818489860472689461340980459993153253160821273685209294162410932283683401811338771942331977505278974274713956562832972090401736012971063640158143766627451399786131160344836241737344110973113674939875615333372389082897986410476791665630829239472823343272759304928791489222422990747124116147037580925150731534827355775148534204375632889407073851971350183235172560798779236890862035155323267771196580439772348976568083105752864021182027643655417096699147413050838043587311499247662461940580992060987753226986760043914203402200559330478890394193682570606765897314336780477947164037331619123073182070672567808884919471428996182866410937569277092533333600964227344082045117985431902052797627213158072278907466762263077809027105828087012290126637933355110627136623224349973183482968668712317253001132316623292770787053895716668732280516704228344785023888927297521703199284947848517982570040417278521896261650711617272002676518703415394672797899777749005379195674154427471920951920722210512533421098209074600759877340072279166096690347781544550827205291259191666457572957543355007407554910408053205784821639512308057423625800578374994967684217295703796572121999185024717194469789010196998248925044096306641689212132534355003360533968763834851457011984472884862382275051465672566220869716415471838733323317108015882006426994733227560439809378542112282831228200559373516184807405849061461060612574634993319433471787621454836899068303199247605114416592489862505689320841753427441311500180223343595781921821175879808603338131628421844324530037742012445437117460918918378143730123443739419146664725002999034828001084769264424974447669167864345678901307565768741430211082517568621492608157027192423801791191716342542311493025976660125942687054117504526264513784022668803997577819502848126641458592718310642188410922757216147479795622358068964607359255581112945463338240465678857947598890824485849378427389429682093207995901314367017601724191564035140865885022775589000577839297080395698606070075586516634422891990466391026177141096485915578089635361245024926151740878540256107701849671046877633168128784992008334808845685266559020575833422100669991533241467519593097655638519637108114796296400149654157640611245404847611697296336004516753270120629921427903756006127342393638094040738321340131671379517170882895976942766976796583241618518185030452260574007932167136638821764129348339223692417321987379079656874141823965092794304761430772029967293642107810569770651555343642008539443242401970707743464656498437423217856312032454958660309151636425078696318464327422692793384075356747038035022307352997047680215248992284383814119076209580971404602921657272921702969477788613733859240168723982801701088046924844820652332985389633122626767863353572238771243836781367754811708090213317484830636518231147152608223409543990275676398496036985085071763098746463662381447998181283925452080007097381809026892310796593213770912274628858986092432342974303710850190006931957815476308230564245690734245717426596573589666859600933223707065332528667653195781976017492255132300110939262935570457549828756492756313727849524278387999535475727724041437945893251822177889175126791983150498160857106128768389829704457840179892435504672758053002569491745514811936987918881279801907607522103848345926000286976816995888886553803819983768976067163790845850686890095213137608283391934735928013169887132077665990689663930291159963118118878712351076642117226849363086363978384836257561554166803660985287407751103526835392526219485797954518170160232762871989233305608366796547917720509316683765055861373333216808094248322534711622283999188496274760318630708217629172439245635713480817754046242583507156661670176999540269833855927305598743776800474663966886849648130444631438993879610125700901937164311053908155770407626609043049901315608079854248279835269191431631527924050281321236401129433716225026841923536687580188064437953298931200126306572064270302380173543855428423500863162089132145986437576711004179623258421338668516784425791913426369347806471981968273474429715239513350694834134064252025344765662992027206501143460961116462966675377164121661671692926986958493668398909412979501573279542568426341949593548696373256370146778628727483862666534552838283689454565277229895374610445483218060336552236091550264309653884172730619835522343447278384847993580589772823431692497430507958324036062015339841388513846695741813144736397547183272675257808417150231100036136431665462446029967078646769823598766781153394338364617835541485757125030753094774065038225952166641116802199662910158420231744626844246586600829043553825132057027466829316329279077714921747765567804351000965800197009642939325103862971450769202254754962327448096594283621077165566788170852435115543026034006639218525478591843956952822293039912865326499443161642879079451550563003174295617769724052277912412400401450529505995765383512747037961036400992770025008464223543845007127704551224975635279551881274464995182458937444893262904232961201369959582105737725583058344550432132552508723922002570790485721470939128379369406335994735689981292938047400962095435400448284004102610579723046387602425237073842647327152253255254129080925721106389262557712460571357762766119042536697241118834977106374725801398739937078785502415149127233273569654990118708845678574509685846352440061325419994815533437718481971618593279864022037476554604687251989375526480907017975485222948733760909995148038546866714737233701056949606832579188021687856358117617258109180649802121037480584762254024530628815350078660924334766904834708555772083639819074127381732440858682092517343180681434072916972555342064092412179152043392236020200996416453860212698501633961140258417540493937196118909881457207254015187542707604887198654063883614615311064994675940758093315298826310901204462653084671443992034741748583928760683834963110508310994201866799941424902013123947897004077860576467517000210702780159204135901866445624062023578158983018574276990874024474392792308093983388475668241755223317753291137554457539363826651272021033752788522862412847528636781204731687677689828048199225081247670665185512049578487872372771141622606367672403069654349655608391131869993028767559318578743091497973377877898866590859927600836400148083535212398809881337948241880986964410437339297264056891090140885159848523178833452824662361494184051907453047918978802225534865643090704107758869954100504382648406617835190036214306825467688271320204326356007708487269106368855489994403793771535563061728431723683091949337872231140976971830460135558280390140897433571617710978280412516789524378352630030579108182098005070877551497622619041711067577430751515268997289625740089351484132397476256631595498091597291130009696354829736550888412632586649805871690935952271121513839910856424832768942835263556583533689398650255967102709433220156056163341536649147053012457462085299357374465926470659612629841957452953368115078122055237810849217679636128418013186369604663969725472506217133004487172478614735796856467375053200091254512588685616488175990240229339653625949557906700633434788266645846008228186565690956179517162298143699734398762708415397078354237418808479561406078893026626318495802619841866875729399009097131775388678957649789587394928680434485881398593408964189342570403150175709700078476880713642178618340635147476361473407182049856017723409031713276201460827171602266186739899418896020825096507139914791458749362705045265498600839877936969529019259194507230242895496293939048678147625268160926574797847877172703105919543548711817530682552858689620514663004950974431933207564664281810679771822428955555969341454457107528607919881508889451998320390498155104797630325443940485532819788968867554573953765563888460592578277883236419604833921195468849782146494195342398635460123387169773403617685948297318004719344702226392541655982539997543421409862986039261790455741510085121477843171711330496123627400520045037461623324988282938854342135572382794246450102441232374447362799621186751356061725727642572824441152975253318890819046477329805139542919321524422275046575266487774190106333436070441908647001434505101328916987421000707608381363507285796797051165388371960209984522221463801951349210301321143999138566664090624614106776477356964602387373990925217340167897265903912770470780479084429155541919819868692526119519948999202634188850882001330388931134575324880602398541711991719937547871715442240207317896221095822904303568066628912364286117495130109021445900426831642517454573344336005590163518015361112483714568242364516185158882984078683307473919833183738678120054227051593881585868089378694677025412061881075504193580501202199932913069604618631288220575534630913337345661017088048183605992344951691925713165086933175780432128568990359339898866844682771015206800369537832000678149540699807153102398157824734612707073694280183387849282000285897001871869731925951299565353566869065485205339916038117091782645989706711442852012650647709872441516786936456722223209889698565416198717926960165271735030130907366230005787203399966424622786158871784153625384186733051806944276676810681291470932682274921249650605757322018004674758115229863498950073777032885687144401853638290080869135107365443591041607032826582053957146655168809618524553575787403655265426205729562277993067017050586238960786520981547606737158569977116833254361028250902299659411294039222669083483576182005312764547202564646939190867737898000288653427432437249236902112581394949818859125441392285591317942355107303813791247327545989693946251091519713976093678099356764000802001191155409296211891170431252644106615798265768167458579669343306345183578509891796107680822401500234519057280988763916333148891367748159482687523006530120019917451656729627509197122395986783270333565978025785528669955937804396107814516055305275392452435712616234160700000617158399019146637554974811770125782345858623843445619613827326475937703856628322730708946850079751260688307809562584413198121519849346469404981959711703233481959060451867524155787983087777976932697792566590077111173119630396975398554374895210211797389879411980918432103544105077017525996081664584301577639216983884052394950681220047712591978527085808536512248398522393010076998693642611096350006795084310043583659448635337894010835524774784259812825267852743220203581166578622961057060186294484287259886653395221694370892702015083375814942616888987780202991408073917229823806352529183815999413830988347719611751877671153101629158761845982079653073113065797255647047541759350225335835299346036212893618979661387198851365354439992023932301607225056905211309902756868302350816376843124735207895042576848640164382773808710218275981297270478408556164644160149984890842761805701512498296188617237345357461465978747793145233474545849157224658209827844050124051674004664637953142688079677789571457210506143856953341436658974897156424794459879022678727775808724734704767614034420036187078695481934790719983026383532568640360626378740834851920633776579566391880839509748369708805510357134426098576466823293451354422011105385991032007423227493619425566659307312311985308079915906265177059403000826521665480878109688476483732746450724452177384014326208014559551877445200659444757817195873159520669258187515933877314974198295831291083573827067577843862208125734373162413489646907488643899015243747993503058041223362104152475385030129650513297802258405249365795584872477473555368936208943642695614583857116711319493308175443078604605479956152998308039163049850208962560793344048053420266080581176873889376843932767959899650693297772751853986347297792513341582627387622400118745666577426540581680994005059161595735724005060262361610350002205387049633016596367727516368016653844381828381966303196406653418659561090715706630963364619859450610925597072044875861965812273475026315809945624958370199319784060165478750346509939484978574401739032952121218111325746780187911533058440143849792891470858558311296774724026842866718371471653640337923002938388414233865293467146910968635735451428257547903061619807118722062432371587533239686070379427737730296063175307237222932501902419645092706035816665038477742435240312823982444643347272608559853998310491886308774569295865423403232159539773396801154124543139095719561616250158850976103123563075333429737396664180252884312366172079355590958116968403956127504984883600794359205868281870510592792308189749036852000613885124221556029818912172653813521171019203910810787446201715395464439095733378435262103376740780898769888507738638447118547499002658743628660852557569485914302778015207658005248513085176508826394084606679556725358623463650544214855904393463948680664820263693633048634294993429776869325801169380278871551513691963903268654821585181701767193574547673277588824770154876485029680707585962297172243202713553030174672340799100901578083949674943054930952069754583369086700551226246751580690199716719175524609428400648484322525832899954846666243741905666888553782190326116835720833687755659986871037272635746611313594728537152003573889626687501030703964718745614248580053730332652401328257415920387805319034063899970551964169358666205889697947727918928717204406258562465215388259676192447486604627430392503436375771731404723943166216815691521115865805906654562563490166711690155206160623896436963337737694404808804464039707327114114809757842635515175537224879454848694660633867923759258994182102397793981190375619676164310891109438548672441594486766454168492766444170555560279058416091313175151826387949833706629461362443266326561706990329779186086837972772265944375791900266683444163048471179071181583946166972303873244521505770236796983557884030262003655562313176886436061219375189005444757573033234628483549868904616874945224332046488280846838963761485344299775788736365515758010093253035610315744321336840216507899094004077098546717780590210938799805594573557452432228786967063226207178660608601519569012673260855901166171072037126359857560367238721858330165137505741573156040953843327056297853163799460788885599627180648154212297286661722424498082252643721486431490700002440404803835261036308454449184715137662986924380163911499454384943638408269186102136783625960433678387627245610923498073249299693235457141554839378647495208862949868234345371419306935045534428853798134166178795357166981955164407220672743625431624024839671472640367549901870654441293991770162458234033165772249536269805870561050971856889044169529566351203536195853712888498230215397315765498847473108838659292904593441433986256586170327540049703705563382576730934192787989089827101538127166152116464833868358774738046688377158818621536614746959026675441442296977468836589810655462693111856476447893557403207417247815646143546726298915808952576349506609163724982836359598041417301261756600546636424789242989591399246950720868593782924319793189131797399835416058367215338176677049814131399756436862515083120071257460889321745337029633386917789724321888664338114473245516142504949150261580661193334507264009631155389232031382827139416075783930966364617847489230243472610219004175609061223462270760817521641126814390212635573122955990624755735856777194399282887850860690722284640012624169705502423786176243166793904924500387178797794732305047026166443311249310420621972540612826836017234624856881355180742350930230317423676647705730520344293736340666091000478308660826389656216356210763905913735829313543081175105133730401305407846961609070439477441451607457331029362397202140776996796706126148730891731053551956872232817273017697762098408534556660921119575381279259273471164522359571796320255589186095294387386115163390875887092663163802338490405142904251217395198051589820379540384051424014765139410120559424333551196082473490180017077375096690696576299890337192369345075222387637191161383822231766815538567369358997685237584939331148095948851428869052217302539573914280570021627602134796313949563080529771646473377279411855169408630273672804897375008950340722890703339851412080209470745366612973368556523942421557858112360130619874925448581957590912730885106702106444448821632359241411997273093615473957412023913333737114306867648427926406948910160131693027370271057101260970345060739255359335026019129409700872226285811451030773322770360785508068611614430596904911917869151705155908561657207755617243129515307098045856077208691816389018350224047769992408843979521182098481969956593773608012727770988677945038362715242029518943060599341314083616026418546401466556723750293364249221243184710200900433826976036767428698986152045263412894381362892924594975457322729383660056202157786138681058545242760065848914666263766028480325016890370356600275918737744540346692323777403095804849806690692174368034653950729687823238223647627865209706979337972748381967809658301926008224089339550392025354928396525863419648752422967042671487278905724516382227860268705272030668932043984805683571819548567493611588597932540163038414651858917116451431016597752042650602638980600816633224412673496882141481523324325525291192953735903218933287028247444906970985123639299683742896656125478699914476908609977472156369887525735995642440422802664429254784155898788381870513819364048289758679492377383843449245815396753600451494832323630238411397381273181158777207172511635305638013780715797795843791517621963134319244004807643776252975668706322959852594000981161642691895808472209009482732307596076901110504595528929383856094818630274199106023159434808549909321095569586008943942032869138799800928130609617099285738160195530293376510418736822941261696294856361318181148093971065802154250166918314569622792016457156044913451027055186671475543380153030260454260631479258766673468559231092928633662345506740770240381028795461836198757494130392467167508355934651467125898017502638752098238575038866064727177448905950277035384136034466774410321964213331871325680708536605728118582489597530925955908650208701893777378006592027691694957762089823203454798511060580473340267548288235225045839697477583778370616794004563630532368102736816943684002232819853465824659231090085366886879610009012822431418117520283325711831817269891914086115736351890774273009121457259612089338741582088611714878081882493109409915884501446884626520851242432858534057290213768955593925776153010689302764513384706535655881621461510487593109160905121599277862849768148972856416948752694956695102784341153338799296688083716329109734602846385821724759922752692139924941602666293038130993071989909127135701853607201791322221248655755409618762712661120275448265135567144780419760202882274929291135964373840627322225039185021238629125040708978423641570128462376379343223460707760580320699379169488047345622151660344442057131101260032836957189656219430399434576144054073169441919236322969663713327471717688286253529475036756960519925497083218990501874741485970518306263813831234468819452592782576307989939432067625057977086346195016573948387881902433950768330764622759815396311042299516726821836638868851690586225672045532718350747488712786701532592427669538115814202823891216140487570850009619780662038570775736182119271092618314101702857211861710346654765405915146953943853927945327178794477885252189888846632665268623220439393806283235926053105738774298252139649699213400102111823949121047129032011784743414000717159225238310094245714098315321438420647906075827703160671533708238728043294942921400136245094237727812238337915083657317541583973024526295310308653328996245858145977991876617460788146679864398080237512828116096215533167170309796883281880359537401205080802978979540069337649938812671122418681093729540075079407912997282666810873747363324210925500823761381930799564469868829598625858024255052117097491324582642142840964279543777319631122171133690731824441485825505218557223947726327048924825068798347819351905661488951904553447880177751112314507142325598419683062564563611911534536575210477084352839995750034486480371918007120482911400299296148235966581310427690160207995987033413005610024207078724154362022136159990952206015639518345940229030543143775108494751657729260462066607073785692837899021706351247960758722977557791674497948657566188123923106645584752753946521991957706418543251018535327536237320936613482187132724260865087397139262804222381015450906872387240188569407017427351008096139584971170078125757645991913562311701513878796154514642184348253379185898902917638690364117744880287332203582401059731807558286967833144855127017499505748231224495142402950783406803288664868093301439335480121614032431447428407261254000884446508811313629428651871983682604456718011131525074262262984230615843842255743168186630780141808355160765112457139963630040108138725293184183937659190115164268515349244501068124379512988743668076985062218578728073410761564641443952599927137751893646579324699900195702879361738964282675045157483825717690584404833126300752396821305770223563612146873580913920666057381526341197677305000930277133604535609589259329619999608318294979218311654518601867855472390718421963344836337425920253428969588491076975858756507305036782818767441248893588713673678175091256670110119397621043763344334651995293460695594373077711333440361748914638172934796004987952437474813258120367592017065274747831604033087951159021420096179544283731567397209369626302407608906057731194982645502683962459374527496603599447478108425465641344172474082611333334183278057793390489007292704515146277906893453455494672912628114585451557338394113460366161205481536196167072131026817152454336862283113224354964558404496781454086878166079288194821096347657733483674776398371287283443936093894368300241863889758689702968109536429373296041098344980924996490615433698085698970005673501059795089430539127882733130419738512101980324397227791747749927489303302821733973238656319423479605191336556038932990086146290493448254632164496924509656268371164173845855157800580986030500001576968431061610629451858318387883665767334751488856303597044173203374428926289612603762222408450546054543418163248520521360202157293960709346431197736041005346713720610273228711340508009060443608542859480063976080337394498011440266950662285099208748069158357218773927622654581833468513719211679417887714593638801094242610576366879641961365510474344306665758714854510282850263370689753779967962737675036737423759479494640477950419186626472193228694990142470018021545112709896096656914218453088353581374695760448521540131515818197798217176540819198887838792550474718548756774726870320630210335822005442717881923189812505948753883309867536783503293221116165489415454557738594776193468144357557200142179576022720927837831562910055891514479596179546931235403774621274745066013297863508684685906658490581572497108925476033798791698051583239489654793995363742872119014554472751819306794930311396488859615879206918853461436217282667166272854729741988479842585702547049424003371476191756354613213339582554240875206733921787265690591063782041088537085804997966075030791453627712729917599938774580071188039272748918609797530232153812252093450403803433326232559357955932076985308264464243676814641745279404946622274251036708591776238525848067238395739205530785641799016555761447504256587293639843579649457556957344816837017584795801915806741467498364941509381320660973210163285370992842113008813093967761134716831708833947273030714426689329588022200134882902445470176477608458691555444940423430933118632067021006232556574895520367633988891236483894388120240452460960612497103837840648375859868162660532940022526276475589929571129646593476282125404833561008089538284853495941413116255917168685163638518299056914249143571350732277376732148099746873665651433842700695854238121424795456929804232761091901985401019554964401030516519571650228559840823753912777857574853992807694171928965514896950954394884007101115404671584205609153773879211922136609457297398787882027148401273757128014355849864143535799451197309652462400294955817423812894523288995978323126933876071795762443681255912773613611061178129243228631229648186072319119501043446501172559986132466627784176864176739842297290672789450004315928461462096630879115341463562592852346487479098092846599556992456641232727632401428503554770090111927013896489090392363367113425442368650259156116742843515917652990099563960309622614729135581104897175525035726655851831639749282685560178694501811169560223884868269321179197387957790487681814235523703027388524130958685555399845774055926485476172535711843585516270541661045500266470679027764154446556586552860872803559294223026450470410976608606441501428258944030887142781521429018922191243291041001112127736751820246619697604141120344823168716931601021031384744658904751374373540528433626352130270800754264572071129680183975109641216080911525251671451288353636588572198157897635659329758734645727622881354604583741971681429963269262600008044298576452065435306316614416033985161141416015288212115768115368135511043686224222330940073649168956534660253615420314021141745168260137881206962635457959692820823422709036223310274097675851017697546795806154029200429903836834374831090592661460579319266001069009834343135367451506695850232702352183648319754430619307174273084268866852937395775966529924525526448695100902325341971674734942406143087602501973457174604338521678108834679906302418845987897771830119448645835666348041573472214363471454260869312218579827865413572217886158090973607364365153466752706112867010129671625546744426833716520054362518694944837985236664906797893867461011851897375037224336360174877111214237981113141738048434240428146314775566705701963443849964625617385488599868618276985843033495638750657154172643408452680221764654452471966239908140644651122225543304013277600685013384021278175625780093426200291817912776359724629890016233531725866592296343414477224679161192357998138770473093093694193972476913651792699592857860844005030803675932132946997883346244861577817424615789702092627809646533380733184133837500185530110735605956980796871392144229374998110521500965563771532953250505442299352711550637278960956541188161280699043303116437997145124620254168134874679909955232034227421706582189701904004142024817910130958459247950242862500840764025835431139318097705162736650033252220205962780274891372545658527906418564890268895242224544154213054583596381628833595472307889719240134765902968384798688624067416318686402954762457666503588663673388772775287356940803579903753978995717466739344026402440180767242858000967992917404671302879048925870947578456597263611889249484608364702115666948016783438508302805643677539332841212565445795281391130277559656093746112560117313481034232800146108396838068871742741991481590894858495531998432313560934107757316714485609853829871698724046891909354302780105176156577037595213715737415473868660084801053399301048319001420040119103460730315071353615822839899066993687823064056010519732512925936032351085286858449034170286997293424171869062345121871093306869082041763301420402587640720253965146959890065026411263196039699873270579412853160596833492561410091960462207989172351241134696244303709042728949371449540535406246038608602925453061953858634500458401837726149819239471854361750889796684446427100058992109505229471158096446603819701875149922579264821830334209207650464503406282420068237099931540519283207618575538585535809821653244193154026515920126218618101129362896864209623538315992530252779111257629312954682321652839636893728828064118592837235245800870030666306482516462001740335314488159914041384749232388923399950056506537275637892200525927378919575139127899406050659436025937396706458459389547363135925502373720320340627230432343615956686266551772632266752999578114700454517556691124019015186853278609640071991951492141533293631168718584384877652085378854921758312492000997442491375699100800911466727577536654611863954777986543944624624174954610267009565622417029268920050123048844669971107002703510131156532741956002742823195946745721072833565268031008864010062195286257888217360645094232468812449143493324113429996161032301398116846206140008365481799840090630607892905650125840051794378186704706240856392339463672405613258442233020904311959865026346829166258411506756370171044453339266353544404256810566673611461710764367204958378579674311256454316879569741231463635551851971024586762918090242675435636784355751164644536834006957583235824611215554406441299629325167673733264962613538588145116399149470328785560743015482117552328512389443381402051537052997066139181033248720128344532742026027951478714124529063153797133713788255140648355268962890314543620263007405637940836273826835202290703733019685462132084378795990082926470403616383214340745644593896251561870747740620243519910956661331999776138119615998259317278001025038549205712144530130909303654483251668200598409239421945128564898148879376270499519699450759856150438888349993993967541707027476784262724572004704570270315759399096114561582205110497181137073561479976272868541400964943544896281052808528137662129097261672861972552286195913325981888379024057349481302583677926014150618485860326151160606318727755264288495303238954454910885371241481923431266319329131013420945643658894798768411987866024163010304578538628916157559010380900413584297370782281057733935373587476734068879083368575375266769029088740808034835384855707056309832100255053200124310870675006318265877403727439330011554858476716922803250238676192762110421473006469277398553118006085886540352846683058083940294447381163828761288733502763934947725877830707765831088910516455053420081327613500705310330367142831787658295145042588637464469115595031673211772577437907009841504230829832894804359612784946223555684925604062741213407448720365647178509678488261621462903134050852158821441694873825447731119403557303454626774636877023804186833077823031179329028449111879056847269382023940501395015814814386645673252726002534255574486948214281080093572817931913816311178329842036811241267975749693828305101592208748488319513213835314033269547396719750817811993568694645810918768530973025907292437522998241000758449523586819851579478785249826679240501622727123143814963923433923314228330329317178108975884501276922984945647521036187465427199217533713486741937890076712079168508745670109962232006963318237501007725221429527368252338965064239511796740911206011376571128832085162202674015443249288032470222436763909004272212059288317558263033121051068092549677100388871661864591240926480413238889318191021843027763281696714139827338855817614368080995744987700067121325974242997087136786963696968848059278757996739087417338450432799888276277010513383946374749965925026304797543432175878467732139377113534291869060286378018314477918309540614442621876285151442738140143438180630523126076326403958283583577852267006829724716482701894335608008606800277043432568086637099447860827423769344909511500219328436434848406227995776833822203957294687844105974623319316815199382212389365759663274969709966904739254402324643841824641452812764256305646459143756892313266533543907119955122460293591458048894315091900155821605045985208482664974117804979880740765186409664200771580728740851649508277279180105057748412210942943563524500374729842766559078233173550710570199895985566340865523698878517649311321039553243285038476976183199310194762585501313363979707902434169832214890943091588011349760723904252783884128188198403697356689852273625106435358721043903411301011531132401274203084408308611934378127043175895099736427367824800210230433865353623081090599803651676643287486545538404020313657581670935790801727516867398163055015796259707416691748336238620999493400607525868630332960224421922074786222282523204016432289881699125694991096301295823274691583543279638047581435533742572245001441611734790656218368903133177600881029727887790054914791079814566732883648644983177711160047065863431755091571433690095767318012970019262878937298999339001039013399360009612067038636459704627201150400605086775393757976440017771819006428720010051001987074634842045641711523541590901424182372185602860806574680803228274807272191436912175776213273437859189084039362699308356776681851587221726848590253839613333226936172587725290976538838826365403892799346586004047118678756470030185639882987394692035581030636868119599218362192672128629077108805327325908402960049579471306208733441448690655525208332580943058370468419663321112629230002395322357559830263226451991764607240426353022020261288017358401186588799179648149168928622091943331512803999861690001539073046738810606752137170465286427773273350046215062322392101747586921096352961527549022832551330384308162109031173551562924874770508614145910454234858442834216237067424433218104622472899140505406057550796165129059345665801960289676935229081771822965250042275452813452229337576397275117398154370684798011804108855626169489469530784193343617134248286446208341091939831959182358515805486880775340449755852300780436389811717815211404705203615465930713930507358607867430734179480042602866406707826169439844957538216048175897811763919565282756382716859028814400992947441912210549077895157913516993101665919336759835167968191001513377626556372071821855397126500807803002970002340807082860976256276782495950227771561177731581892041479774437915834632902184274980092522809283831794566218407803884200780423781217856913859026677070829807800602571054476755637785438444921425344009818150602457631146803842005273859131989872234930437953983025192989962949818135223514100109098703500927630074033576526985972994942219684140723213049550110575984014172715801123315975487790840847866871678514469816580053891591260320551532803873402125212722710085776664750325530799242140063421102337770234650705086204143643527277645736668639118680973850866317335116318689936561636952603823324252506451182253189582468706963144373390961036880278162665916808339713935310493861666406231769769229302587545009771144719858745211133294905656318457725005381650900237986101201992424121364283925440065585332202767579979135232341900457232974566277003541621587863464274652518964267617988440310995554988731659627805655448327843964232114901387324071412461663261995564300544414988566100078443744370678616975400269179841000299603582627045020506445592921948022898396052444803093651616560465187588212154112479491756426847664080747812969006811463318942301510127099421930620032800107679981124234724738838661300177591818818298094893953130367970574146252375484914020125403939538707888488841399348865083415410580539783073942749686162541245481088732046252878070634830917340260852770501093383151634900195523686888254071302281452366886404313271131524172294802213639829513801341763805310756352991963716059690213431733806197949358064092080234754236418792464358720622995276724653954781238232895604086270360500989364638272715688724520101105333920160517716546522036842439000040058197858340859227906308331852691327034348328350589146077737498427849583191741154904159048126459031642576713248853115509086053097362141279591018862994840548260397958447212449970618078201844133717460482164133548134635192028393654565083260001415078605290409675191718407867967112495419103403899100595764434317373295187894871306419372090057814168276310404396800124650925748130633695127558398356682486367346892433222377409328009175066539620954714756958622027012115717283791974570405679485283582404504179381509322562563419180787884100027839862385925008237116876188341672683916743865004336886818347619496436975225562723358829900336318196483395035698110736649884480739180411718974990355134280779654132111304392777867695506211048909119311622532294695000990129762092401630171820176920327271259222077561576989247202303487776818690725505837384960613830037711675483342913889015976807988715861782805997263156788054593775918714255440075942360252254095594366674589642576525295109804603006412964251502926596535033014130570447546108291129867105544244737401116479640462600448451463142369305439744832704324247332469229511486919837262539330336792845978467646440694997607456781646181184894740817453627485489590028634834263435490290808923602838978346187861339501428975605076783442759858503417771841598840260456159441159745940500185638271442495245244990995807840448045214051266313022952557365096428685410527377644378911298742139152781601576779373595300587042178697127331868244570523847214079479496820304382891359569854450427892703455579287507881351075755940694213476962545114610729631278849851742360232040380116685359319842808287176603301060946432326654268394703872465795579242790793496651938114305113064357762377069413781118881131300269670154418887093524987242025961022271850099040081356113808572491808896629666013469589958926723104445820974021566120903126094823638429146012308585437704815611169971164755827401581932179206164299947409142321077214827636767856090621324333582672875370435626065480034812668268992175207605780095496688759187927253035550592124017471084269357754892176928983499531824268798111624895772198102157448634517440449513116649021790420654489569625390415750889036494645357324000157865796071827518215341128611983380646900579201152646101066576964168897604837900844536568051647353492350559110242752067966313419884636716610090591048493159498749652409216106772622548447378680159367430068072303420740411764352197589725892278153287183280728954280107719445314528370069831715689830846341495246397203850515503834559698899535214599990497431868777260600206563483884806825979507533915976507616568328064560671699201160406016755416903851780527076478676900851677410987082106036838634242785370719775718424044733852066126036543790142067558141628982768922235803447196384400414983263517302206258174311076933561806692918684216921218123167767021859914920568655084455261673597014546711586855624368640864672166861889867281740182525137582306932182079092809728847030323539863511406232353497491172001790789304239209682824854444672377590956775846253159665939771916880003298312344739469192743698834812778930210961169803571792694892418472931244425052173558301724478880834412144517846512024634454317974803310212014028847978943518995958561260963082161977111693542465896415049997518554624062685165904695471049480274467759188296575071708874044787160174721308316366630632788081017273266422739648575521880551371900022716157674244421540139658918252412246996369617033382181820808816297265361819799520499015942442241437437006870079035773290939091766049495904079028577045081953488854103477041597651955632082902397501248971251047853955461491665553317405017749845465476163151461577636706194624180088962019833546211954905877816341683593110353681395660633647318867710478787792643811780438870256589527818911857462620191367540576868983913178788633262887076113742197708678289947123455528060147284066237565789011108815798348550098955988253904732514851449895059418200258673310976696919797403949982713694044213741257336328791470927067217345460303704028581966688671880240965869578375574301946787934391618026947190048195731734855880875535930216186788966716272475468253781666958285451833304236626288951373722667204897991934431961034595357625635612982405054622061052181923306582187499210681616199946141451053879701430447311008820947616873297996052329375032464293938479760351361450201391585710614012581697285267335497589876784406856183691653989802883677319727736985964834391350284408025770932045345247468927618587640838477102683533731600154400610201129485433258072398734872706242094829811013104925252834643682324870685631268844558734844474803866666617063234972887434600743271802715051887563833725652840713306289601529054327579666371663675238699211817444502316301445065286973258310563570496337682029373757415349090249937748050204226081818883042645949264110329527551774375015464385520873236039768307513110367832519109026040924324731994042324297579529745398459866662936534114303215088732409024851027325609633904692971696275560347907029230686771945939574361332167433637124896036446239874067136333263310617338289604476728103790981845838343742410400716723264840413812126084782515401325229934770687142373492145672977659651696438926750172816472086520439057818683730778984904260010362293788863807674789979562365019850912828934851639480456278538822683697112634207191467538912346163350514436970181858807319906661783716879096348087612660124104672150023968158973835277998812346811409781194960774149778365951433578524070047933582121707524419572729415525219458557081640641267664663194240542988696954796636477142220612653717540407038906132971403605991749087617072527691442933332727493397138401318762457785420814862927817553107104878141084531476601969665940376370101774879667490680121947754061711642147199326027701614587461305472640138301064473435545595204098579885024719167797245877492310923782949431761152904649890903935609229382088294708717040600854810805523682876604899453294306563923864621364236968733151474866027526387077482340858007270212565338300920086278512712583567237292143484210421487518265750870620730796751807191571570151363168232583955959073132146777521093814785594871727526378008203349196738849373204370744526650150848677983349443865831668615684701170100634869729100210748772102534778101665033020715026968955293430250279741032669946571497513140828167291515677715007642613106708039304327111046233613068694864376317282275460734567364535888390513982307779925474085460696765022987246872496803678020752090464025311555786959580300339856524881887594939746600008305598817558246051745294974266035472384633039663025097253215849359727660162658509847277066135031139731806732616593276055732822876299481934532978382785826662622485470418319263583204029341170320462084870149689739766884563708896905206130796241733198753195678298682526321517387058255220102142983422249824423253589131973084565314214104348866096562215531652245827720285793495055349943299732351499085617337322058068428347517583377533464960045913729169965526821038348202532699523747792264430066674046160160661127517140756516782353007596784006685274927774444847410796146412179752775757919206427606318393332771993413997172622850304531918143429491682264738595105335109553006044733471010639023158032559849411995069603086678350437633703883223498220190015718183070016628535680661526898855095636397061500271029118159783020576525040304818299634367149229762919239869278221032080341200532219422978070881212531660048715364244203437782399001370049962429167469994149301806592625914446812174979314935062992485055159427175407688723581128158245672339068418416118854833670568828907338685762555940869333285214008178688354941034220148375369351292697341822111294819179804828142403306627433356841047187191634211120901610394508907543640761739365429307646295622918208246154326620449227598977222067335746352928238119756128500227086905215652997907561774885954147861152783745391519354596642563654070183061819156974705500577117332345926380209006319293658168999400186960271346624514472029487781402914107903085812191556183091013845563583997197030405040569161401833872320592980528654619010544193964907327497334973822890560790966655099163453753467316622444230906799481960264653892884450226537546148431942751711320827031887821408838800588660991633072022278198337790409905581219815327361825494028508090123013409123381048353724428405340401209425851481026614733616362270972336345745615384563801733012893482527599371549769210065631569076209873710912743717702646808060395379875222861803857510741331413414029258504336478396185322557776566156441772601724478285490528440371905103350381410130404678233783712457175179588626387273399843671381862037038720780073257841631955578015786332616905253691632128350192929551412773792520930316128792649546877288550135471327944987095557532948492915783425035068581063947885863153064829280616134661091779486597788454818284664533100300288056929239845386805472149737148282255485806327650002525452233368810882651150814232875849499987932232918373156447481424192218221736415672374575813154961412565524899555232568498455226359300417647498056218363943805562298020517257857370900705090640004282221889916158947827937568216859655185321457084748141807251737929095243906797553560595043245580003404438186780429793564298918377323326872859863006163291869538929708808314089143838215866320924006207384428435230951806696155650435734676091083461171752963840208597334106395310100845382245718931021467568002466730033239040637834812263512337527807445085119608705234190284040528485496729704280033504889764329508442722715328458661976363589808437230519959782372311947429677048555531063761527072965894752437639094309280977899539597979117907271838792153584062239727784561352546771651513098760035179227253075118153937695958394409569184388889327770795892979334041246743504076640249775911882926484392183396994498341302818693347077165660690806049661815980942038921651568733099024554753786675076952311865239106651004462349039652836803876896862921030479601764888690018032647476518308539003730661892355181369098549363428316981997617006605475991805824568095720817725049840097252556002157039735158883697216359201970313822718247648243497600825328320946463491108166118036919855668235332563962928075637629092790638002588046431881613580896182255512020376210931207588507313530780553979856747160148588083002931159045846562284794899009749870639016634570482020066864707102999990368999993642595167647189414648877109015027685996043039319386505002555766295834467388321288121549049169675451537876384241369951654623668620547642907668147201404098562771832779040162064448137649066572447134282025807665764814011475748458111601143116540839330148853736496418304051910676782833429990263835044564797710824945260363416908703186087670462493198859744660015141166980461809613618654478797933553167339964434228137674465129026484421403719089481477986284453792994395879127741355376446355399086855034546037474828662401468229230886089666643842069945739466717081986033871875096843137081427940243790687505032207663473974518278313382208401894896854063899468765656464019888700131289781861175534919777619698019358952044915909704355318168529934560245031374729300882137439021380639642425293146651171805444798535923327641387158018263912418938997297329798588000777084160764359041478862693134115723109718723658778962976972112544544133555715520088719784442398557545277679833758895728128342776969552941633238818656415490403166353312772603192622343140452609547107217463033538263622158987334107775211572489376675653588406437152705600053474693828812018436873289704704894950988694072806240391188010097345694469753532036099795341117310648709532733331863556061052048683277736786874851542629415102407222466035109038795596586883315479992942884109050932522438128845645172536339114487339528768325601354644798629694148091343209813947528266856108717702802982078553663880008017177863816068801871119457855285203106849634943738866743189565823527697245880074650933875035775843976570467969130199057683606384007046800737092280596477746609421287219705733969561226605323604434790390615376194992269874024487716302849085788044280698617502285681492438028976190350332177625187855854657497622569872273821546666468737169664656901064471201418976144938047816846842878538407880684784403179082761073096901461941275375578545981518336798123431736357492696114320573303355094362681730119158732241985980428380095852102640082596152763646236007384748986275970657683122378830655119271451521478877483536363967229029585576266590030586624132886043068912625019249113752410233137072700267988090625066007353201169179644755138165321831831376818723912583165951298783834730771153650576560867046323128630634216911277517467567323968631201263622646943971949742959495993551160443068903159453570880165817357312872057487771661111846831455569892984149379416390894287281260857733130928754452837130668110383966984337752961239462669698156365686741192316068455573246063768866323412681228925434741277843528673756821223997633080664011935919264672131375637037183544690663644126229107310364199257551991729416627770081316684543104092264285576927988579957837267246206324533444633125175990846820539599663806596124918195312350948216497266721996806100111682327838349836210082040929390736010477129987755441207626398474905769071006796929235603601610326906336695412597627345890330077764988748586741231945406242437777324317507556806210106913083947105959471495117423635527360630224131825925262317392090092312162458298371666181159491439286579356622512579192614348739856407373951486417681765055084321596568571960144913357269332628733114061692060344214951810778041649004328484985283965376592498167554557158210776558347046514327060326706662151623791482285008219073551907427979738482407003373051095700237656011329794859188214744887609927196269346423998537169046329117345572743700674311911071084512554889084303758903180088528417079011075535545350913399914509577160699949110170797590655445807956946807716364274304760308739557042616113254952166080751566089108464972057152855196545308940258233548746350713111166882903959393410077870308769340201404912725439975146624560989933326260863721840022127130021747335112544683359101749646114257140940552985786865776009345690021923562806297769865371381556418391159889391030523077084964300499721258962986861828540939167447916773936239245787026380777115866325921761426550778637241887946377777520552584010588187125269585894762570358321759007620889814235452709327847163288534117193182414451027264709158137045798703880668419615351583643572435893209014277914442780000201454692231041771298573359285708108279610829724451842089998683114306910483978341643254431456815283408053695802503430364675800734211849726892847414878380970873070104030237918096129355892690358401174572207892273539903011499246806364632509834259133721687157132685078664605302363544003748243284885055643165047671356040644445016791303731726286139693334668598662495444831906272125333932416544404011866888947060665387665586473128286031216305823452777207155410640242458204492097780359659685052402259193756445747382546388126599952450948948842012694313224250878396343409147679399770351254001940987584048108822690207405868578100966801539281376545622071060148195983541047702478239391233398981546539406647629925040378116902425889140306462336949374277610146232484050067879701453518595744366650569045491446384038131131423939362065403279133118670292369794579180254442061133557362306924708104633705714046367695692086045702049892604635631513317997054454619848405580197662993210090551939356716329730538089280411375132739327213530566272351492865112703970089731204767266794365956148002187004039177429564745220846555399304710568020511213840417916571671317615000010066171545435737218377636238073707605688520680274395144080390018595820810627221023503976371815842593285644011139304028630680874828326052617351708712736562233793917215951189833729567824163746795640242237721135379591242598304257171801211575430460579035936868398810577728778053212989151327999141308036630604710290948416556571740120753849292096322326764154905741808895397523863315059205130832351370020334987096237170256235276709483983980975722586895158567605217495536201618453988350278370909924463196496177312674684374949532840742036066456812473625953081866420824458724502204895364269384097957395240580544047389535472126655396124469444946536008674030082976654170115025644089413866619054729106638459177133164114945395346158915044571424952985758922114766040874539328641868495376774515386374124231342670935183829837686302432528097322470627680632837041842313343289777583415555585882400491049493380043837331972162060603803903709426212959458086681228796426514807420507489206509598513158237637943167303974165330137216827111178403770118983860466249889031599231398553467007899545432051474484310624175138339751131060737336671052208660354409212501568728521976891597948644854391288215776108050362481519451603051711975662462036031412967888935544134454418924051065655901848558975425347516255554273930944188794231435500997269080906790241756531110402790531770002553260537082349315962613196992129722902612720868594337537263240785853813499814150285038680866369384838635854668502608926495821172156239964011441962200422373390626560422878506280542957623143617085015450449560029045167385432132850661326787250310698379979257061999520139541955675748721540214873002387437437575521855091540668842032764064973298181169877971041126366015691061893911847341018660352077651167364826309482395833569416883924585467218674241836343960489180146919608041721373924423698836169136047457570436336690990972939566610806540875281072424759417240797004002687953209777263586729376838170525988418836491364870473172537823430075895314649035958450019747217255979742140144597838130683089856248615876235452216132561607207812852848663812966205711385517034961994327005256077663001435671276174647783175648428968013507440669555190087287970877932231258046943884788808987722908613793630262175522710394021532496247022615860727644195541595978924485165919679024057118359607892877107562947623367589455018739003667573947213748542365394471315094353155262026252055772042241804750441006261764036120065687730150059625938421519674436686629564284717551243499801601571815638030156813395696611893591438237197630278799099618417020028109944503619449909181383325367450824388026845681585553935039997769854901166629219166671368469727544428726928985913203410768647125572264042991033332995843815227201176410035367634246980728895847198654898591772600538433464728220451547737890430603542872695205311054936236617399769193890642612880463387182354558799885541881841617253741199690414232999160523503726466081646513751612519314669842691381336567842431323521005737590340577796990523666914892192468315342762603853321139204117922961670286594039261591807018294586195369388294609967440170360578753097769618543498170233003117964049565265065271204445847734285069424676946058953171541512265775867176809635920597445547133526037221478278714001710377058838066367686239232330723772369417782715280702591283357655258908347944687486138020566737915869774852070505377195258647069382371573465148278538857269578028440169665652225774784627509358409070223167584471912124832728912615130484664094183039560335386111105280076237475110970087914420627976520522757778979598318795086692531880042259722751662003525557514660441164562684995436683285240530720782612013861615975807213135897794949909615075544002391985784997262956275745552035897398805892969178247375994677168731259247432669688141495371833661318827235064708829503956444056662452038349283822773889989233398140328051760637202573549156965445497596833700198701898574254959906546193093917033985725594699114347587850111874830010301519008301575819196220708758733607108221779660130516234650004044827671240623891309631166683251258929439835580228330812941157788756324001968112592485372909742194118560592892517932462385558984771008306280563749363602951844545919165992228924479564222494395091928672224123828954837739745559082014419124995901529752498897778235434828947593548026978202522225288582332994575490457510292158902983841268901475058341057969740281581954740687101229198669143871238671863212297450497223292446559951062454658866761008520601844625412373047654633637175497975140383354240687174145585593954781610454589127644054666178401593130982002796373815806795910933347904074143878184793500077598234448769276466860737402466051818834890521262147870558010537907540182288216086013120403200567077271069300460164568863121899884542043959997998690809338015152848301563138796732323354107689264264263193249046216523265839574731340040778378787976736524516282150342380160125012887270183278258504550554130303608233777099661697560355258336844189610576256531667413888335178565227789863530187813655844292307797579761497061972826080800431667704005561117819138372305505273118226368541920103181234914685175611560470117237889581404021479794041478316547566038675024332057829211857735987702540130957727813204346113358781079544100824353654732104238283548183570823502551650628032131971813145676512741618364055462474085812940566054901749569252335389791233163377695984085624360057748419131060568831362156910316791412414001689617700691897890925025231607979637785548666050572112015576240897516223797081372843431201816471143821904000171257916682259899327895241045488973900465732045399270619678189872228020159728149502659918501719649348346129701028536622770198115393236223515197654748930517364049588402173403154133963071068363712922010514048675449582915945282138181955439959792777002272844142036605245858506844144566104739072292293428458689574627733614262098492921861977122651375586054460076700746707478517359406845469138935011513298330645767995181696568072236852330561977309957608051902424177678848301725475136877347232568715132352996145247571080652982164590708589811522557869741993650269118331753476520358614334007562743587851084561474514389329675326058127972963210398172659825850722494332452574970723522169223277720219727974206799725580205374589784269754071613251127819291194178333316105587457648254633717665021762940693077335858729404074870767704280438243031927164619761041178930511706686157352252005169083969343307006100431386872943995113217207465916177443868778789964472087615261798382366086117182319050418240020878540454848576855905928960319155755740474354866424241320976710335515954598301630754809652287342170305493023912025646034930127702744761929141968072235372865118699742001771820217131678897790873124458815930132484868678221586958206051639539403878283968323995039825362164235116690909008605894941100160473748062949186900680861376594451601489771887752462011632185175786824568598780911643145088973195324665576330485439165566898597336710997377027083941626158288172154213834773140703183320042258100535536203388689942626605413118727563973767703535725626514175444740378216048656723445256812907400620275369125549084325233476640303261643565836838172769630997688580157034208422729691918887140899254740326962849274535980165700840907477454056936427154048387128241684167553895177185400068062475782806442627879778783900259353608872367656657726989370809945871276868617392207690271700551321888757879347120399788259854827386064040041948968394504203945913176378010403760720140127924725012799130131094553359437073200158090167063764282167174298126213174741868954239057880013225709080153111785753074103528584614792714608294714241946717015574828952134287867166606873164910913415910816415984631066626549265839727367683591403440257759166486217149313637734010309570683600445855432353849595126290690498203955730949796456596041462845084686379068562129630734376293398241946214836060138865968769743081632774756779080256517452796137152034136559007534332808783007645853255553518460144833370400631886040242367102333288501156066430973558509089834594045837161512023958818639027841877000350654229656671384938187991774013798653116398512270766918648774839176279615220135555809532311522887848640711265650608940552903776319117005823274280337428754212465174029102359627327149102214389282792764489618124121194650826148280312186553459644839579521242213015186937799697891091257935863626197149795136578085145720885629207251522147899903704087770186233318112453772237670024463950257734860498323896249428123285345371400358335511073454099863452110655388095080583967111760481039328820712963740891335827474006461903284532778545469339325512254514626331717490840098901687720463880703011544224319888582316634983226403868899642549721210855180422876482956692873354236946013596943528928361402847871251798260874389283279092674754262490403818629689333956659375769417795185232211711553554177587612465128214489501392829881608267499524984326752437265649855805519826389809343655715779949993853529258337326193918814319886191562754012421162709792261430614501483133480291339573666688492204505004295831360935186218290549949016904108121724615637483231098899999389565911189826668360822806554880295398706346466335986667194277182364446896662029662716404775019000289701798609671506575807236361520408082169070244677993121611497471919954548076946848657550193865795809948278723824856470668487171024057969733625009132482740684031624470501408642300053829762550393609463196888907155618313826689606443167994847187158787207927473158374696291087285209837373458300867703291485831106594491802915916865626628870982714302747723121295339549253126091797437181336024784061928624406138999175518504428176135024204901943505881002798415943992135340145229533081416143493401718062734020778900822970176216416306412416590653850347871482723038518325396924299795693819682735546762680829580236019226466238629754459550800506743854867233006251473059843869648232588700053918024811427857649144771683863825830601203952958742191008519830246834275158280730818291991126643704098514672128671619340987781710959979338117026301082800611705791364774876155689403003212508027850403653053640884035310277834377259003577554834898114105671884473436359180663294327915015678097924072752774897931021490681634873965920275762509999301493438122123727042483032138401093943739869161221840558625325996846002609771639133880164728326068437562700770154348278133766097174608021732154401623721946830921415439240163806641148422972745076987849910782969575230263249850269559914645366584966235619938251595300170116240738686084236313348260477547109696837327871824380294579733713261830416035455277738691345321203306625642983616571454960799432218280159612476766467104848726368174753250930686843062503290606157744352081399603497985479570992016287827915963299575947343444813396243288927444888591276881284466771751608205208855341481539497914063911359256025135425077127922020826282968311466828896175719540577050902200329057469189862304760185203577331715334502998795178651721354790535642890639368506126160761815496467180939185078723076720246021789978193991208550037590902010507794868814771958102918027748519324645070805816769784242902224960372223185099986619181854526865515478875275929506004683899578267779847778826126606477639091250478167011817238644714224776913933468540652178086221129625826859006041084386102654568807152660688381403715058348053836334578156680231685648988106233813152963163493140884257456002257977781613319831747008695522226559578200915098683749900218348773928849796859028031840380824517109403770585294494173557741254462521356617348478575649411750047678555139299122925183234406623009342162263026893787398133854890832850757221109999513066060306354834176567671442696101268850051094121700634742007034099142330299314337346557827499843257066525391275818423702262183246021342011926943533661194738907063462022453557524959706565409912174995661520494160914790718898202354708368266170117273194848721989899318350865352204114813550750837591853475931082313140583326672603251899528581823427434055872651143138140151219960209274899754234104646660697193346411201871202615504831896355823593391499313178556336124370324516965044575326625989183810648931015445654330447560878120754837411295996299287489020405645787235136246278442317460441113785765103817876032349421548055248517937598469976714952386114158392901799686217411548543561709772822632821279403051140931016328208793520716137386257328825582916953083178872539180302266814424620159958249307734943255579543205817902984737863424153363091967538324228390052515926716277528785511719561340684654057281504379718598628693659764667058447811103597151381938505094996086461848726627740522837130656621411333212914631310113327986578663273472665112192912822525155530023963237054469111886081619074490126998586128989285412933261483385490228475244051019143868327915112468005721862863646382501223500453198188445741715059809088645851546109622588141243730787136168544913244587962619807204515181251748292923647930432773599497001824804899691503371859583024303313742806490870495514552089166469558304506887355563535843653662367462758773767159417904891866001505089700739633933724970074058613261058807993030895603953190997183506644202509150995539620722033007089021952958772308488891936198575887606512370681369394975160497711526390888745073769077978748512008478578106551301489243970365432403780361905485536883195907381821502448276572067193265966313486619037856492133769062469664395123147845878141604274432351227794823179403256808051402470658780313486248083621175154581290535370159568148927933164092501683181978743961253893123206966028769995607877883887133527911638827831898379095393686143175426810286263222949604124990338576279452099518448506732377677132075177392796655950563876507636366731118784475382483965033489833666274223720630911724091730032296459052838854620113928962725014593407828140865447967861272739855254621219340440240520760989630347755062368810700226876136074076610724104036572095315433271749824068757057871421205440371362878538755483302838480163867479020842261318344023370923961358036642264661714292293366898405897691347014962012295851923103473169512634145763106671382298699004135800095546371310234121882555386206040367924472357433668196144968313586397135557015135650764971412688790629230793462428425985315819873420718513591055061325298692555192657477846117170891286126573281421822872082774797604084463175279540014247147679640943134956537928389217743401074611920196303764343917657227265008189836762543039766812940274646692125855967621358866105972326720599276587817759968296778832899401218550938980204348489888798295209885456652978861113371547267163671676084470923851544423106630475035362843796158854742688613133664412433753891149682427843860235276299156439538071029955063496079473144273079931957840477775670353059102670616047183683485452598385512900952055803639478819399726074265375290980542675463506924325055849181245399051506828107386688500395311949423576290727738578970887617817517628100350589924062431122726665754928985297204061989703198877577321635585204341151261220524125819509951155511447514897418098533319333966488751095793934522832161003012455085083887804773537242609969554714062234631187484965648273820657587834932011417907696637608148999095280325361502214289074315343438612756157808612007835127242083780398272873121158118157240147070911555083120565580352311838382781397033154169438561576678684348978635095987795504667240614808648607898178824182008606209901672464395893383260310453748694634131669959905415667567570775188332928910749299832441916895414718031474880568197146684739314941076088836777507162573757837454657988034216229353733615528165533063769649693270796504793703278559800342509213842727343715052403871938196170184730663846345746588698843794902640760683747558572240871682350989255988196501484521439387939573050304135396658863504497846231569090414084841426294092679610159478805843030372956088212806023068224626215935242386294240158867156759051253812989422422306380754472187625316553901604591365695444418637187820294016286548554544589747118565404574060571257513757615560765288955647692609923790879378483403478353379687233865831821578069699124854730674588757816675065211881698788154502984156012622139546340856381901077363275674887041013380032082437109512701652837562041219842639209809371786861127398674770911368803351880833277148235375904033957567770839681739572568030758183637446420006448051557803727199574967178872085739105874148715668605682713294775490010938878645639310224928373813345372988888843959645568393373536116369556344893807330988560072071293503859953697200745045444620013959126340506829994806561831472543064362567570058542528378884474021024613274489143329404217150241980472144809106253279721376624321294946374538051112277015604527759414353779603564815832983234073969365503247182272192999229298045549993587326091633857922884520216410813492147467527199766078287985065357165156299731546407637343212879368413015994400920564722749028942805286784544258786540287639190891184084871405035127328319407966635742550962097945323808834592371949961869228864959594581495031874820195981133361695762527176588538681800133769510347333747805136116665706699644599854652359692788900535099519221813651469254865230236567938521447827764343400058380364560755782644185738198531373725982517121452812112937408947051925141448296374366692123512160677978630967455025944359297325859406720029109085770401874710836137860109434733892292036020883599332880470874353146424475045057491977936427591593413975959792831109030290956579100412487771525940537158320571835655612381831010922435570058168247028248666629684035941539414694789341303599240523031951462462365934986809417998724678654938049789174746495378056149829755005684103191004560094515387718666091013492799621741800283788670902156639820495178763472521512770763394534423277809143186793169380503697790999775435642764052592160678960240831161729706546802423270445932834350147581660277052035419975858348725566614284199731974522487432225848247963431097416024146841398249316586561015344253861853490029457755578165344091455047367074002513981116247690508414582937559435852413742030193919545031684020098391628062789417847714644604069846015882991657573955837386249604067786309561113919925033494910119562912524310259131515893706288991664332565736508815194867649796236000379194591306591889570570851267068239624862072975377146025574937278777701326201130003972691195319132776311136819045091493269974939532306930871704940914048930385552905002694321361213372320048854145833986740630139299159330978645156016066880964819916582315609812938148252609145686311404927864483684970222487123106227582150945722010508565951364250236971158031528015532641612801713452780700157866617927890598028983297379081856792268787865815313999351454591623095170328180086672977030871575701957573934852838177627446874460546295361438934682979121579665924753345761855269808731263142454393542435507725079487814287449356627452350500527717557383249664335211172223982920896665317205788639424995901059622884739137795518024374085786231190514559740311097140963291804852648380483938147773064368491880157168997401000249920120733011202949742916387018980675727032009691545586873303050812468823785268813008476332603035165122598292545634026816451775872698573015011449186239310641418597150635458305722918547944005659574125797188616826223088279424683924072320381138003658063398295244218093091474994370652792895989445161494296128565677028036692090097194298526699798832483006297135735323743338822819397767488644730455279698230471624274864848026281254312565995539796989278782500353110202529661015197388070800918982724409687548897459103079983449763798683431873382385999353201737792204163833378410073828609075974097046515651836322885394859980952736444455081284316405904715102312899569956991209023365983427277131446979568545173736169339964464556125066837620395848091093050495139426429559087847439921903316698167952858604807837558338343781556691150831656587590977888677736190087511084581917648097793737475579308893755869596237861670288370232672573949734452573884683935786618640286674424861453997216964231508098373760849788828534355066664215865273445615411052728102108388911879604710340996847278505847549263443253086071311827212891529387049983871006249314705409482505997048118818113105038948337088013632017756609528637399269724419780299200511528866010136148992038475116983367989447138463750000967394737074750920893192381393855766168386938545921559942333509107949544821039311237851561193830214281553243420959732279332072027387010431458926709398924029003507241466622014351264281783605094104628058179811730339647073849790862765930123518577398338721500694092996070377974887464369850565233177277504880189244793287392945807730021694786428045671835706088061500208909650945444948315200730794532460888191444053743165578027763351357510152646841178155997653276505952622887562285012329351986401759296451023249613083255571169555062901110286561334439966181992793587399867647577709585996366764233991378564712025353733641519228797697246157493405185813684613336824313869386282747768088186388437309569574196963589708978348921703841722488855822692653781565453564332145731760676555149417028812034785286265699712276383503549658705480128159496402429564674374668494501849091450887050571838407234922740571759565449612012887260435549728239502094360893893761795788462384050246264859355262224682048504948675584970202005485350894404267867623421506325826788810640922293044042791474758683202974513113006288177242167337600237170267104290336002238425146796956525366658322321355098634025882988911899200484609597118237083314843947810024174349486357974309588990372114729438060661009526510847573266158462865668133278820527714393505426916003623801594937914281157975145709057881269629078137422591762871878085309738849344483491854878563583888989831753731382175717252030979437574310419812293897015856588198276934347415911703642447985033086582373594211587715330179979645877144452248566002715161174458326246272458031892837607636157366798176281164509547267223646389940247957904084285802056587484487557509980769308848530376366188352625783505626737085642994180458450094988672387983455127657847264709333757695881114274215381352430747906724289276924169345782398245596220780320709006316161310421547355839489535645540405800572252388604380173384819967745400858783049260923451196632085786469809234249856067901798990007240756115340144959376557425023587454511177352166549093310969270590562796343593991236023518848435539494020374002727072340463579186969603795608417470638903648650484287539793013155503511062891188726799764705712833584157984012990792727057326373749074156267238180830614431022249151806515700756279317055563171605328202533087695643516917456311050009837679135397299217610214240964177942492420300881563938754705403887776758669299112969247899535323707123802140897547415743008819520975099258791586517644765556780090377194487762885780228424028924093838942417394398500793251436632837848909306098742455414039247247300193192904795653158550538038893846258595612281662137839752455407548693240617745729023967371640385760722288287031287180284649637810506306176664362205744855700968536127438841251034045110284772193427059032551098693431887968829629479833167646012812823684143503982624946612141669156753214039445498844089727528026785066486960478458506890863458638085114627403307089446360819427134248816890085158892366225693930750870069405209882729282538034647906146640135373840512018397116523209394973490936349406559613457934222928720951069873776739208065052328873923819911052152648999035200973206771287991233228538822921030285169041729882976438377325124728760285255355470605261646253733509360827712987865984174008045758898495668259065999364660472976237172541618576659885817541368016728995101513412879659779544270515389248351096987567513856097761413013308692497455723159685069046523708519752589385210264523412790965130940391570138285554828463310957725973143752661944139075171528060940204119263345925577858649378192908487382308643705306854232493282075095109582790044423584595914284154175769118668182261313296736259374514071569575333898726089046350123210537426543999490149896203522368932691633235283564387150722889150685756328900810412834357484804998460145335532305836706261232415595305641461447567748814804899537971331488088806696655375914662004381920623698849035154932073369261906690615769380822842031628605564425188293969552577972266579260458309488630395801891188415616409458447390184602460947337108906325928139389891790818668057160533483668393471616751269611587523463401421952586047784887633259896279192709847462286880430865807693402797266297422381172826126934740745940054855034473942298161542814602006989284118422019407785852897030984911502876981034643720775604685617933394981597633552651849068305988169007646775624979743168936369673409499743565501369805948243231306649194402724200418125139472080738012132483198877210125827501766489605862684828620507280477626882193086132413759747455384008029458541742189987451490237582843102895484420531385607925871337881455109387416306031921439716544949185855854071866571060310728428231103907194785071843511820465342118699447509756220417012846006337261903258825878724560004780091222616622014490076399296332561883500660754257884809320183511026836692343475880479982436854353409496566071724845433841966895957525921139925845132432600131172553093272830829912775855203944565623745626591369043245007822390106248390787745483066664075104119602959047551151484281178000039631344994975021462875135311810369159623914562623979354495658116073809154849912990606086667995368083625260108795357101660707595291167994074619947709962836267072334405906378141064916281367034839366046870229478111476783088927912991866815291703478677334359717826378373872507548423130537578353268240469761505196574033360861495492065838616025113265039318647190203966237384444680065370863297928929517758917703640401151331928384395180586785949801353581754502641054704882423938939208008989469169987492372716054122137751203575991225153671906322498977190250102376086097928945221375364893503861776121627487923965686421862132596209266800449987766654232305536718551648186509356784467570697715122830361398965585114636905739437553817611517145237063731689161122422920311349323875483307419422262042140249234930680152551118285408620541394279367843772315481642215380147745492961272755383197874153444661910623691358582446755879247443953216541184637543112821273542280269134570953010521242907213987472946801175305275219491247242645233593222125970707324399827539696063366577569402836377981152853282051277181874972808347342310900359336975102898895904702351760165472250244562813577554694241548803251627221254906837285534116542688242616235710378795030426477364467353791883058027924298557640746578049657484072315466877671389309361864499240839442504018518018724123327405023642409303387261666203942811278863010157307031702408616350389987711379962930125637741547269804943013615703705083389639635550117630929702755866722453122441066197780026455537668955212662595086727153300501082183317196655072824157568069887069737018614295565331649837668229321432183294192903270231487581280126945926733935837749027342896660862669383405560435938018528879536288371765802479020618495591704080357653559451347565045984234269874920299540053743030699012602722865465134360393911822174540955600141583605266655429503175676347434446708738668990740897889718622961980347328627580678618457412748867975591573880967744934653267613317987998278095426717298375456634789606115447060099521116890375810657741363031407018645581391246695070172638216373594291001188525113753659654663351999775968466633794384912786626873672460147588322839010346508451929479740635076066343668246876147917555077787841404817836206583414126089885427654591015739520275908469223199630299551555154526211746473215502410097492770395782462960644250528626592449070779094110709227558171318613534749873632162032762918140660383873399283448295199021184582781029512166661018259742089726317696399361429046955316868746503579090004231667596065673646336303830508056312046357725529856321138153675440713258489993957118645564286172034319968780380958285675846434555182102351184589813922731881580187370083267211322436920583854938095877044458516023637246304467773486420326474225174624509211074775193741990813562046244154669085923302559038418545525055560795757687043284005198688659327160950174363575320493305584112376900175520919177101342831613056960205962057520065293824058116725499001130126540416935738383582766086751146531274013207834222422669405538312575179522091719929427297071947395865278922455008278487892969187152779748397313333043866488047988750680045723885681997302937073752945945624528183745887575064961689832915343123519851852008939654693892210368575321234796003298725334507985150320668415413695068340088011240190499552445877273245010815442562940801038880575076613042594533886482994861168379154355086665350211283210837273409904524478422251798049948155941425992597847342168825592503277541283084202942100879889184929806770712297561598882741606242011812429393775156266525188040291913281084042315008927524043065464148396069367725830172719473972348572080007218076175645216396853049921475256753245110859909335177929971708671558702113640537431749473533591143671321941213572749404429033468575646745641152757016558776611351582548423798616291424469842670120595902019505697088739986230210077387323677801206419748047538358367814688215111355829315623104216151430511592621524058057345230089807183330832072278720175749594647843746126414178112469813296488321968199491076985605687232469673310619142985323045094097505594149776986815312336269627944171939043405779847888142022468507213243292483973505880731843814734088085245038003875696391226994886760775468414872126879140436938884712450150368131744225186321695668485244800884265427057064166027596346428077615284844785444926401209643546196409981814293823008458249626131465598678334085250669141060235686424002449880139649001952610730386721576893922531194144420161598053983600514762154830759000479242662600215524531423444616667769335527386091028429771274471631114532876123398663818335291758551166405089518457474598081109463725759763195088316982343068067501324450000043120677853997822244573432679271250689856209028456983856603147741522925754930519846674364655692161655613217439872372029171900088995473429357158930487096392705826660541924241529474064880264625778875023233029436135167386363451618640125606939291066885554552748401797790320679185169146718902947038475223817080848374847078793921754632337832316140988592930484202497949106822825671282801030399237209164703678227928279778313124617191622091377177713683664418141018712873731586152565025021511046743578226053514896330745165596358735306180612161286230046317543957375698423109283980006657200380898737766077328374506435752693509114175966510019041140807331703740705564674459750386047263563027346487572598191817664624846981774892945067551059137385341457830830705448868114833421440216560736993742801782839063987218295849221694708389745184028341544827682411203511979859546735085615177652646979659169442130444455584408623045104273332976730686785257266959027580722676142502857309579538680885606283698598479963575252148161103039940052747267406399159481769252285096440482404142971873870853548728119261327051714457026257571532075462663035874225775451323943721107444977152234382008905921103943982311950762469712922728886666187920009314937409655052636969277541988815438857326085873547474732295027613317892574379970798245450183905267833896605451944207482294213065310804011316161225146903412736000501341214903249736367367279930408599047892594986238533763649975945712053377332881884046549777929774294522624786094609145081416978896520743240026189350866466212503969087646356746195002215524123990426947093408793195782232422933716274128119028175012888957687342883570766992295467026000893632473660273132552291276926824596939445490846300444621171118437295698341729734547441381361616907668809331846749206109060162281067372415514457856181867575991988969687474013968218537108184056487299693859578633793870632337597498222110625205886565176927193089854457184574484357376773892184637063637717149988923357753000833593785142989544590506422210505607548406583640467260452313451641727412260233417462652806150704953696329223748042826372772196694484476680046385083126010123939003412886908311155289820774244512061634875114549988543976451677217274551239219886901140707769635496324041598693622654484046996629081831058101293157022514058921406896272834252488615383516202967815804998026909851017618378667465104970696452411919153605897249486262403458953213420194497448675254618429902040878039267547047005759433532786022525655550308199363187022485762126511837917518222600866117313800628564001923313845686901793288132426289940762277744764780159351124215897963553468932270925848756563387465466765002490705058874276828658491520030491487338672310179203575214917934649356806452677556806981738221221859983448090481260062789729345500046755229778231811817852855146168830769727336175443008121288098210484210493414981199411220648250558710744544890153893973127732538268769176105666617902193103469783258649507156605427932478792898237433290607442574888722087289290900974271534422660539705138867224898043286068350493901281169530291568981717457034698974706108641332682000044255460357485550827349038038588343617077743325479966292732822534033703554443005085893520221799605757672244818188526073027215789452497452086105914457983642770853446074802625988350471089557966892817249219934736367348713854200686119731773657128286341919807628335686423998717311962219372153388531235236444760354107832224867190698688423950389744412909608889543741397808551746493297599543712977323939651472912854908285911758484603951575605245829200845846586147371966938338827202894550648852990065395157233177256145007914325205733972081724973685626583895020897542505013586449937250490638403662404170137680045884409719243597288755413949846546171899827936421446833329709419728666530588264723347066515552659533992669300409097556520007108687465269096821028655893494076373794822215721240084535473340938999718818705628651781420978115064907985114254014889703607805395516789854996228421503328210328878685203003454704490514760089286319523608128323747999554757543030290342950687033031756665671882800378375426629882941102137200324287568942080535672338560667939725934342738242436717036991817898509773100701345050645897480599844004198831581321359086491080278520574420539837147397106592033078848613122958572872471104557624316227025957086849461302059729027674706116088691673604281206400519147381833155366098017571365743988230178866852721663793023512256621816604224345199479699828796154020671120829136360361612256779068674416043447728433382061623668627729068362706512339348282067093652084075522047739957435554560321835172783072118166770494257194585576382456589026740320699959096347734229075123193022594722089481132662257274173975761333591828786759424927089956988135894421890464027087532701277832132795773177236287772184682800200855725772504330448193421711468636093668247265154026673565500107345590095475401943967483389591089776246885389250973740696467931718360943846663884322985266234804573279370627319784233513196049497382776840380602187960347478761067434909940803332666324363356126597812430677731003507807556104642449524830125221411260825290223629157337472151443894913773888314696119950397227425305335781035039978477368309860468415824571224033035742246313103268278423401698655607955123295988980967638914345675339551479811525651592354306214089750000610002633548164718725619531792276610493008884320441312208784922795103257001770765351335812463491252365761480427659020209541378843356228220209293107585854589481509710305828514898918238713684166820615943025253361997403497694421415835152970688849815993284969871129226556131289223218498449312402288173420997519786030663733470955756852525096393849372301444043741078365148835241766017956782309473636782417288134562881925905682607392346277618850013731961020039129224919817129842239568376804459525128211420915596969082331699591784702854571279868605466128187945651994989492697756188970023934117379111000380975120073853774108239985008647011714213689878417479147743642883917093152440440779209875167314190137173491668627621957452878467400677420404477750778115057530246813552147558496736354547313081823578965278533249758552606636034591456022866889982822450952791346380399454237887022042181744855904159079695972385802888306971852622182625342476857404920969303418059045127344678583177349415107120205804958129690317632436090304607512223837963645732881317683774825696723190258159154201280991124054605900488952952159912048519357356838204654147864162891394316176437656713339472023445470292306012462770682379065637685197212892694426943146923464543430513135745443561311387181202477084048630111906668769570569857472713630040541724763447299864184246571180598409261242208041244318313184338051440402643179636440587565693181395171235834987518138448710236581366335659792646005348832605792646647894721600638038045012821480750281677398843256376860714561950689312391009031768526191601175810307500725356816359740695056895247198136455456199528865697589259045487213443002990245706233969225055814376468245158188887250320460143456718929067659163752691816085259773871101808171076759194340909523136094567402897878731388061857954085147943548284811903116371643226087418986422518846513418345524703505567985698325577338721870993104246735323302150523091886885826345683967867483838491148151992853948830304958189692402077680004124688211946712249504041572819434657611196302290255328358895492248879021222547061776354281742342146600871272993814110061575748850940087408999969670519449172029422740048046064731499975452224148561085546821285012794828548029140835774151377768837621041013906448485565399437314424646737872715984429667541070337307223707071003457772629397809195143102248607861187933752734957387539209363551159220050663227393648202738488089144758296208912201362034353764771763251617220471158068050599333040915691052676258846590554251315531079554341600318073688660555304235046104589822404833285762010816186910924148589714246547431980437724857998567276086875458282906436505795594988193296815496318005350655835780329919322787340483625395766963671914039127676943704486974145512637932327184244438318594606406537933934365709458135497272061267192215113763862652380175008400702245245485712220217838897657831931528480774642343934118471399967320823956308320715343206473803453813854870533476912902903293104277556869845155399165934180200892168268863862617655901276709648020924508527840088148022972584785480015256457685329592830471907638889161393137056149068664401357283355927130560839974736953122898967131473561927692682193942283514288258077413889675875546434903504548375511917137293082975136054846831209268254773627591522594105986037723240173412020583629615515781204755251697307685110740830033918736691651798331654842323463573191942669120679583509528990596089129956349965222653386060638085651916668560753325991138828142679207950336910223723746866279805128252801208089906250116745058928149552512240381467818086718500620343539799939269329399853449309883535395203033630746829745858743912774552134048503929258904564920053620459910713246425023169031310114240301357744791631462594034286836868598995160699586607788718151939321576357149500623773452940000357306939468582747116170610996566324439307714800179284251059780005068269361831294156009780577740318289950309724106866159595717051637433587121693421829250499298728443839728913414808168603090505290413595963926428578971293767241947064589349674435752919902649789023050664587162047762430917397838973806960961781516361046865796636823874219108476294102123144389127999824593543800334363331893314391927306904183875220647928568080341964660743087302200923033626418203398964676188858451494445320083402729527518729076344508605425222471078091485057439203756740394219316233662190293183637254819292635504635204713031636906386785652367131618699653793571955324447114316373926599483096465332007411953268006452401159152456435991370518778144572115693757228873647027318718909872235703737668324166643539786518409097847825231663610868782579034447043308690927932094305417641520895101682612969789453686807086844829879021122477267147190563036375560651927636702259847763626206453285761845760490231689797669121380842652931366317841384934189089658239917020666790576876462402979977026015777975483124738426333189210666904040259695985045586978919046434033785595453595736047843395212448101776777345596835810038334087534349512801984870900157885900179930973672631924335638854892973391225520367331416926275867842477217205347507117857845724025812528664035038679854721736922179762618927011932983832819468979382916154303266486477772431505547889205238143726909832703305060489225192166970928452416599064305208754967180350138100468222225498169036327366316777132393809077454118025455874657672160609239414396536337912181370692006518162241920102724623157085041276750185155873826975911031019610742561172051585925906968825115284762042676621319416112152405473695986670330427959353693898094887153416023987752664880646251387142731925032528519040563697112940184286265258878873980476978738769922769028976481152878048361731017907314921927973729645161241499494531518610536011546798006170533114981578083992812518624416171350838672795137871229910252422932713577447912447446897783764815969717344894307461776227292983975204361279331775580930604738936755720860232526289180124172489069332974068217828279127035109298112842087279947769261643044030556258394633894456566092979156404996648987008557918547901149720177946198338247774449676898677241457888105125642429750188526053629996007239072189335391968302163027980636383717052079376971667601749297660037009652224265682638443156090616867554975536673670178726798877946813782571693945000874162580923385408447228218070689095832989506611085311199241655594587191717458766044068129770456372601870638660401710576902984204348379607733081557527058967332465825152475202693458206930007477378654068680941314571224068285705700709221273719437430120537245561675639676387149007516476555362502378499028256985255481522271931223620166481214467656597229601210420153370159521623474413949058217310015049697767708338039640642578556411319549737434092528075873121079440331908900545796833916823193077918869703881405670302800191890815017602082428315041140303644652427091361120677093448239735834482206462154340561590111848242629386312120974347233851467238809884092251989203932758896699230305170417657181124555005206323211261282616357167565856805353763509722892801937266604789547489219699829681999031639234807981141301910216667014740312531706813620244933521911401440536590624831658852609132848781700704154472430509295109788772807920707641970139931269445969099634883767456121164551015143657764511391374154533067504525354617228269779670282901719564366407207282108501079756403553549394131212972623742975077044202130636490147740153145321576397603246404452862064705341943823924313646388095855051043071390880778616634066801644819603647725985248439268795706811626650759314947249033900213511585158491079900318877055919797186563872228349137216568429836483486529957832504482141422962942334801951465148304973115820746658273075156894766914091547735543989945311692564127287008478295971185858583907804787853420122384459727816385911737751820319871330129510739920754177969195133348409470485313898870940330128120508600541199094403341106347259774674532980657168276778512791919994920253587148420391143895844628755831580837177541166325649771175286083280724343571887079480602423294841198197699515534499406194545625879825985322137121582901155219101115170253092080005976989469431541872803507138993130006759034503346495825685488576874718467704068790336308726637438130222545700040188633575322410422494383578434693037692089691005486338184578755714647303277765919616340441427946034653140540671848766122178120070380477033401446845073085981969184541199923879246897436343507209542969498033003127414101489761312320928149021255002903202502245039551684921715424323970571367525521656533950271013799808568543967571548446773582443483231452582951020088737503097865638260376236728630099061611254177337648478641565450998569835601514939862386563646340060590891538276839636304747410903845073475616205035935144918145224780711540987567804330329522671964099894511964539407648920671765588092079300482021501936528763209402281396156840954439257495938679664572837446341695783892645691701373997662827170358714300540359926085191432789959938985990572885512533711410909066078098765821903825336380545267929812628375044062635075841913142370678251726158506412639365586686756486012789502645937474196029111951801694025510177503514021438609841681210283772775356415390458057214382700276052914531360910291740858988896567034505741629632934980571686752352264106698711760823915187830451884116917675720093430953468931246562673499908011117231890456349783425989331373567244549529801435173646626641291055208918898771477241052678578715661071603849642344016473553581841827551657692134094436744277651842072098271713563385694703415900992430368143153887633099777315417487495588294893129508541335322773502360934718613165199743502777378499397213588908544090095375839765917642834761996957920284652342055136446515781798376519675747185989875789639138640822250401351644482455617212982672137247745901520175556837524312438478202161685939108793768068133689109704436752625532916989011526563363833111109593471624178315445300009588923347087185512656872651605183545445770218745067986101192851104978445144080230116850328999735369199787612199386584115079229551700369431027612043860065948540304832437149829155519105703338848567404562445508551851890508956829793102742319344962713844192606480818330520658444466008847831244073461134447859324989122840600396912774453261487770627244636382844040454366191882831810873847285695627807878225926802976747381781049553214018580227860129264406875087400994100178215662318963522628841225044222151411895456413641577755075901405770880366935430748827776570852883359957194932642592487761789684724752752063734127907753294721079591005079495125707828035517433559229219567345108741935047213854516537915173595793517536945294425414536060118752134762376004353911319166720506422433198393371629169690795308282175068946891232006602832274956797616258130966282411321935100798684497790945402842789007452016388902346096193726579913514855166829829355758162029910329539303692265820706348588754424736111236537869745943393314462518728059249967261025570333064090623044474130893341869220563703979693675252551716696062102702287200381818978309229376905581453468134779924137519772647051774241738058505702134310667176213791933942098718652019456738779219035829164153676115791942133513680991987022075214493223686234840787134303098666134634170144769032027694482478043705271959537903263643963116306679379783037441249203664112214975639181021313738336195847744311707660343426364156169165800635782064163623270353330738056784739475897659743490286246615178902399146095703752383350403724065710092390232253346098800914684672120421835886504690063154488335287325577321797652327336642701005803030607884663508058588381218615301864176056402808758478866897718741159680581345106372455436392153790031916506885391866366216424488534215931404132625206776535942161224999958504887176268595629340809224786386618566075900331390296127075867108507403205358290539044748540375379832556078381813376439863056987620931948856136767848188955472037734049660911712866529090354629172633319973876915653343496992437839312847247089218587592714295588779725932016655960255066534449194145933270263361232575880954361202790387236676415400967424300979765005519094124022727097816944459567869277489372160720394341243168297672198356890978629034134173611700751951018594509766929634502390347373476879062170994488888492026582395104042997810603488224465096658733531950357968510457252363153342444217650384965453223623137162905345177348865527781928443027373844238617196127351381394432402518258176960679381776207453786289832661664648051073677418633575022398334574048335168467672678903057254881095718232264964076888670204944632948605980766079923146711964123764694282804700421586624054620874997471313703441615338103541110084805785081921708184160876030487665311325523496415918412799192222642768311293846616908763829309082824244892699898278503200184778857696342681070991038847338231431150725331470701631455433344352873556780970332590666979784175098486378412750239474783213757041272688150262966142334674849986128075925462554624314134548639034490134735672839637736425521234606888992226808098931812846382686370365107523404454952565173203012215227247354015708701973783486453963505478131163005372814891321634253626629942917112206953507834929849806202870325335843562212375915527941884445521139308502911292970530632128014357972536128622881181161787673422928536443363966874360341896866987652460087189064125588319856207139703061837096006769266396218562164658496857368678056645537062309113395153958991518400730637704487233428716697517891409198403391982825238705932620856910273562324598332346202816024325741261788932719579198235616149242055173054246803598995687068083009536182816178124985878277268285946112648093032132104065530380070230032238772096996668334085921352232327062866961241698044011168577593107104790399278036336513041409544234619085508805872303559199176987354444168274452769428593832402004871762876877725688991454757898471720548573920974250287742771170716146316804740096721493429689924384313220601360561244659986579157130828993223039105834703479428075274053706006572582892615638078138991555865876312132033009940090124275110645924851177890884038605696706353889516517134651225052173960745361823633478832598319408326226163962033089852826608691766622623333758483727106793353234631844011008739533697664744742019762104098072485705775282660423314198031122013183496074828517308071120855619811206202950329133560713604549905911585799074150542060556256829180612926905896579843174591544888898256575441723965458260932381850626374261991889544938730527855101172039598252961964503539014289908772760875496121603256838030745186283148510906454829154627538857922511218279841913218575063868140888875553366752787769728785242062136854738429958727489077015814309458367456900770292189016488402310997417859891637041214913457891912159430579551626537442046402262955079333428878508219120458496982571444108030831107227110404753364379452708088342330076201920807375989322988229512514239997148222325975799367030485127778405597829217622014122519039934720647850767582287020659506670335527632091504815251986991788646228544330353129484806986531382022774200511151251327253412045508020809431781704939896564400444888028110525289787246751692005427475857833588536047397535613481410036358760027924012269932615044893321401132145617579271134658425948823369319448485099102564029364715531506631010379573970592309098550587643783743145269521526175286124978146462802511272218015225446971878457568947531887325116464296150635438050713678316656572018045000041472054076271657452227717216730509632323847185037839724389054575140019348803515896719908550718890897630460458531642329043201213027356210305197668739135401657245461593950480973113729695335874833749453016998254549067110129180373502101218545107065809100363659298588797097946361007494679381002732707699763121985005025336146518996870177499492642722395593087441436313973903302973127703832311167440960057993931912519277871293883052293398435043231367003983056557916280063432194449936401753926157931726395295962678197437753845293674298132280105309196490110762955575216465563456026753851720475807394662088061685469791737271322277448751999124616494174084966308542687862213381327530520450756039335744160051278327997581083375943114227987327150482700026382140826745324343960787031942524821434052258229132246077261701684456042738232822587280518609654356930616510229534825385813469329925569961969696638457551025309545898142985325486930004956286569859888696563328996269440113370677197276486070076280434291979704820426377867839068622181184573487237627916895011364196163227039411510329659786748002719210100448110400058924285375654295588830210644549089279399712209568929667254287331017794498589553465366881895039308119137707947800073719524490892314130590704673587238426370991275137557780828065708699189936671534961723523789492779416381124041069033868911528072050265175179485699085078953963480639464800316091565873411955088634561792757910768021407694998188451891966407791458061021151034366706253538159819601415010333629015416898820851157664450645309781925011343594942876121290567988443026921473439339919353822465502875071096046326425424218188942573421562284386875924886178539155581709153112197131705165784553651407013473866396785633119875075979537196701729432366015973084437453478446897998856555119386878716127006714053185080708924234707876132008943782196836309272451673893188177018716196518857316140486386880662604019155041864765183330788505284044972937581488116721412334314561934493576554729026135133982490398826055414044644804709565385252816025302299551273070784997298169838312650564734990238980416419544994973398582601832507066534517417474940912951348622489769761132652866468727489651875172004643842814247287338336785991763493588963018936494895960182260845808076579866592645028772791918489482697914190635148213172092357455710492629223296462979363622896986604580486417037677204273813345552402123510327842834776282352089062363479897164273865606789908524680463742447455337344385676563848429313368504514583999944425027469668450663478178857825392842168230057662380906521438805233381680464401969843566004576540933996201089938418021264591717712734850830870453569000950348054830734518460538196117927760751206894103991096749293622572353479464079180884093892002827939197950503522417719875402342016891928573688242379883096577473939157673559883603803905550695457205202049742255141413897233387073434225368879168629086934863931091958196429115273991075804218225274682638100423558468799808079550069728770211563424810321194936663125281053414937316512197395229232854519817037398766235321977800218707137811164995037953690390016366373343363309213575393982234323760424151734999507817267132431834615413697997063557221573394868254169974721468604031656492044918179249223756920389273290551105202928771902982291229729059400114470156397595195749342114182201637984389017718711658575209195595036708918851368158689364062081740450624174971413214908694760186693568266350895609511041465090997461717806967600381789266999041926370520922100730466084107112000492072727383059772645697486018917171290852827499005019471726276134712581488852523126546526958779437508978984999212244790047373181433830066215115173040548932270965800882714115724365350061109602713121385808261314005598917535427117874756239447185941244125995213913629300402036574693949945440433689825576976615450405494142594424562126752475360544073166029452482611124550728235177971134031487686750280375686311726474359912101045702917940344335581307266985495006616440366479620878684179225070498440714543949477718318695182604955152320550433006542605959625734333493395457796000203680671954670665770257924008534783085668229039087667184421685763777441537145289998990974195128302662095040421450278061581808644333784087226615010536722953391454480361910227193791458629738201562742623834594602833861134007681471776571917124263768755500046716672705841521869144425965273314039123469836606003999515211126846411436981518727138038756449352883742686667991611616218541449740105754698791616676052037150953039779124327649985148766251556973345616840432851376315997848487576204676714892058625180963545542882609694182673255791346406164842444951434465528093133666859540256507191409428412286764966122067424153475849212488188529159487768201450947034432234008007125756314561619593413922001521723337998943460004866374233504337790952471882746282516325043571610223272159400490467276129690292404085972608913765187260511739704072132496908948665068634025752645672118917892618677100307724563061606211236214431731382816263862624363234935398211215979479872745033576516502047216126952117296054220923690289972059219934323964525023801422495085777445940633035380931317384838165797099863706251255576152709815101260473204281286547900574230360133916487654789804706633596494068929916995259326823442193842550468029699674135667120941245658996578627304093181306981317954678809140177858675099342837283420074749907428962562992904777854149351240588387145648506679764748467393012411644762847437983388484941078783610988393881551381891335279982836591488016635577766789957366108517605092172240835092976919322720436152678723166027181203731129668317611777524609483052426169881471393152967959295198892100253306228657813712354103093933265710541160657751092787804393385850830746770437322256601807922119065683815844363599442138483060646574757266929574053294665903919023446701848478293127043753160950696721462425842770643636512933681659411875195015037663456765224637010056401165286469856717042098384973606759159778159867271320287710350269824692504690469731247777450335802680133187491507175355143529837275658954803631678326844333547551511553355561151462122931324172430739117317741604587421099171673397811840250310601731711440332166427703167159670078072615272036181096089004353959599624558384891357599623966464941334549746610610349159704112988395053347974132383343611620917022071889564561501031172514139402173410071956397315062856012722932454273238970200389962902006171897819012103749131780438739574002835463182188621943788424239515147421293429019665047341622952705233015224294712613301333019516233703347642229945863340904234486130780247923109328169479988700020370512393532215529939635724401288586288524230714789086615345133837667864477203585425894195543345995524363680750853382629784858867237108597115251613787367492927536475539963831995531320277081884125200353407751909343776350049056735924284698229828437236438708413698162317950736607201647381354166998722693987018236484868276554705745744900843101527435240046191601705177427808939014209984446047276910360563689185952730674293329057489591186556281654346824185057529625416819491997276317642493221123720428815188259688830634615752856321030861466509179439908559169464474332122249018631227961951309180000029269885987417700497545479465507822655362029966296263152574066917300047913457963878235957479618742653215535669907269625167497407333333936356912162048143998065205746914351468911738941929493862921055883468684099780099369839392378018913975617908976064952139175422549588126088248451978318319591287618960749209364945255441281766886861791716057014207246028373427579832843502085028250433409009825963707273367489165119029120725242296255095710514012667130056653366794729179534765391952163670113310268358373977457315418888653354939580249215121429871497003108454090091589443991423737222685711413570368211539690330193402881383196293449776514832767793834731872186646600011920356978571698359610658249804322235537132913450707016441026877278846771017305006958992218691576001335410965957864757158886694402114326696370763446760342810748819762847542352041118111009334537617425942649770321531759357267417105470275787991282396922622400936925177490989487694997670457690403979907899858478961747254609762702125145970899349118399834929149094670155233955517037530382894018639310511214825822834094612820638900947012755204845820995885328561171072335006362575181861120316466641339396982388495543991851761164770492309334380069692603198419836655541856146368052613277914287240574683708984994917315939585979042202496860411454947685483152912649642549018760782562180095532701057282600912718132053124991336626095600617820905588262337294696954027576157084024330448828758497151571919105218134783839453462571743627026094280762486839809394718851406143140796226754225207333466271404407783081379351793599244949744891730646755005358348660398489474530071005052156171724240733970239250756103668687834511794925356221285537130495269426335142641418876220811725821728691652470600930046918528798404229437189926592982480454080826940890632253097914568920828823355440256121509149934296906998935042369919679293930194970754988515102746198344398788709017689010973194008301057023376050026369183258608086957828100971842466659456143077459124467305830526379779341491260733533132933360909816909517285584186399633298233568822395407096430241052528780992602389731434127408009572636588754665467065109614847469766484313606104691829550526529554016609523330097763835027260548721797723571360924951947842140923578644188782670809598161622378161417054359462757041950372058954294249141803443160418239087912504799857049700687521616297014459545446728330802756677884369680490227350728310168480751565915035074620793284101702981965131694244772635205590015975342830886172114468277178802603721151459472946399122040977438450004894294429745206177253623917574172729855954838768001260077556738379211941427413386961209729343095130105244069139861795085962886429604533686993514173022348183572866343870670552926716672526182792565204371290354319838529237554220217370514345437237385368687276652541530452378388024611892025797872871813853494111776534706981157733521648006873494282853412401379079162758874532766736408403364135424791294398407806279987983680047356794208922119931901812580163768310205496932332899536921725201742240961936108433037978170802943692296526497680726266834809076015174858966973914790075089716774041214187715731419468978023591845353002184515622666101501672030936954428935991654686427660278723468582396545014504477320878572324758072499301007317261989705506209570951957326090729451539572274454005810191839189554462218249921246318533669607819700893371787027865937354397668941120319343584463622170735906912884083947311940264467288313839654095557111964163997779200792167541633952195433544635947249336354909480739229621954628159664563812758421492050862912788294393589372296417384677702605498604879892527107528197311876408732700870735565055082105817519361985898087852468288613414860051971461193087497224532159313866992732416300983964182768448319536805435060098829567962182858450319295528522913280492327322824499872073350022002777676545194889059038604432237533487934040473166577791521141323854515120564843642494495998381487603602762742741425457105159102702529250026614430685729317513593210241322800336249995090964275735916813892658403955427982630316927128163518652214886096369247949412899484806642386574392763428838676447333776109311667922607007829087245725234379083317748075872091790904316118164930548921947486788611825675500119133327853002840148924882821067376610022311052922011248727144471152179256551800242307550317378003800189143708473583071706925845896192451320999509523894232134585590096277511085397645312257013265019888463133900197084423474667552177578309094229738588968775296223830359110888092226635164120561597126628583276452156402624829129693974737715254438410799493685343175709893387409416721146729628283352889354649373267996791705623426964045187677673375377507269470524758532494009976527002524025979173406221933797698905813792892112328243020508901891129514831105382297133442587515494671550925022114248805761433972361717711595084541230732168143706090433963546784379839518949092097556061165315652823913634242130734842686383559460123545013251137737547751019775032775252528817771144107068234946160452458796633126313963877719430207198802260073331561859548414661452827584467452760638827363356020287424263709454910210445017360896435510234161354105429243920205346028954877387703444652623274642637322914345423326821643136650254469602147269979033671216607755141630616548954340127567423735625600604695012587453055924544982724806614932338132933639400550023521822335545077758736354003217694553416876157184817094358278952329032850869092801602103288532300768847805782965753094548058501624751042044154932126364452804485567288575894893045403887508789511073569921660751949279025689762617805831516773610441246951132812547727419005061278973872081761610076536433988697577213812471969052051108201109964025704311449926462336242229140903863704167692053438755135230251090195382864712608286892475087387013997756752784201432911713654522432998615807636379085533965574290413174688561690268375076331167000026615488843295487827076084533093178567928690047712614751392032347996794965362565789494394652080152590060154220585461358380774399797020873839578784730424053192245284204348414011525347652072120601046508480670123219011270718598016168229448709232165026336778604202925268969571008756750133176491009490507432298989146756863745228238626935296743621363652262206670241580798270926310451837992751605424944758599580996756312789318693176248861514174375206561707521019864203741470571737409492643476322892521730802737984895744334695641349438418049095850961758356599425097045587123470465521195584892382973080130611948884707321700895070005697520508697121243227956252635957946790478594528756338428300362763022629297051273943722022889913179063670449161048799664217902884415590592500550091482622184715473240302396473103248596235543265883261396598165820097746574978366563822357166203027997709322428168536482311727449745543037536510747326207396285213012810047147733647140661444831151321245582648023553983811248206038900592381336988496991568233375063712296376128520364765031787583580121557648907557405670463531767614112575592939879611443346091455126173150764415963418209421284396710622258054601172566590281068042426375271410312251423801155254417207111028150344711856514038144123016312642123993657192675928644184578695791390973311116488914138423890748778308653506628098205083500115624387870333562143744239090697546232661351779687766462484402113820672388509784758417088119247731746923208630003328634248295064553309403734904173043680817805407120700485555328535149534961991320600640565677487960180810605195748363086302638843386327445952441185640706098988672281436610971848120021848539606025680717814737376880112005067824072379567629590874432775898675897059256306557434493488662620669936643081139783974932606026387193861110708973315379089321512281184313693559411298450996242537913747885449724426852126575178642289720423990175043358016206236747042428397605528132790313570715028614984429061599886877015362892640930869264630180872400993257670045830461102304321950045637973535938433810409574027299713066709552514569951363380898523672593427173045670823064049173192064167988861474564962106622089849016128846184946057218081953972104392446192181538263247620459666915908459425592395869234728430907495713509569128228027489079417935868560062868680524699755035731719514711066250198461554444816577041617395691845689217291219198623467016130627173815695886165307174743812231233979331068154784654569308743802428714273830252298608218870050929419978587888412585112122684792738513159963575302666667930359498468840991951069082069389063793159244464096914930709822955972982432082023339641701943187454097468665449253831929040952624001885277297863960869512786303799299189107179224814478671561832567699873978682271752521072491582517384960565161315264639346498673833583670588188777407095209120905223156625335572169613368507865354787223623352671538081532317842027609718396138410986144403579415074899439452565128086031716466625346769891082320447904281396581787306569129390449138471843859561384994392902065690310030099183824220123604627657315091730669731414391637724621917879166507606952939043875235832113920615631773479791568519445813262548745289486271576067824428726423348688481122658067435659009004024960414721183386044098170025453845430266889166144775471142699668796198668701101838010448713471156145328368092554124956146231612560988359380955831837302254794722861758759930926559340707581650328027863696777224563945573869591571033865519690489049689605588462341566047273994844155852157975924125859703815491712271009203626116735925382992353546528662149617521745350909186362590505973521068506402544474194506375226104033890668413743983784725114813632366343868377030979257307960640964369505948838188358968591595709193117201036822381202162567743565221021014794282846608196055519966671060672724372741159506010742758360516450800055209884609753988472636620233000016035049837390349119403324238679451539906871034459560645832522426110393918267698409325126287448596840519012089328197674683050135205221575864146616622405657573228249621948572332280683016218663019402287641428872260755100750977820761164535454419529252317448549613162449708896076658766017764670868909815379662406735351677566066969755502489088325273240047504003139315206223582459241740412789168714995403256028363414608398713803145906241206187950126939349822534250655992207324446305652535809210998725960189102837971594605099973224901868164153820188557229872212972275542405279334665871016717585110387540706998377190298263976795135566761056112606885068902421035616878285334553885488530190363510859492215157720166622027718577734243155956566487690018124272428374380441096408558490564574613521095024138864216837832406553462502260454576235466893331496440507853286237835171669219110829715535500246052658212077635551008872926489614752717784358293161728803533294777057694251980266611718465049776372485604942008761112728065211154212909823952661690753816695523294325434066614368256285034736249945576456722783760800860359810389572067037948041819441519523419720328088455258335571009470525205159796967310637542935799502641123394455164145251903930460523717060266835710106615327547585628650380165306294355021277096786259109935654977044019584352910762069533789326977936435476838468827649031057016051000868060122854029648091314097636740386301296321283332252160810885025837516270688498200503911508358728144942311137062021565914958858327490385495129210800341891756258365957722947261336689464949524400399764608874290341183859711030479846268623339709137665962620600309172430232776886325814120809300530269117672286219381596951356571024194248083115151090815210249961180722811442848429021755387919132458079547955917295294893970665946777964772298119597439266967823819465478514542530713304510169305215100835938528738859477467919238224499901213860484502452461871242425430512526969660881239591398757899660873891462636813836341776566397041803983267840878693105632002585953440169282744410123110850849436452072953069719543694495120035109086084018356060981786154661247552344889429745997325911234766503343190484827450067139224347949460892003527556671445277732754602586552970584572042142523666401590161954676259949901360644615953981147908598578409233021347929850256027300918366283587329255591262296126872066021671292542986491305164214981069267151911151446190970579727478297315449584549564974752439295714987653441880579744649968210100098299436486543571463476510685110735729223764555279237361939183363683615182336516724279358032473218692644495159330664930770196586140662281011978606524312406632536194321804790657676357017941318096284818262374850343409172248423823687560257237119095092566483052197035897190020009955838530348459439263874044981446550108246596187037062901400502663202462850071475599806295784713700010952622726730445008322435063172547896996404021684467818451034482518085999327230747923623990668346628596219851840780235954595151400383343896542202892631989383048981874172624017082865509230764249808020037753786735617013693906839590280824245311865282771010545277162987647318834264615053900926228618497715107127486753067422340826981304465819506498248025556673079379436732469078525247935164804503515480535012969259210382322955856267401448013439130182552081526778997916495990726541644342579298945529081488690589967536558547629095454163339690272914097607217014569266629850887051181620379703640952973248725910203764724020488694945833374246227755440780636302151816124525786074162451981338945016488024783918064027158533589339323031043718146240752462912619450987860761938442320061646485758920057304881745530403862199407190819061730195527180486460611208506060959553823829203317989084739749630339118672852346546086190086415312422685169832669614783919103320369496727831584713853775379225702356872644962938519185088959668402213349165322061329304783227053415581455761689730791503846466588058381267608640091166408365893222351873578383461927549303011010952589578854531174701888806769815292559459962636504889613199145913879836093341891894229487757743453361233179450631771271449867516474554160767718241546630128838551064632131192676198187379978264989238375197683283124372277064350493257473819106021354558626946845345623885382638926777157816484995864803588772664508490372427009530338069570610831044090214185762437675412827313961121789465586564094854875645812494218904699947633191640861314319480775315601923398299962781510396449550448673361271456344585427433135645302004291930869802898295668153504397224914713537383402197164915332895577541542802574349217657026850446859374558821805135089714791577054624420408493445447200628400213275791397404573030591109222546327641996834926765063298303064817276931673431740113247917724638853433658548637906739041287517253371952306977123711872512288584023118361920070243718781709080544539110616259808695014325387384675258563980418869588940229653932358146555238289504864545176776305848787761008501884607037793783529265499006084884521489733686390642370571137178446502953839293172023085713622887832035816665640757803104633013550735694597238658549185497304690334095604634549872891983954853239485618416946852027844925765166064490902356912160342618688762740871530704078871211949486692500358610713122073450198745804764020665308730541661366157981675015735208654025465945232842172845377201352032897063199533913726681569362206301818270263088056544071938691317789536645403826314617450851575905203361128305261170631624541416388109401980297849057335833880794011566511301073492221514305958046652748046031854543297744826728492939965235034739232705258879065619369453939661936166324880769946135598548218459470424120104781296779690504240417436865427971227879734507200212598489813042808094610556141420873602185724975092025019289608565812395694575248430370510267248908942109255139270354694949411715159546524823301735170960363816181052815097833810264125446622187039111903365192342575752905633388620159536217808583615565587807266171539897760504830422359415494070315249022408492677084343669706850784659347087650529878225667121159869020639110744163928513992795544564921320026673552843046022455356939710575009853305873467189655016230967611484901337676537994852163441589484771741223816053200366500461053220456500262841666350231017188608547932405048068582458613788560333139275447741912766533100840190358503795539773535530250879768980611862987543524469330238622890102960854999944539756193009018057096739511810536943190504552405092784378334785311107257688063183562514617724163086847561411606317430035044723156447980590540173415616482023504366360418097601925391744559125147112670686899045583330717178916273177294908651530341685950959496709922898233432334413584066681297007494945927590040861627134858718457873006449500258156317584714035497247182919255538075691061475537961621862833817445609552386507738602026326808607323091086820268650883902696728859193671888232853527339025258101675234779753795612211867330391582638311547404854906060099050087468724914293363452634188219010944846594564076515089855859696885258171635798673759563091487625487374464562000283296301553648973746661405304240000662574555341234246699438214922328740687375400394680168489016364043935009761423222069554138577366923768719444878508642637274405922413933454821842711259672733775372897959942537742881747126195570703675929406338399448316215171043680453889994879435487982526968047573526867143854481695042110115462105570098041019543284827158135351283968226607832346005317898893215750170116616827646154836969698658996396076084835032360270239496936576592568199006503726508888125761844850554830070390706560395610599771101171659872691701176675176162984297693125588093810622102132890417251991708187120028057320750873054835081156950056108031980237251832364833610472227621808796938948015549662812462311478500061355527263988472268958264793364133714360541563472198502782742457587108654257719985803937555552064693320222996477801648008864215842042418896359299325404250992590478026336263350860640874948730802867961091260377835687020177434896036660132976584691053006095504339299658648945713068506599549041825761067588732887068234578778842334838462530899527126727631439070442375922972112569068300851618077822757775823380557248051637719881669896482899015948163294936047248624533356240623408159495561754801875299710207473542074486965262651962698888164391050415465654430560087399649153631476367002880504257796718878671556064496732049282952161131546192118118816386869018592079842960336688411721139283754498562435835844961096452501055293161499111724287271433609406346009898115865367852144463047799245100277451170319672922875743040907573602385918257137198805295684874858907818488917633372084865347854804425862393266374395987533908022117530862792496059029552877909890829996553668720788993299336845322599322292076443292100622426483192915626375300407177106679090872958704409291425792159157017917066660359051121499913920018168651398701253362009836049394871399728398444167773796436503018435264166653327411061501567487654996827126491954870742678239429436755736824329396949087082915616307899562323177893110857958456041487425381928447732724618974017534838532495281430282997936610374487589984962251927952112566896512339765292409520734814877945888754931992800980923178405004965285477945087060244761032442673393270113298749664665881843246119836154810641741107407078622853103310187273673029734293066288782899494543287774009946857375211656451808661293407341000541634215764791301676936574983896655989444219153135838694176577258915549004803450536217692328110985689951934301144221582829956113190905474781690808814983018767536825722886935209421165323710460926498465640344286869993415327776016476887107377266630296614390503729066807460022632499916683817799337352082811584552594988438399769429135477486838771780265881320426825095194859757454298948247071267270693197247920446711984726489723505281693231336226661842716908234468736679498014424229693066185640949590445340361159810876734490920678252162792751697629755184078553556055420876199149177360824029472345865323720095201390929696922816140374440833464406839817421172784571532572497061914120920194826960722004384609490243983601754134584916111185019337280618384902218506563133341625824303288880674797255134002053075470487741958609723650946821772406736063665584716198239882915223824067942938552460827727697227095609849000327589741389805633329047809714126751701389902159147818558012700554740388758578120474886182831702978037154800726407037430222660482884888053855920369474263913275767336089173668606278417281001976998651981324824388623003559552213740273820545722756871778005368272739152208494388094697912546580442349315672957936935174916273102508362223716403110743762442756482409191309762805799487589934273071910649689042761083550554048100270211109560119304928728476888413289198897403521154826951779389725606038670682648350700787616612304995238568992532703166914250262783904602928279698142940115928269213907214235465733337254934811932540700048498200246590604183702508082630598541437362012432622240118205908878621387088730466533162849076977377143284987799836882287027867534860382781236909654533125086698433026752558961937938388558113938241430519097620456543993804297603786923461216424757679591097014519578943942552420154900030487614793839668474068363270671863296662730600258486257230792190252511434882451958004753524402076843220551955571294613918604139047307365526581401459418222325625458167033604017734433121078425553142397972478239727709834633059811999742074900232449896983697939109418573997088814010570280660730496605729970386769582097491214792356630448866293272146907222243225480173192643843655598243230795597068031117821975581379807671892789307172345568372786260806761470907249703952566901790906600217696437765993762060694106959373323492143975383596541419993201055667098398602123039797440939059638252338133220978790409879711590825129294702287078369614499470922557583657782399632436412394750167082745337130959744333430211524717700195495176055663250702205717322407217509976020269984957311246011519118589662967680151243340233076047718708692378987349917174623231883960014196828274019177453303366813705676687255229305933381473136351682120750647971127089139857818434026682425383440800153562613762174112770383337740356215478432897762773058312350022393894802878493649412843639878179066141151233535933230197240472569986244162593908619834827786199458686927636120001255844367897655505595486439002152867648236785533531360218840091086295967538344037575393779334563287206191687318089882293107581770067917868558008325345204869736158300646175581163095982085650925686907459293921541004507819316768294381567297611294181267721200907704059602169546342879923368245271422682140458854233441783686517085934765753229751292967821698048561943873386338560592901102908159588847275905869136144866995340191153147709843745310169138694274310767545086200014871882125698149260177113416577423548696754524125116048737337751052382981509381779016950738171317919415752912325535889939736224441531956256795719383779506100688964654840157317865548984097069580107898423792645044332776372177645232712030809445506166786688567272810877365781875552190014338356930909311072510458576547068933433793014337324101064388669065330512204046284021718856181759159623088663322214303206822634791021972625778767818373430611864376733260960215717394701971786797809956642392960800259441520687506267537858868156623017113301860822688404665332987712877674129289191110203428860697834971328551137331875205795919482966002669558993673793428509283096977055079058427734086846584229317473222244559401401360495815617101807941939141688901316098652457290342122317925312978864645011208524456258875696140647453121237159953961328546794111038346885816267664963925563211802339034419834042586347262089404285480368984447894515613744053637392662851867736813158252184378472373854555617996093665219895904413145934022722006322587404738997583797721673007363535441883542396398199860667314941446229381901566794087118358983430365556147412932574468167260999393242378622469053388505514708255992964361302967144277477915343294124187264466437337152458415738847915317507751388066991045946279392084813498971558267037103420417939253664756457530762416562588787455205921351495565645581628584291244114633314600578209692148153430732281245455631945149722969901769387522072032029253296412459574420504203141350976177356726375770998510680811984764011182258125709781953066893955128462324255089991089024319197361099807903548057821069735318527482833886381819774482218252219194142110134026993289649766184722227855232599283875313857466506691594317494603944337882446539566757347546884346595096869522484907437102030591592603687346241077505304799735171017418890595067858017048441128609674686078402843851640701705178297058245196335330993527602144429431442133913350041461789613432761211066317010761565526950541909046522137797381551062261869085855074618739706333714655064355791052147776970239391074332481623206388882972861412453535576169015277785089279288185089956103826791635325433626772620496441925087805486251338616197636394517191083885818416680172257519865991044369919188925268979583818089093076528858828284987800727373156585008630227368564189524536368134284159591322485231215366133269651736264573593028332850122388709005214454228233271140009497350617919771971921861339103236085295775217198750970750111774291358382866365642191602480092015350059478433267239024629242463617049631988165101076759702843874970049716362658016945094451527662752273072377395462391640389329284717271795629590881455195851459486134126954842847541774473887107322145852349689595839900173304862175417736861023449409798052863876533528120742096596289283610711843366194996359092940471445990047033430710690127413667425151470936696358295345241414913420667589059630036729186277958393534151456451596666489563717615691809507914174894963617906013329235924631020066103824286077400401470292299678776380292058105273881846259375129726256140908266663200106207342494583013177234489547538881836895128366464943903077876959664423546342372590176272423857638675159218630107137570298258415579434221648072346086107018023578099145155797921258224226447671654657604093108259998088430416921026849923250957234787301100194166227057366388747440711295773008607801947748137229159030988217446514017630719553282720435947279659860303728549958711017155802980247658766509961002536118778652570866258743632974968659766474824040707562143772701501564689503615767136477028328258742627018254040256080797300606520149646891149784650453339176873458311341120929636014408156977913140446900905413250176819691760227751401606635103477160920834569370908871505482828323303264540414915435641435404917796963944384263528179624833184046087009894734811128368066565967069434149590417196064517943978108960839015018720412268093016911354664568672095383370668687884280505585185271106268088276081931563391956347796596854800155709996085404919166707992876003945728270932706179502402664256928720540258080246964839100934311773768658779380807398577871227937736097973879355380632975111782179065895252321106541916879259382287821197386324122393356425014847598325717130406863193900975007689683799757531115791944792143417254495754275181629637115041367309791835616374592475183153637274527625556877286767593092972508856182732474040530741853672003176678820254431268219801315320028205516123462078147474163632868640673384531691196802876424374097294612238082539119206263126765264188330160201418081792765870767407772320312761494249874614520385440570294524811139975350659194124499816510018493338106088463858105482170721009197268231605616944052464908721639254364252757657402216426673662190349248801626715441022394415052571572544558331147255819558156812880518784591227081898715999503625584241116287884384559091456107661997835944687462753312883100645022377772803137896793806874783434747610319950623915764888174614550765538764813429366509213076575372891527909542816487762912437405582506967126468758425198581909782954209257940848071173780042275425586464926179115460024958394263341564706431657474687950868740625245343450046094831979564205921507142110622481639641741475132867857354893403330301982051988047323273329300496509301706414739992046427436413952917667198285363976283954662043445166350902188383030838259776905333042021648537562017398241511754488659584039769455471063061555711546773026625784381246299260606952795284394116659115334660792641052164606308916900075041315384618633146661839759743143756613079231926514484055877591882886997408176147913725793963815805988408675740516554307573943060828480446065168160083210544995149014974151822817860785195791734050958743374380025684534845808404352003604983323442436943811235886915471099311666502391277215329845516510637247503820598359583834874965059264568999582721255613454490114426873077170277863493783904882175891751499389164510450488173188017792958658015099634315639580458558467698944184927962565809117175196751895718932178994409290300285694794144788608496601800689768912547908736647029226139982136520411950260230895562773000996525543104746441748555758236227948637940202795474119761783154603351801335647075237168392867015607073077155261426718094364574440988982117464066820943442077134027514154913910278073022243066204470691477591382577539696163928721519351724894154998930332197912416411774522396797915980440201147247347111579785918066227130763598199174755282829552089249436891668994834694679179290230260076543453787619634121141259244508694150017302177404098208908208402721479385838569671247215563237102503680971748586067319948961929484904018003339190403483328983186299831544975303310386835294596126175720591935517793430987020426849215987848846746965055473368918111554045359251629153696523829023383070588256675880688865746064340560409316822877906821387252031281625373889452846316139254845800260212822544813292160294753985515081744426372628403381894584143036613383894041693245908231652225608650717173862996438264640468090613574899292727650966885486319998947689968635386030921417287070613908145457948810832942867747831735033221890541097851866267915873215147259837102617542187858319041787495715650927026517037044574445273258516164254979070940354543772844398190010324783227147918713796014653348096590709263998569324844006220099415531663830640400767560187401657939871004497640143221613642240498207314332501365952465493561452035827862115833101679408917376992649776141157904839160544961398557543433788594697601279411104677666556484885120873043430848328173782950216981789890750013372662173925545611467830566175193971045089385766659322609312966109551096718730495342249292602004273013419707846954805743174898099620230148494870005166694014343723059894571046333499423063867058068010130909544279414544344737713079059484041190124500899578414337230692407412327110761650090769726143957911651827473449703592825234533952804720231268814985728967897073048328333873561129287503138715973304201281652026231219769832873861674101395103557895161667825155612481086279207991767174414696154528978391292747541449436901841479210922891732114300871086007000692890685574791801497969369398111792423354449709161915515933404723778802834466467630192711191695354433092223885011357583738367866015369884217007262373323438294833035048496030200862671122265480697024410653147911380515130676072720810155211877924847570307778905558700230233695425541852974914087013231175108815269093424324359779964755589622305029594779602177099776427589605801455019253239774713169242002489332818434978451928619186478914011135427716992975545254220835491946579783968706239148377628935715523329268402604699629029581440018941047357903647886883664209907086910299115780310416853963296976618543283758595181236041105713575657144267696115050749055844143543098303226382603340211848451551767440788284927911374183995113724801612898617210805771591899332732518134786398019167258300544902155219386290681424714324981653431807810542151199227885184072403922755111113127603839151657582401758180957462451568493745456605807966969208610089477084332205138111470741842597225437815975614075143446481791973716703838314214261377251563552554275038801123402284054935527221873582100525533663510562101516522081582393143316221599993195248291654232377262539542656450643680128051801346334833539515022189932741678161975699798392106601666961946837933935490646157539010865206027419011496716076472551277302747245921396830004013778532792903596612479812843961522248484159734164689289971067701676239282141702036875866703146768329087026536865562995390958771008662899167224348111623435517133636982122067875138419291948199760427796815446771286266646146638152160097017123722839017517052361152490349429692947549000790957248734152893241045047216681755507915252817166752161679243836063420758098539837546078716333547163424072654586307185246347698947361728734519314602824442774650240989387644522355732304547795930746843415560186018142386780776976884066760002509179145442762280239830430921471634696009137031938148828151072034788551245858446342322830348412302601730630322081462664597653626524208168669664390722191922661122479698179382705621680512059928871120459458841274166805721175943660778255265368139230171129936366109063513036439631053138558451317997632351911743682687624481615745559788249405017191227433794573208653323792502701008266066335813558174128912372991806226173682316495614941045249099080833468734978550501739297889856971957297767481661760281925059665190081381326056191303002285543662388643804947691087869139368477442128995163717113908082201321122897914890945287138481104543187894931633739860114623657884869828913831129869244847884513210334751406400287396833772410628307549600916544980507369021120123658322413834758258816725180394385287411844114739414293242089040387247917535769475533233719776791454343026815303829280960257973975452237435898949876896182531484330038178201095004671906907831649762931347572612294023846549434066908097325257259975214503636050678977415489812306067984953537691643577548915655687631176495282160413717582173488893692839361878464066900059936342118272174961252653567506887651631259653798277431525403463310033645776421437120450704770702543479630933102404408409184270185052666992992284985164079382177841238470488599212865307700952333004161893694269257799991478726174049397228967295970950723799811275415891039773151020229517777268481922972976014221196496117318390036162430914437057355485220892201077217014152202524175611104379678809212794964432214987498245924601742232694044058623805296919715848501289785892212402627060444616651343932914710821233950370691085810529833485275430397598739788207064097120722754294814564750091941183281036823945523778578034771386544868877233396993817316914577619236033263853225208100248430058788518485941322757293532048346778828969012868105207161215289857031968465797504066838017993484902100924488161913633795265538972711610518560391102180630112126262228118574368321206022663130885612027304201869922909653736122712151665170013123155584769820084528353085883394712444175422484041772923310511778677155982317747903768797282785715797284247528552960464245469391334314592884896742451278573288481569839724632894094765671816075476410448637203186846721551991308333531188010161178713434869638638926822024826265072472772794727798914405467032608894491757104380125532113738311761888343234163925224467187397376432849904444623341636554853886757997411973287230381673730374652052421541634008191936242340332153640168464803182005985363049214143448212299276451509006476029938600479074507438286997361986590323883113574369977329698662054287319369198464193707236573751440248262482307150378389385496860176892890010354956884638439146504025237829227988763146838102856650763206453320924819413366554285752280041393197668781549591148097441583544148444075207911065938804985454111155753383556610599552190958087408244545954969797506209477659271965553727805719774839717504040095331818305153604976143270378212180515073007200778853348428999860914027999689759074351572257829902301164145386407438707525454356637235881800078863324605995629413622103039299734471724266856032085560941348306947219645743012041618471380151434161211300253721772487052443732614618813337582132823711693594048965957311443155170474044467317820755157989913772401189444877288761597928694347439932557092502477613024908675520907504807019888228917273200967970759444345887843404604698587266837725032458299468305315245540512918826519539333934161256216933377168926029195781546244343199258769735460110633466339700131950280931656055611439242861547209016453260208499860746862797917508549200657880487244762795443764321243112183424241993094924947332851012099444495216293903803703083840658804482182271056682484721407064383441811961083008226581719919834886591554991548238550970460587499979414890177638410242628461834195419132421522561531689254515394037880823031601113044016695617055000950188297208834777973814408955734409332111709556398794980065459141532310391785180829758865898041936811378333607965174925217702694573840541089691837366070601131063410110055417223361297139866571903572988346256484047183182356584812597173754090967373832247885564358282080490820748481250542752058544267329871136202031584307543867049770543996482706471381837355055866082185771999135237391488495782188887366392561557438083209250339006924084901181110911905487241420690049645083256855605500001476135807232147475458501213906166766631263675575734303379574142763034012925721634508086285660965831829831753306532053266646594037690684231159969978936085073360388413189805993696037467172953491543961730002545163656123028999380006072549780381780356278232793899916095941551747094999357940301540037978227256829411660493301272352296467278982856389793379379146684131780072556349886144608147952847442728834397294657154818277496107753046320827247192304250538474528150158762145986232568270172092108725866398453687410420536279066842096754631866743938685310910936313113391120646046930448645897960912766457034446731571010859634791825179787778506077187802644748998946331456347352829270420516137381867499445426355747489524033679773840638642225105144859356975848357358132009103689901849140996830740399135682716979312861857143935952133299808087156264314402979072314463554310427066604852373137725388117727517593816331415011138927267354684897893349802081722147879054698342137078030675983079909053764492834641689063079127301597342061745041360706233798921137291503245108802174830929674356241241440307048138099893356164782464310762781058167201363967684915032947821264358759904105988191063089484074232082610940131992304132814116373292060755154930191646783799425102051724102066921898821309772698736740767861615196279665284388023540055807448835559895630533550039246567601949895856203079849660849643567469654379613131812061212992733507683423372364706840559143724517763581966524099467580051020873592452853018654366851974166599951923125535451759189559598979846084504066801049183075913510090910517750206052465721122396955022444148611841108085654320286552764780093841396912171445594065757732958458660436199499515335874601753152489884087777645537600355277509336666701623805635379318514211928466084052575289473666577938130701496787713884209779873080300026232496985535080164116615482967296576367602020091981248933801542689569888195014360515344765789106208147722829643777717172128675528520926283475147758637989297667066921109996669624819317209901491240376832255767969935137221542659303948063145914186445778402190874151473800391789558469144498465238451413602399329993642179221757646173693871029670966963413286886839750528035415103106637511501383366271974097263755985993743136654084892610647926800386010785258793030833352552875544661382936732935835302847522819451515319704519603771236653477849986751321228933181168523820898945177946387174016382525634304777324605484253892044834798393897741885648840137250844325362381897736134480648991043639604092551647696968589497488320875732076259987385429436244670428000395392385179974303523348105713748758947850450953092154061881932140537275425049555999933953664538859331212841967791781267142786496764354185301624923462449039460164740758868120738199678521477275766196412810043940611668741662445629952698702377749189628818281988041903994496522322151165082948364402507977314372949417278026386102273513240141867629471697437331467024487295085857824403084443292293554971719127183626479155888132525254937872189263217529824763437724733280346704604925610230473985515978763467082071489425843298465820180761592985185509273017255544436142377728820768292875956444267136428195158625473428683437814809612907211677581565559888435725683307030522128119667637866675553544594441632916524128493886384442868744900510570912063947382054663922231137478597411304086776944784279867862285279924328879289970481109574410765918582715862314944075179252387272577491530724169337738789571994154265237921213132537197216224969974453239989278803557976601457111938637289910401341218658625689605686198144562563238950038533047560125797513744222152320703018554446090153408361246065198237516624786062955266805411188551958830113321121576030757414439093845042730215807176813654890233442066477587833445167426820980548953986821446790307825549315800821219907189147675670305918440797330071292643789143333876801801235721218736937691474334832141679284834660187460167793972560362313307338365845078321479987695348055471007441962118245972508563114858597159995463492070484422788568388374518012949786708182852667915864510013472436364156547136864847883147343975229546255324032770503749691475313842808178197339237081084518696455075091079653810905004201296689774222353040840080244909899029346171427195538378653996869149438127254890925501909432663660063610109299349637473696227855912178485460148846007901898947525259890989974539060864141038164558676676533770514087010045689143804984623553496248921004002627598037856505067881093381060659910296398928472698262596252429570437906872583186998109137452272800690493032573390634662426007195601368546649771630638668139084129521299079498650159911776977206109414967735794562283585591233670047750360421343289595928482795874678252930679589391593176610494263009611682723458005559121403117056220980472766906409306969706998420247929152511028270606949155785097276805097423404541107637440632538986663872363769237884527702666392611829168902222222402589149672963250358309935683404463751690290915938987087400518434128338873738676745896475261215287124679040056826402677887969842799344047601708355297243558385519116082854745696868198078924374888579221085425440009567481913689168537945566977334692963661508930748620433479844372400191719461123736143055180409817795556153511191910320322634366133171478142437266388316928191310518498191680287825649251026360907180279729449891746184746633663778661002012080983889959322483449128375674226154241385153430949173035049637488369782173584353659260229492331090237789829576020622088138989370353932141890348176162953646710350598904834121947062904574226826828277985686946072823365473994299469233265492033225384520916860988151263778087856958977482024787304431927127938388377550164916725604973147345505270094824602909761898023328156545321548438322117346111135592553806132633442445243578761999698749231619233448294487036088655038341181906372619982531567298044051050331643824920456744927122464024601705534209024376286645484596816027450182965661188123796783054836357088350198903060914186096031662900923413078192687016288345736193309655064979616745845946292070735792295327109053660573340714475922522979212574048247748714751034903752147838148759750303190031202917140683335310888401097842601568592840246135592587012091165323229645465922343797442767115847383194516387317173158975280660156464855670468371898403454507826272644714728033043163912241226570155813520905563886042017633322733268840849718253965806764541807757419084612921141238806910615548974517082838724699827572519226385492459079772284326958245147657904037842992411882196305839546093059236072135712748773911213916493796806807453809881875807793729135138999334185816465011565846115275350136397113791273634507551382807824907939863735689883987473884251798478043105066442257498542953062827525530260149234869494427874135159532909090310853835122075925164401186497495309981037690455291610477628362115702808915150376857608873206318794828818671771944433548603256558923756018471635291836900137128194479996405225588566384790151894735668771169940839336130350462530055457204385225823986204486555509566332867340966684708004325164650390609388561666224066793742816160411940725006630205157736906938158341426682962019262785253245237104734364094620526699038606915970281865979646227242524589848057177058299065271638639292399827509863449990239416724721514352889603005840296786374855309997169112294347198602507732527716335444124385705948426804600698678401377376692905722606615275854279307421105343004788284957032978370739149016073391189354785288845680997517212202938373489002410483287315240764063982563608432574982103639972771865479291066949960638143071975718624791156015550296580381471912156492267836497291251510432414707758120617896550983780243460190808580353156881661838913425847775659788289928258287897865902750735403494016891726096821659505788967723348014828150468236427252501609372952865524210505603227066766129765049080727855491190682463019469591232003620151328248002887042498183265601737515354516399092924450175288524022517792106381810584263836520860079274492926587459050613871060568048487796374323900516815166611496459189799836330370253383149471269659308821227498897187868316256078263155007460470024348043828700834796334795982599817573764109885162595258370017259291417802356668824531975234723975249121337673170091696918123380558196250456608825955734482731958688967537768301316034930422285994994520709290054094642226753914725212937747082525102393142602494160487747698447917004233211152937903958527619450739555726287266983075957173020743834837148508911282950291722418013713342388105452002254063341149644393143468068809513688214352198627966902031051453053332746320612220802686964730513231081387810748140898461755558515226429763710582218367496208644224104282741267051538196114458824827472232889336024430901462848765408415935486113608361608397192482453670984017669926403027833726271957090175450216698498271791567449197424342959218657057083307299901071398259502597184936962378786822535364883138917526519763166059804433446129755971725381682212946117353650467219500185161765466494133612695159069267059056360315425878240652617324194834422271711550922036174894349773015523319457759311117149141385764836641176827159685688474552183635636272588437824138810775540320758670581203410482374191654981541629416724822930826078140518615210542569217121466676153523662621846126485510868497357811880796863243481495215372475537102988757071239269698961830517558271380920745255954203279512017970877495078351555909025884420341293955396845057316813481075113264392218502653522001474363164987146271357599145524006265518377026757653353831958901309672045177789469226451206303860713096562237707554382074759620222313683159018031294491721126003322304136724787414640967887598888275198361578799710321446373358138979871446034111275217683566422079171014606172020876503920497599726333181076778654938407626758948221163670666225376695225736935623532471803666069218984636541181318187995646648352760108086497090154054647285449883424841213707864686622375450330258729248094919953013915150763258443490998754917187997945413564711283453958251675515293546976805568951366836806623422128085747986126999668867405202538920991583024173055133783837304123506953554958078035489133144102765973256297596762102216511641294572949461850065321048109890885280363852953965263034059598873558462573360803724132222836571676440355092497396266827511441700510329873451388443583048514675973611419585386725767586714497524548029955703989789896693525034736303727988746232493822335609668217668019128728194009286791430771126674827661576718870123167450556533742788302737926826071625336170222733791137425368149581021885785910517566162808840983124207617911486010320568548490831860290892643796765548467277228507673371266483209975999907737693624008990097706907084446382446307491101713689611461573397376242007732474988062559701302306404062587690298623744016796137766838329339947332688225989310151544281782150249407656424218654649996365612183582628747947880696973884999826202074829958962338291125190039686482622276447789274892487478455144673074766493782586089495384087321821652695634811091209136942303681718949114292001200368910064717184572846164822238579091834841365333388947552148219951031577747496862570121298244994079660442077953950427706139882892914773643381352675434746859427502730946024963113772971497541789432201973725802335605588375499318027716759337380342069024479898148465146795323022288801647758113125889014176580039278832828916574878852222462178745091058074500721531992308057148399247861083848381342041604811323984906251071804064870597037793306495492150699942557536247365195658292288574077844653130017539262207984374053009872692055224077305385568951532558860067366350089055796326960320893049196443912227560037300121887524102734462383139829298837009676288311212412086178739494844557764616860983909410593387788757402253342395838741328795810250433145243756446585892683651898681283300277311413749666585383089901973774944199956032462897335227507090882329790149444495970780046388802760083575202745392021207984624312618015813546243413294906262571577834449152916965967612542406013065191656872283924971337178856305250991491299934250198455292896001398590428354075141394316327001786999685266942072536528693853901882790980312337395880530561891839792210261320459991393622045586601556102311831828751835069584364051543891385857129320037563533505916977467964010103296384122718520454484808118302980112838640523986567214894012391844252297712224817812115440482366258187477698480797311727132201664217298538906045857548558236743994207302313539205409508966637031066905749029217572377033713708620220844249328360134001392361910144280355582697666450015443074331525652050607306053108714685497826480305071330351404914714900772524307565560948920814905283491282792882186299209311049828722344378517911423209581754687142864198299787263400054057651985412362542370702202875903146930671583234741358193082425674183144214464861978132555830360881734593381198545395951709112356245754867632583004048146820466014501309631606087653832365838086579297278195083623566059550876078260731671894821527973267078914853536113901941746852368775669788517681211862138048321623928031523885145255768184554253113117799468813052672828951089785837148778992967189734278648408206915413241052371831186321332788198750438255017737656355874284988741648586676120679772734191650527001947217867905284393134868881802441586199869333058844494005193287744661242069418308783421507282736119829408362407088389277342392174014857499447366138573222277627326244546404181336057524312483293140427087038736770066423937090631592827224737774028753598218340790558005985202825595157170951126500487038806529767647190717990160796213083304816519319118235518308435839002211182879741073969900421124125323985173769036086840807176704080335491410525926324167110435210260090599127810552266840264187330459770451760566516677706541331043245014850907782283040040090846806398274762799048976953290343150515681048375220337937740069493905006540560269428007109857450892042274831545685241450394958282101640182122055759235589388430101399519545002330322806315221698878765229236755358042180203709099438050610512064309385367891186919294381105995344630150449838344148118730609019231540603220360732879616602588962410965891051160255387120115684544462865614488770444707981302411449673012585528823049582351067892864292104464954570439166466285055366175806428163273257030976632318196194498470155459326201221046081968844799703700089562933239174711809183642194444657032569681400494990291421689802593799623735761927150289275439341047205451203552714992314307561973588446051876073126500028635113380545342084980555854124826125378606906717635613420415196716350353204521145173488558033738747920410868428067926106448365148389214874052302245936157840864602334997344099561041415756709096738681664744886776462430830797232890668109672023654144430680935333659689445752743458992722800573093481378894639914740081438838207292434286606376201040992513478666463059998032452843115105152890961749496266474613273104791621678384352244134443865283974536285598072360322638079957071317456482002868388220317940686769006693809491519632271030357022410593955303826951737903115498392636639709682936640368414508027457064960258121552651359118340136924061604954709688375871167377812706289826825527980615230074016269685116019745747921573920993121660940779352271769952197322824541812414973440588219776897443856180601362143400218831446851661963597002198458003381961717452172596226951342940887156724366681415913193437055955478539503177533389773587008280116916847361681223989661166495184437089554933662255741069464139627073417987902058379296190857938949000456787636280285797717011065599046418511727756930513438800970729939102935019891635913697429745518217036781615819781669554633987050569537931211522264626679532095692488559331097314896367834026947616727041100337405020725855991245502686120877239077207174441478790076731334218863033259628514633653496912088582808077234920003974778258035291815412287527984542891128648914061038804970157708482231486107261186274969523305430457822757649970596415430712064849216113693426924310262146267811111568995752918639603497764100774224605292244409981185767914658545815658650685795637833122464613498701831651654366507603166116106522464592123636568121075737942619429789772332863693030613670804040486003094252739163147662710892901309276121027423556609936357020698086036494287773319359239178213319517359996887771131037557298649501864400876755315311561634994693769449947419126805577083546559519627141802468709849286074861982434968583162606309454747639750358939169347944246803402090514317587194889210756097919035409596292881791363173442359828060254785773186533233214725246922510128831582714530080308358538082926616606024976254613163822093038554077269197839139085641114043616151276719984126641472208687463553083197103698099393266864295072300269592243784166295076442373987229437423036878407335168447848125546072136676591162802116844035417206984664811689766187211759370427719099094929733796485756231828021587349636629273897016820378118543073236583287415904492016911874612671798093432241358964150630089789011373907205642299647159882905123821807076482882322485022929242823417886330479437208207317544031576767704289684709306292725581865970341465914430934067959284485458809258689796859345558258799500181758106551283441346635769496228225279748283600483214856102423196724819466500592483953540511127207577508898610878647594201235850251659423314217838820953845041163548991866059778138236729174334054880980813713280738609665119832944934108515390011833832196531770346278236650013540582119939359123278280523172738904838163582303140479985290656390647502168474944424607591529092023757705899120228113170461179414597342448355406673707111373624620226993942395232081609499191559772629727709661608695272371809216238656294383900112556252156829122880665579383861971186582963596071788150151187142884091693528853857540530833916260094142423131002998392810263603865709635720581671583663495146677177740183453308562650688223669830810044670710737275245161139049165445416393569023964526909103735225335365319776135043511999041006525284328338557501604420991792962659868763013263891110127348635899390845168306800247630884973262494407193696253945022429860728687327384701528593811524187081051527100944816847325008103389891466799675805760063460394919516498527257547282376134681817486220177634957442892779281201393385416923728361041844525196029249692144743606881871948773651911613796683599032422663688373264023291207748892523732317311396301419711558979457964808043836692888959454033039143826367754899088828486184883199017537184022703441055221696860103812036029966602861097132356464927364500747933249282296374862266128950030289022523365276123254135723965856894003743785605963370647490928432062506328897420177167786178205457554001421186044877802403632003010001934179960291534175673423853792980094814323068112997075295347527241143397074614002360703969270351925120634294812414817290046834720824495722246678976111451208995355579433887935647077455412996845394863361387511434969450267041027726682735939094793554800991690059756657380639991759337420897165174880143126897915686883249299927646191326978473627276028245080619542124637725471753904743681763532069986139010208722233463787215629762018865259228647523088248907013160688209341791071169630235323093036809857617036358469296661222290816031490628560661481583835943632843392537789997045395216282229637725772033808181984738342320515672863032099766784774391614175951387692716106344547655120723553551709056483530529331665243947348935423035096873719570260444601326952107893854385270404908054739195510167953070335226947452653477873488305389015068525293915471516980173611338444641755716629730358007266232619272349257140600778042305858203905122650735597572081236225320623369743004603656490546144775255749355079467463171975441575030693086253221147650075396706863461117217014756206286403416080131939758829904721257710534962775889626200382614566046485220636866533276547418407983262174590092104120677625849636670355445614856217194245276471427322626808640295117751835034368475606284664332533904772303042212951519431082199430578870005041000653677671129650953770733649000167196675697680416996654245293473868972879773392561371854886933463406477701452873923029111131655426830809026185009718160038770020807645547107449456853181670476979158846057281855837634321963311519709699020658131800778802770940645877170963514234739971525462967930105572399180685744966522539675047814154182938167995744049001721693852204049803764428033489461817915075661731413691111099034060172583962812595781604795050721582380228556977041779859263356237532957567087238933899384215213821914683331282822511248667940872546006538941779815549562988961863857973069890611816529242210332735625489982593705859263184164288055606976467089465305193918422348045470371959680030268791803845648577166323626902444140491751359852266574969258954943832574963634020516903909690089407419498493465305738884339603609236869037772093074003451106704386621521235138738542738318715293516382273875356900058769611627951250151843147020237980186750197161682298862756876771897203750876670483055422793769621329527948560944607998195871550886226930646382149166189722758257686805763066994280381472620365128197654946196638515288103065857822949617700450206545776398545759140014121614587222701430528481211343967570254875095979343986210968251105883439485381698707097552443320735630146498449684025887212705003341609066146336218527178266713112131736036188027658187143903847092616393326395074759075370112678219381148156118484510216691149780129020261400935866476685202347389455196372848005465211372359275262694546487803383996272570393026238435045877010048509259083366289193166750040840159630056240324769830611476856525519160926777573016830880394150796594940486842467777983321896644435974445078275921389099330348219270142639601055792661210746611694060144099854974139818079176227168907136075535194072442553921222168864470959726209835554139642167594354728921955420626613581385646433801278957643917699523340032455169558597244420170665589069060350713104431532318216655929819222644887224585790404985654925952501587936768890735470825084508482652825853746662322247203714543380381253273163079129724168017397929005360428596034903199104267603484798081996546392088337410949833322346226186025859167414542190927866040570993112879823644317975354936565997363489718562868339333605877249967046145605697235715830465106693343825905611942924894878374506762606854948774662121749245535400323237278832055795416882399380157897539593256408833157511066467354009542130130958395072743430147740050658220468494221826296691451308714212993796080139852284750381379634494785311845863049702275885619258854545848813829800888942983848968996542626037048247642667311382128616753031071920593397038339514173658573220178512013524447790752178315915491935653890721016375271593074732885988756763581534889120498324931613227054483177222543774927314173702878924221063424480285395474141483711950750712775790564243565837525618617694151740993216491229043341696916225416405171810391924202678496847933708712942273460190723135671796057197965270284862463808736050011493237406321696246882129770238408101254148373219170507276269814977088477406090240886293380127910181066184591981364171127246660575329894622704766432970794334337741911293436173925481086369410799039438171577761955757753385384280800364373842915660139336851225888398593129309837841196493982536478087613321184370333047108990784294533081586225371068371756027119548511459270267188628610035675536596238544652053487652836106190737362196618500268486102358531421963171425746260378510074167848640797111923740580138500951517247936750952024468665514939149926667617262576264736842974668298149967533029659988326982686229294386808585366553230374039075145777482454531911437609128683343708502324676023384446420995850042553657166373181272115192724102747840798781252419531899819029206320416903546314700030096433636174343683344400393686039094012389983759693731713855114167179047376122365790031378493837245054580136997262197218449878386801524568441311345332096095402424777462811347856819810937825782563856979789335839864935590375780602675025235099183253845628432212223832605016649484604006536448561099747156931277430145635762146875961097467207360068256150943007223137348824380779478496991913883755005866755567514900067695184697783676299769278822545345168840469493308798689889159764445007413707538563944121228491422696088965069187527317147860161045168994179832273315282098070424084657761928509651102769283086476801311678132992734971386908944760838591806431097128926760548330029840990573457502840731119017989295904539127373888647639311425212125260267266509106473273753082715977932512302581171845630333081645120247558083461307261504897212169324337885090010928537651197088009862979541135343178316809262324136436219212209004331781165679887422647331236718299359828567886271450860310208880774360015927401563098666555075947156439606413082898844133107220246695604163773717231020023948180732360128762780597756106921247055344130382247752613094787025885978089168174767594380522180133539703103740441811606040308849256423978360188015305015193069106310064691851184560621631820618710854262321078600612891624407587165448838496455335198839406471155221546216340230870413387369892187888360131094615953201339593694939763960158834386149581188511176884394173288693850887616804760546124037461440411133587945645145894838171753297266555161061723783958932426503997863176630173171683914514956163522879342209683195408936281511910163584046129060577664642310673627467019959571832638722791615996057095276917693987602701981839550908868123845800234355299425559772802344212630329955933729094872319267355274553091902992152476157840434062897904463546702178708752314906091092077965707271960663736474460355264564379261422603276697157394887182257900902090132492848133338536953576133021377846169213768720357073185655703643481250100657369883359839242566413835158336926753986654642012075496853534757930244776326739407478735931852808089361139526982780375225657992648598851567097999267518122897027128972234465729718661197051315243291952607966890821264833944698775892515172783310490541122081842571915820790418977223719250927206079743044186626317755758277069120052459866528450088773915214998034985818308336185256216074160462434761738984942307045439752347333122052099636203353591190939758859880449537536458530842878446698792797215309450172019035699129688276038009713789385144392196210555232345267366174720938658826193752904886289093701349495004957373128004382270970646913326872218583666847714624183270934783599104633740564439586233046844845471751029228328500244352185632125809594978037720921365592533588187917121122343993275402786805668649732147138302308457937196114224887309551399198604522752317844087064141741727459176522294764700456094325109609661584728740958463984689141392723968967656952003958722432429951627233160115117198620678328273092990495442142728253326523499752099979226727713502450697363827775125595740773089182825048180011955901249934543646878216512484819418885859303140373705006937133725398858895479228246631434475528827780648694884000512527999522461989577040365933036604071252016391831971053764116079346620145814696785219669056920197037452625065424248671187418586946425734088738071222438459533332061481390207110650348556234691424063277744446654360659490556091868829903693998395195950696742645790764812875183222531016622377653724379950422831954762026359005738433615613428954950386050581511278926818705352397607660852997164277043498814975783266214375509938940760233185903555727898083896024562882362764050482689059217966261984679089756471375369432408838203814256563851093366595308624689647068447254362675709945867697111216905644744222882748812018389706516325593730093361536823492811403163841749707195537861111642353302521651333231708084667175017240957809505875938460310181739372428277014482728157716762515606116846034802128148493166722470750814320307213127506332402147624330586477424353425956604325269823683483233957412696279157566595528321403621743441062360421844656680663681126303905333102230359315866120693289956293498310804217037250632335970137276986887546793565785467221654803966686265653699360346058293438641657290443334016786806236148709642831074818211320735587173445436497255593685052242241192713505153911297024706336921872711412761281698745604211438784493801088914644013104656132489131274546245790139969516500619935431020481385782425114603974610793793596092801685216382245148652719283762455481639352524592102748535102225468631618881968030502951271679938747637123032307490090319648027059044724927433178116956987172849901594131753602210892846663262037434822985158428607411254140633677983229973269724821526561047995685987158021568408557876466561721176224370704156765146342446011799374039770338449717191536683970570028669980384700051572083677387585386246313886325579963920209500375293279988556865991017078973186963032051861881484689544424452358079611358076193584702232341205629908268694139260670713637378238081961842211079422087407551017857901902843675594459962323318881562141940736916982913429352885776060067874534382264459698498959211628595220424780709001364073248772879696441552405163071845042835080331433513120989184063734029810062019715188480450710191742900051640711010508395569058348380796605101944013921334704682844977027153967707481055754710134621031810176836339636288834547751395984131879055293706916934023874504411522613288393306540306939725589973890176649806547211299035986427047175324746446964491687563994220996593465417440234022359775844982815987440046010258036149475402127081294436571413042160644906444823447111951438326974747615400810161484580929057820914124280305405256686333541877330439723976560865525433841145429316850180552117007911072540041412702636219347438185995160513957386303961751870693572595643861542830535553528931307491077639181271173452726971680230837712352950692669864176122344840072617422908123909812598980480402202074745927809762019970687514700708207038759779422397982191556524882459598574169193478743019964761971912202927865329693021092887846805480078519132963252731588971637753056031564551519387930107275084102054851147742380535467620400014635338071394979992967849002202335065501564654097817800769307544845860509328343363318505401562479164687710536999934270775598126554021142312722923391256392433693210143095595897160808611430986698823913504005776613495510942493225309804618495854166936496184875576394234139047853076370096160927411565226177884475842447068254848037475429848259471935098900255766471102156399617659262520428078573731974218183778901615388053451521997160015386965777765302220978273787796453779135538725304048510830007210412225385947121430858521660551697451919091121058159866663445009359914187922416430443757445161847327989997632166103800072981538270492209186462958823988444573321307785890842341823356790630651119162821141312368831246970285302603021106507410137343420387541260218539526794011385820998685578454971081897416489199447800537966981305375619040144795974554578672183922979219503081378880344174615725254607363948657786064293811338526633502819442546713330520233775884380735805420823610524143178767566594672880429775309972132963660973858506003407043422600145885090706116826346695407686819924313967661119436527159800536060148855679769740873594526780761900412422613340566217593951188938691712121768052031061655829527301800313583811949501971237702383991493459364863377919995233746320172265221303687412927112433311299570159886977147972410734909588058230386593491739028177595193758381627369827753626108860208346027532417344251324112583139392885012622102462218484653560904294597349465550698097521088641275543016110541227516192981369892489730180394151381312915334757591698588594990385532275370730899627888572412932120545889510078330489352803387745424162961007761783091267657172877551652909416024291693792298655525414104246364827275189635468286288358948726537163162685856854601185934731748829746632853689381211271378565747538049193343790331093677865888978762195392042846858903252214491381515866387474233351520246180982564826333607357409041863420922222812611453465907737854451318611216533925910215840104839471862543176752472484189929686622415662650192520390696038660890425918493382377314089262857057297836902052409014013832188286786198048972812593329676774219250178000427523020902546878875954998719597451065763160135520541968370044281829078793624828744808493134858360728810966411155689283619857757035409347306506287186037496358007869939711020122234849120188587058074000497998508396719976421330717274733337063346734520776408597998825751059470356469373909619837696591674599995940178229285333157985011532014703130153483279338847007574575425887208514561345805235990850144887722176422961384874749704481915085857310972247697561100247455689490507005422972809581095092400468570756227389398167738215981718909068992738204956819105583814544792396534771768823039045637384544592614983596997608681427797263219084678648102434079913328107139072691133620092340973284449989401371206995959511220763719751054999222885150516188565119750574566929256608672658644509809400389600263248185448730658895211609256522433656025241316321159655412067730646891706313690877244450024360683692212687030726790270365989361914105451336776310576243496427060907437170760058997205934967582108161927459334227160079873811695984316751886866290255390102149442197339486569912048936612666246686981957989110675449703584803216649969248261416026952657113586014238950460704799303489012796108551720700472164891842302756311715845489605823526775842881633266064956702908095911586849944654371013101820507166005567631488141258471909899819727268112020299694659037034660421151867435224714282560919745274517683735475066510431008647719906267573588275663392990465689054553007541488202841707288720777206632930859075665645640612711071042497500518125928465414465785393612798332028429294463124315640383627670934862186111155068169044501269049747565435943507071551371123722602489438519363456020425120809834918677363299486510399062694897085752866824407207968219230622971713249798480004243067636386974617850771413094384899337850801209647988346660812377867829857100163925957791669734143080273547097208531873424354132842615038771561362833306064342566398787865697454523948056670399951600105031924354462429842773218078026835203571215289591001246815816409410813655418872340999515704914850276487847933695049400416097958560188938466864002695338030379873677129881262186299830783874836857946805157137315204454941366980527474968721815903423731457363239860431241330227381238134609462639395946319296098298027355397149167075924336118902498635444122019479138993592196020837676248632584081772775335807537894222579119305708833352949287285336807013681514478853404700389783783017454137715359092764231590972335362955792649990177203872871052769454013483815171979484652088432456086039747913683681441244130885227226169098396520096360387565818864182938623139525984056360016603066652972749397098290192422579379575838816665159275927282463717653322585325206898280310932466133611740865369586177231909412693500037660245674435640715397285886474063648216938010178010063841634757462320534444587544959797415439586159216473370460076462131816570657422530750675389424402369356210919715403765494050025635453790293931470160583280976510601891354747125041525149460907452372542011360714600488493471282501539450382429736403527040263371171557100986154531970106150304977220199584327150900105369518450515367517127803223382578684463544160881166372223325174451223594347403519489562992651477652007288128755308485159268466094144162549915768086883855806286114707657103560758080263496984587236813263828915957709752090526146389641600577381563938801855408376834288407346054620704457475860431705670678689535770347797792415582334438663904938543630177089209277872973863676046143791971464778712095011212611835037432819231733192142230311053356732620095136471293071150661594192088003366839952477751173385463014097508938935064316224952671600836401030961280678253964555800897104311244435477347010182935863915214860238691852627413306809069351634637732801910938480541742855893930916813809357451808312268031991940735024591963970928033541681763152902571188573655638753632958484350130199993830961431737471303197698768661748456143068643832481484811353111839061408913836466755594463361250143372356900848538645252555832980841546570300952412031051496381155088830992793588247627584925880765467803181459644053264516011746783564997357421775901606916307985258768211824882787528680626332059731764244812682862327390891265180338142502370263944545521564268826218616488821949823005588643728652467624017128526019609170366326506940678089187609120978790439969492090341081730883109169083277590635282558845404764638451317289973154746489607189456056923569377437075087097424114352454965730418127153021737515521256237312962913810108365788024924660775742249583714132299075927940043766143202187301502658828767550162549059097713432755606098967214640997764774239410568207366773813284822525623890135253057011199721672535800216167307566919517088038167881688687903753931558491677393105531680891194376551107189445277857000836692269427764583576918314233932412944548233314787239609650671076253026608865483665208460594060220908046694067690676934684698869270337534249156367449934245481237262827922335815738944793178765767645301155045234509575477921093172440645549891518398819059744774434722574549751012451896417566191331998964915218193556942804672945666192003133374588653795488754252268844043389774305960206812097619329648794769209949752986737701839122944186548824289568052198936041779478837829868225353509680911776776080508781742947669712494912239377299152602398955920434719234995920853369886547578838627705317094477573023268244992391714335186863918526959448954505747400514719775665039132914955666471410665171411144088534580864739435873283207426862771977574093760198324882626278256140719238519545964265496867948747722128088703270334050931720999518655523578037285734039080456855650436443691223181844194401976865822395149032171843997866254901461016146296673448551269794291247919223426136837727558386717077380181587113012031345564878687688166098932240636457268376575543428573894761836787994001252507564787230662650036001387090901409541222865595469452453281228440860028154113083284922626303639519506842872435992524369646028907740881333729740587243402928140753630768703251564553153479142395932319211297857832398318461844450565392818090999680327945529124503718332065941729507255312310015258969423185646310667531085709392895535587195939502980133707449540116771186134925232545674101961433456207508042818614711882215257508648712235931840260202206653627097494036571110060681993667083472102614375169948875191976590627817593989550190477584660614711985350865620193235283657331920904891235140260726935894417726810496969806606118117044356373668391227248766736997664741103246221468900085019245240018502705585516704935312892780621883460028223389494943534108012507873759477352394483778571683642772860999834549116148137746368436266358864097534255226266608891787324476217283776136663192272881997194357039896407205841402499042046935187256992605375738287642286352750293209474739682489438448237963457667469460422079768295758784998661994737114117046302882964095867650677006201287194164007871392046297051433384056855424054761760371850838987922298748596942629682802878364835654549437405444451003331630723717975619075703967713218223802684593445898075661870729241296270554729881421316318219263055306512366067495144715651131722321408635506089302211534274328352852025294036880397646006304204776428281858136647524696066661031804452718582585972774048834345521376097950241575465364427015953959858844930519959984508240343253357734003874561588244363753538184722825641897171062030093670912567147758328563086525438623907624196907702876614282317645591419905929892522750733952087465061293921153020859115874766952538444732029704337520135760773582925806160044369499348062908195096834231353681891908552221409869604111398441630448997591174511670276934205525091302590294938755130349790496620619839298814105915774972069922727052721327990216066549849075908885740263104013630864367812963590160135235926763179873836422752227119097803853258239550107840603693705727813872898119958797342801291671198379209847643280184953622877555359387435959021889068397786839803598311134470298325326605770912982113960717505765906010297595192683426262023278417916328906633628509362798277067757769168584903881018376026992071294046879870566958021512038145929238069666766804624301371692624043861180569611673523253629413858376807292074325201501138294443367625491820022364136198055556886807746606942604016338142682719782604926905574552845958479231142624758717042116193935081147302606103388451240794913090142664312246081798552575534770659165615578236352507769485104500617393922231070019849281181647449094517235980729107642878175966677700925959877327698130639877279933600465569655500513336485702473880544583508920071943978649152180602060528689036065675049467340925766731949895768588057414926688813765694689091259877231601864183062186043127688863165343411426315672385246615745435298841911377997605203001834596016205389369328260250737224198980460192659891567047703128547845238907704329376057247573613386359325325237642386645139342272571122431949970238724280630277255598565508336739455138235342517066993423835038261993461278281005194255849999608451100914509854242740264032422980600160290183338772272938457450787521990080738301673493526215761628253126641045789200390268373228392515989436605264547779440223723540078209205424699561641460221011961167554162652909557560695633518969162930032498538328289983655408543943787139998914125114852244430505526152337306796576817228015810843253414015172914079185581107211581308670911457454040846563338610044399875182179586638066669502126525195232510374182208914330127421899772354529647563080376667680972888345570890986963599160759140609013007528246232404307096844682481612814667548837186106427982586501647125127924257937691482603641938698340898474297549981962685894466299347066055276434597589570446761278015874880399342926716978185276981617773109125412515104531724134261373805701971537286124364276904945411440677745047616980325313108726775325279367188674145354049903123269364221471951509061257472755851012166285099213579783711695961163282213554770333593676988923646157393611555985018779465395384025642931928621462590740237446482070014157348129553204608695442183600470927311058148245603563618181502832812511905894611038873401118259256861260974564182839187171499950828436950287507206445541295462926356428939757587130921203447105456694682886325740332773310088538631062634038921558010502820535786293393389607354740490277893710387540878879969812833902340226329223182930417662705496877351407878775201104287110736469806396088665775541939236107410801322504337229997634923022415996782860982819222898795917706190077106818054450472435828718373025352657608466968815113578864400981486474701322256125395985582093483763556403432205414832664685171896288556966587133814917634128390791661309729096822155188554755085978843210590639321982429320369657186546686710285643687337266291307403679873620697135285132725283489226402310692484372224420899926196861173353152142277313187627635653192094215330800322982784182628254621264427635075747098659714612621527799124354347930907100173859813637350189906763735214295849383587724782993455737160733689174657002985449515939295328615111513263915417684653087949765932772645218804269458905820208007671056449146969439279279578656468613996332228750850839782493968491280621317473674376224406911400318944044826324558571418331806656815612797548408016387822281275701526470304946706886710256009276254023262962475712966715262751774287716465768031928324542379660682600864306349680220747097809173242965666132852898902384682231159602130761756171430667440088389250870165409573711578375528801821004480975115048194111195974870111587899048916738472989275630176515609824029256213756483564438203594056943449996988685543975008990459499196600761848200503684608264463682839690851559130334228071603781516812061673428897425700882095923892106634761110463899535795287244915158412031067984492717665744568975777066887451455459787521433189885222241020539623075094824334138736377522276555655606168966550725721962267232795726511285110601417807761133612595217087211927881135739606805800036816385015423785584153755175457732484114783576118148318390669247997513709283683947329193119869089078746045588629114153803438810876608545703427389842221012455039835841707075400170354824097488498491762347666726054495777754521700853832519716948257762520411810826041089001227339646334874744249972967157056846676142776868865421775309664129340489200487162859603205141923747903528276118886287236824855189488061461090225051063044115549684673551430114915558553275738675064443564789061961713601127612374585709483127578892375686654487251512212783715470381450490903433221420872927003622983827686968465162413526766710972328142712303303085868902709975205939805368499371474315557188468442769332513817658166987466043867717430315950659156808484613161602047353834569624406388288516027621647770287922286501851243152263177255391935033523811886879341925975324205444033726085792323862894527861572232130042429148548421702663152793945596821069698480829646846162496656463948224865354228954244586645880857705814111453870001179665000279077597608419355107445381434942492994148905450613780767076004480653186325588373888315145650228146811511633428875903442887653726311476880480755486184697633411526907183986521455558593306414774953607187273729145705283863818699249898041276234899205275750056067993339739780175058950372222883894022595841518410548630107447270260077230820499704299986048021806900524849837331382282225050424986826858681688419003723132514998414058423139373664995568217735581559728628414974326893313522913090986575773645800034434476936315605699564448780837789924094233178053036547366571578818424932351536562739265711598271888531734019814112403061125170544637121493443001061758881710292919729829423075685367311228457674469084239680414157681266110611591976095497337992889018454799565023116391091333661875809345221750600499037253727607873035202584842670764340444683703953466459010267054569026153240275904061246133050147420016380271380561674678895380956305974081927701995837752158127454845136979348901675428196778745380386006784123600804394869895937890345880341945476828880883375694173318891951985217345441872129078752225348879362205591470677025251746553190803044003363390785650015653458179963852408394334173218529196231915847610356435481330890720325325091241767811039177853513402481834416128613286594670502490501279000643989056319860679330119223876981179491090718551612628984491995213698864842497792860201141820862565059906676817409536095286615165747104721095956547025223377159186558055600239554788929848533615498775950098927749181633344133553549990926117366038326010715266249663634406630056766651426193781085384133127893075404340407259466163939665128320499043185322338404395062061769696461871268072409944940599261776792840171809732209993681599828988746869401628192401675944917223499512026385493093852909631456018448621065737986388308729555352424440731440935923906364852969109137823439061938027752478691748504491366291980686898459727630328166092277534433770479076528623116354718826751257288855631825939618433691254225711284243673419407842735714722949462782130593094860155056354861285689848218422894011935824987417002956950267151884248823648433292728330703751090219785137448961527983388214096778704571587004890963554806448841908338513543008983494279581387018780868751470405830215855413015040723554811473237157853489438678862956546270914923892268988231683256273934663813807265459985741870758423640820757808935449350400305236787226070471641934430782101843071031184033804663793150437503710861245427983796470583453032206626755929585972238285224153446913981640724051862037773863416362423122789886310309999995343000780590478851669948011963146643022068064592449856522269255227211634588367817970718620108607114136060468904992299612217577792474368680979269407616671648348651407794149553030803395414737469632901367836273353883772576319578491989330372477236463159906251667768193587734074806758903808948464284750988224652481860197699694903156586630038740118451496826159886492344095434996971550210369690990730567814770958677074065941111133443392821145750294555969806104673537152447104992397634498070880073387089544788462471762822167022609580104681146841978753641839044591206832025430742620125549683625308269584105056028095145915922912710785036235692809107938105617584079648234238025513759505426573280107199869553441237052704253731627537315093917541673783241615845836335080663300145323657017304130727189980601232918726317727034320360344069423021504485766782238247438790102442101072885347686962482514935642970054012743575292736655256457872441206078931217269677866593216231136812104946302566863801154026346801744880904228565710582828598802786158694023628905721601483160534882866449926047885860116713179912945488662095545380833157488547429292050096716450559908256846337860023970108986816856896979401644711170584783452634764784366986187100276734808757782488840235362167542191369454399948117559881199888293419601362364742439470378954020407038184290003935307391362532141527864525781612788514583352568222034243780639253024465334588054620644130124806593043050505876921677236186624151372467406559890645197359548768986529992812425121329849876554990343499680884519818212535015741984858263985005688625476231828454053515387156520730142447180149906875386057834582483649567232063177037536776861242225717596667657976166612960337298333784516971694084008773422442958952482183110570320643631993560837053760804807975488242139995086049410226024421824667552721471929569857070768369989940666474321944827844346123175480157607460550295303171099566154418745095339108408927617516383238896047953245385410290985614842141926226848873134752783997652348632991993409246580394935240319208993292246912205711586589667484177531985578490775504752985988522866284473708687759272059080485258649992634702774472885175558777276794590162057611315744342433072220040285740431559934061138423289696451051489216167872930121929149069542211492572888922881822278583183150494955057083969544583270715885178427027188654019441170496842930494603306118652749459545690544601079296663748598146164589033591938834612651949067235742046258781161778852299801044869760842335261161579306729593776895220757189994815381666169026996481393961306062081885041683117355262560721829644674588369233891542597344390266642640699080134140264740287523765049983513536928603963856963336411699458783446637771468302274246196275242712059955302387740125005153899732924643301717789326946301415796158834043346808432269854662972022380092349523627101058262393446535963575127632124098136495393860807394498414936668431827982190450082567349002566475319030806436049990840914011419662896141687933963470549848702205589542024135868329635120907211800882529157965679719683719873106973506889989824082263994800991769647428060550701846234183960811047263438418304637984688702895464587580955647081773143006786253848866042179380187077426867333720452087733457966866332105608101705701749964746555035439294160953331102422068496222520502290886761559393468062300076378319395725320144273414956243507496913266159314357101186855171459330242737504770622891708364860807226913896042502465237683614968767843559161198649481612003492012443755798617324594951921967295435909964850728071442643991400540270443603372676877031549543142151755178213905470147736191579347246283087473865815317164657405701600330472409267462540604822603838718269699873946655370182325164373870755948904679322121843809719775350350584594838234515336338152838299195539875582822997851472214963030421944809351374041505133106845150129150212127724247531305908777454491826323899325513369788134334854082220947172897554175353729902936343336907090863690912124031677287669073654502756035296884928332030905695781799416907538336818923214446200768535172231776586220436875341185077558144124522440243222555200073754323945976443906469143300498642341045442788304467193193611564989328193255082422892434794031581433115863990254912536203449108660322215650879495986766306075087966828320777553238777147863569414019233731659330260543179600747962387989246036955733370708307177822875356614655568487235064263481420549300676374838885590897799057124600129528315314030947615321738453888396837986603374900136063678524589039766907748297602233228560122785467716382373705735726629167516708981534166639598904823222611667379274105514645421900692193068707892101034159613472195015631009398806365988051562494495630510927931001967116029876664079925484320749706679036002145902386563021337174257091743090599138367145930870530070129764709243916680072849037938927374427977138769058548276732796729028916719510274951451121960032077579816798062227190569290976949049920891859033100512003540868874875459129664214109173729703871674078700783569342813919740744253902238279199340197398261145172380748500482570514369882441082962323470827399629307937987814903774158944297875837038329515914669021080837684819779253442503712877366055708346756928011692504510597702772509788005107642783822926943174008731959556395941608711561709684305614588238806512683657512634098320650168651400851808360608436983675995270884978425042339606426705461604230677381489208755005808165520402468969849656523493428255183121711058744410432665974065557480872087896484050419485442581604704038257331208590061877455546300117417033341254687787399067172411546780694909722563187809533947724532358353193386300424668424544258868965876738137681516835697669585114381345537132230147868088765922183832971376801031755006021886851170556978616424501317207234256138138372336466096843511123889334145503558869409689894498118564515112096058937715437153174037539660760128233461700783918836592261743106483465304905213520064443269383663970361909231686199076546501636377790210150429518202593253760429860224906240036249281703143520159397788438002510228447393819516841369020292238691609844274071911504003776873091192084443419902449938595887160857713780902038943015449706673182937268267962678877086652338355276922164990350569180846327414811905637875945153698034694135737982160045354713140220252976211570045456412653351462864354992846034647608177502482563511904078685925899832194971697212144702251320180509356730268675085311587996385944064730790048982511846322116387180102188238169122037645135053247441559694029543595942954611866062115466424208123819891554662654963233973183058713180128594448619037829183187997833648522264168139911517095143548017870539236589308882369987463267348727764190492514291319462163885983567652347027741964810454535947718536838145143212441612010915253250028864124708059938142750296382287321911619540892674086043623896439540873036237300826965442653120955264375788555851546407550588168222849621473365260216702482202397062092892756475465668609780728144712219297882485312678301220843289527022568101345505980031136296891949717919173078030896174167605138664022224231270102519782681462722182296598437637271965401067067047054758575097068646415471322786315912951347808137026069991126947258558043869116374743680959319148919148665223616044677914196146490978349128095295258840152467576602085035276790589701881426426499999490250116811695635467309803046621267320865064537270277885935164705387165802286666468829863165650735527541589503885109969207646844202065866586455501651258615652223176741545118483069589214072428102999411143171017522963205667228796219297095040159732374560138224652168200769288080511632243006287248897223768817816071152616999466500455712500682056212319991215271753684505482921856281887627261040286888989496340136332548591292281463262137949734872653644878288305539180654764415997006486752890909365897998290840257754508462636754788116822592780437231314357864378338338390119075518761012701923805498931998654727230202052989673739161798023025843068707267827206798417488655969199753202574131002665990540151654602231160739853658904257106278539948017988904541937973840923138814262364186168576548056862854325028103950107366397193091173867754937360375275161507237135088834411899018848102690925785286425310331424727519368961472559017553648134977842400123639728518805789019377630758835831759411174162957478425902634949175943142047115520457939904246100463558006829269410467461424809426341258465237333130194269421639593760060094840099514089625395298485707116218582069331919580179985264857813368355650918182655221478077792957949237643964759361373072714713792618306381359536885783737988324397524737668930496968208305159675083991384572751434256550827485383516569626020979897892040941847119959445436891753466646673237136187621759125767611224673395742155110999763417764725231188527573810649779213113686653835860066429574166657230549777791526675967151605333777209915770749417140658375536341172386128623172503865398518985060231253045902211364453165207389367533351707998401832752357821111209143026530753280421731339177285124149154327706401040776265800706289382092760112609851143184381402185691519956598732805668740295005158446046093558758870151087335416858805873113681052839419539232347751231117113520610687801891357671256910374828094516664414507797037198758310182817080936779325340994686633393120602147463771220985285089241711604256811236167406572836546348691251775276466411122999752873858793526701590737819608179832144153187310362715541444580083291651330065302395046357617542211985293006256827781758464177415807235724514064093544442527420670495225595788769659615843257379558624750012955572203280989898581008568236641442073517371517413472587342162253618512720494999961445421579255689873438428406579531211222107962370072378970676528906969825671675705439680237425290911086948760639792666496601154207432604919084795140761917434562146018916411497025063057276831426305066478338971814103265594746367378313994176770229617117402828443642132645184525426000746415483748931059916063374311952080247249319004869521256606735107452519963974148105283872578015093771438141474195383859519103184305030369009097367302261974190139823284181951580991933032651121338100741846070094867418840738131205865509852831878841565282195221750756938943892588602096289935437067333177090766513864262503310685415104128466881060771751958382995385298834834519837605171527537416556252742861678094007884837062203199810707690648380417547793228742572770576865315330001770160984300621486719642775676561105300837721907348709046155707134752145643058506736619874454223207217252978372036413402951912775714263246469796820979860027599676536481458629927799584561773950309271133216695920806371898524743869827403687301656729053026664813908211467957674790241149452486359654696515232544492140414073476699275906106403556033214776752924973533814885086712874507073117922303850804489923485531583222324845701952302155536115886449636487879865701247667843914265084669283710561400777932923442198255732875130994440022354747898683489915431232119801343696600457374900864301885108641903714667755112608822674179771546935928721224441696102595201170375678510102351986902196759838458884844618375709793628237822590808895016832166369158886217558241441213880760667557127165931159251809279867548735596300412855892997603613474995047704504590707000558579743347048924079422098434943708489740304605923200521451323476236830949721304287020208996559935924303084916403062546834916711756858397498860379444747712610859514525682290294979613136061073214105326810050728760208782381486738271991419011919691757172867610709962695466905042448319238518083152322096410115827840546418846340287050336797689097368932290519263759677515608837941849380415523787222455844034594715529174838826851319477647519824253844936848781700288253040767710053776831249279699730443473389501666131249075852057079586993012984615953338566673257625842424739797282526617226591585664077804968506906352764952157944818552985163285746273749674446980123389056533586293112440441668518940340857435481429154489986187380175766898167542561315212908166942704700576629462134446098958010097024344296163130892831689049288225546968246308301428603282604642643418107735571967699238453621256618100548011772936121952488406161608853052923099387904392621452818953174109710746505717758885232247328111147295149777005057186288362339418357085434067846479247114154059258510838108454324082282479236964233246930606880577573716293135151602256239874217853222523549682250577576400807423524472333716289688981107403890963850018894945952523482905100505112649031894505727060911761066609417448980563637242940085776701370727002374385727664413109721642668893213575452539248731333891629284746179723377456000258426529045369500242738668388084053999673968299177527162012427022820378635543133822554978796979877314887550933287370344536955742511808975959308653546434909550510543276409684130871507119918245096340083205716223069838984727613496644996232523471536687656896759671746254601595102318342823706112569395392497579352836414941392826955427280212590313207712417824672242065465985904467633707019479110966192999272515828998949245898576226519211397745241212377999281150258048155044334505532007286985035962576312193789824563873606500855757583504687967936399531224402306606330852598615918491069173507552265662692485520554063605655434476009166124736988859698931210049115172552664821775290543610151368139179461200219480778674756019040094668592362294330800956225770089472015073520075214753529190369861872494835773507693716961493895149663794808315317645949296131717238164493390270960970997652299633908085926131137619962209651530305097275644156976543967242575742185616740819538070812576253150786232144027711927792180414111067618795223340511036328133611466380119948873064871484810438780382710760669293874097798589432488452542514643135500124549048577706632734145400365319470561956803689249005112867678499519191378832678618713197144672671027415531958741365810306676376025398962690413896504379050322714136838399893663782979195377961717756815829072010625598043963525503145041163018255779537542546778546164284023850354065076888531707454809336529574287894815306636437031418140104073849222780129631304760749060757498567701198281010677286214279223976655797994239330854578886325698811536093661378897564227329393874879710329954655771144520409945766839029020492703024744849058901318640642483572977885205967132991979162751630302479147795118160506365625709665771337408353955002205422207223847779149875362323239383537931649255255177443317863793495331585959898964145821906750313750066617759380199017798323080279766598232114340050094033816523926464143844128622849268988362126111937801282221731202950068279961126978747223613939158094299979112641654376000431145286804832149630818971298250433804701594760726403723825834867369313700143680446140782117945381823046461351318374438375590794752981180917877066231492380145202634982824400127224476477643334823588794419049323518122385163274320521665428039067400344389645579315242757415780650355527981939158954695377380559345246589353923181626404227170165564434500283232576903725058287753856912212898902815998545235863142356532838103254330154184712121568828650403283820244408013890046349476801771365996336248418381347733740349803902243352419337012415244679122248672059903178431700576272917451378793213121083780969549290932823010193816459806051906469832090310459707606990631134819451032424736111839247606489684494437871928492009965942262399932752507892468184371996065647187480885310441654951282000514495515363544159199670309140708543099672641201357709334745131772239668734263362607740722988889694472717971550707118376452453543609565107353125792810137570247610673383260063686940277195427702466398160094235604013671046290311475089489598309613505109936053521327706553002649751370277300184951178308175097895485952035928479887667708110909906687474864024326832886651464176640338551180177579347947635573699587947494807707301893020395431457132938145924481161416795001184651879812040515193884454334101617210305177161559561562874023411056977574358573182258341793671945529636706900238388803337912560209298536450744595389433009534165837809010945220709617090156923153919972286066099115125094644627351982951247658115766876626122698073355105621743525529564076694935328155157993987964025772829260700581097563398878952293201019748863035232847201482638089987423687336242154269411946688927010596081902736543929053133040083463594889045771620111106507286746234064318477645770360872092411254819392237338180465203936916074141619673566163595341395264919109890727518438411186039515518041346688608964555789425313127684628228035230143224490587840630635163519133036771268717159151586639546958380024463820392763642745251186248085565167012546732150224415685149850616567465626334947874385669126071234763109410073882308723554398756771603730073378709126573574483847517862050134975117389047951463453264755304932668519275806422816131461757355803135795167910399789748784901238168243574652271034175612950969248573236110498898671625126186864304766420512857242974772841937662075637628313732973018649315656974444736583899962532651598015471413809099581404734524927650445302787838118425553722881312773379513852696582345978708971398447849553947261542477885527093493715875387460934036458335998910982660453975972892362095732231440887134498102085781929836070995208126702863599356804409071899386917898437701573479180244316301407939370101115763027468462707309981615024366098025615719266928595599385432772049931659213404617700568109914608306958626469460306831932227101336319937121760397936632124499175259997536128153293744473519525975221443914956253908574459627819788488237578016636239283283445916371027074251288652003225397450101285106028782606188181982509306625673129108940938439888922918738940526374551492265202586371195198170592416036124554116745115102686270165310203756443884178003773279937551337648038218722006214602736699280925540861822392378993107689913181021874588331115849192756326082269201512553695557078263748109472475110376149033983042362679845288316205774628968716099855683738141584723550339748726411794497669135706969862073729194492440503157786929312650899798311376086958092906205496805464143521663620692638647121383294943779429242485465522829809420478356819833753816435921230840094710951166512270145632393122090704710643680333556450660939003605147325846221338568259198309986992848659501925306773910860632728535016082608378058076904556075472608819642271712645427012067891511608300732321170530770096231867337746730526906623837152805917001516918405935631066452172005319048097018512963416602902303685418723757261869593105562506746931469214703560603044433658293941735136358724280331376612117151103303710299907499318614268906214544559172688946323209080930182192629891818870415595386082938186572441630549593751262044665466924964296132901068160541688863244188093408216115219499546175894910784210393316322159852013298544870356494317267365091211646656107101952253268253215792311715733824949845334685945135371994123792168302394412360747641147828396387038890847339581159025311274753983409358116976158832487200028515194399696794517621637825459213723818128892703925642545040662421344466359185055293325345770032619640939336282552839017358843257201526486122768206652944607883902807429868585492230535507859917628573286581016289582618032262085168631474446171274153809412812694479745493155441002161754720817261744757897140733878637527579742534966600435020153336862472212968308475329232745044803831527532347220030714831773774613300037562285365637923652943347532194713813883570217172487058741066294155756121785274617273231341661231591962817062071949957961296171709064800760952901057736013390609456333877419139061302446953257238011449827119802614090406450387437431749754722267915070921802271457124310752298498820344010610388866174402410732781434222311692790593946078952992708359979273626986484756076589980520084995502673341369631733189343467168093935149547278946699325955534530002946334110591977899505813858779003098548654117268379897184258121775736251653571795915200516205893611005794425939152940278794848410957676568731275578363921286243225081018494244930489975158422969581831724629267724028168137458498892854575037964377254097163171076381208382724364310347739273117719125711770286779797745762163438885590066647024838041178673415802955034112703977076770232206198031545812324387629399970427756582467349560184924723177732251142211118739179963591051392506369715374062882608576520973850304075318146465507355162903560037871012790910167343830258550529525839002701349739640424761540422854259833497556605026766389869059183627082934578158617239484645124136639703659214332645552775350697160600544610699284275867357546457304814888729687652487330050008293173356026663800728987624136282063492662940896246028384205570292335319830523526375748851922276621098289940116088334056530195156762147863725779903756919878285607474572337342936044316599903771831578027049270977642235163936923207445849640058509523822465150249195843517394616291212349206414893284729219157601845296141644499561262812203091160585004658180131312761720006022006388838402962535943273434917549783772888190655000112631347743827522305137251333191085710945092785351591579741256838551157719233940487138842437736364380428830048875125650639802829869343154123191049250386577865911558630295796325176335180847126710021919837308894189855553428896838658816592700745921657551053904669634045499529558610813560109555416854728962728072019074480739313271702589600185751913067900111655383073248317036902309404484032394107272599635725279253758325689802214996854311549035747906919512327438479359317240121643125417048681035602835342577630369117548453888363769979874047544226074309317303081655475543680851460497562344625649256509608951928854895601957715800357838944526838556765335279655182709949225882795623212985498641715864263130053684291246491903284494142290485624758117197702680902613576490553740544069289215205019628493482133209018650683914907981646309129404915547431360577369184318868540590390489668924888282223397978174703359080069916256674702826979793969072093089130474131858020239267151574066033528652824449763336859087559640183104873207240431404171790254871852758864361446779619871672169208414468020911880544993045534191195676753417761915555258070787095636986974493599952374253890041894366790497552551232040587632650261063541458825769511797016707345409465855033755921225751948639473176239947852864901985319593902163360096506118620592482470079798648489592108557782351859856014361599251557612338245641851773766981553779475460691105069974967225993436136301523712830954448097505116243017510912001377917096222704984034985668335141969114812224172066830001463114939376333903267973629014576674790395940311936830873671929720803739581267414148413414915483153681769365854239127587679110048604546282282297245159541095240146744144477646566705041116691549046658582174873649853005201149526420293188462694170939257943741991549450289252748224037503012317086521760568229419009773438385700284618235224117682529072357888952603653093533526445000924391604221622140589363642652636646353719725787763283348254748641877739395384122593834674321544741695277220006957376630743491252860077212224375073821944112478368815151622156345843403466833737141557845652729549084004282167150695185014785351313596468731355610746232442069516931082748368558248840436535632878314941838847240746160681646325922880907135857128824671478729495088780907941510932326656700572705319197839048245969846242361646469924743935348381729808625860956007601974539725192428240685915845249589747178566092512040151963129172683212576311893054108279782695582433802317518416650922728818619291343700973609612488706815327426868683087005249148268739378252868275164338668089453069600026934798494480484500938489391552669628058411685944150823459115401742895394613746731647874433169045934625102734075476139261227794734524274890074415181494698751688151410311758608909612314856571572661611164548488084980259344024823793376039893445656973622137286475576301481091831875988618101953272609841907227048020831895367573508740405703966488900832383598643723272207092061412663561874924566133872117742968071237057121431750313489312130979923904102657291915631717717882298777006753789095709682143394640499286124508667317039674061213948475347209570705253999391191957154851589631810475827543508711689965168927229368636303181666074820472807277824153759571757476969539146449180692373136636397802329026035299210031792140753706162214741124793352241510790556443196050835630523917156361855493845636504849929040199883558947741914340213222206008555209758931164219092468632284927675920414262006877905082816173664162255071778557165659709445915484571543354841981649807036763601381248736542567114219425843830432940815754222211265436222123490928525179086138549268779673255640745307140060942520790946643514206614883105252785768381520091454678059319375785461537810012988197384436239236651045726856530925133041692893219845160069858762276878270272862819597498203047865715465008492800265009202400634386889891220802557588074485981231004308397133593717338229117991080916357763832300433014098002640499701244492021350147847158432677880365653815783382946911658350962205584059230749755472344889382851999423873459452893762854311457042955081532850567114850216330179952859062101312512803664792491589093364225146777956878405285299211379585044677910306193115247163345528912268810210885207751145765329019293690930106832646485581309407905229798965327574512647431131923552324269731190881654094949868945832492102268214092541809360061682974855463249698092075764188818206893138604365116113626434486891813128380262589508176751093158977326489988547596252939771511046175417509467874461003295217839365684535645627613876144717124592078115242588570875880339442727889883442896634556398308078111081750736310961900912026244683201473459685240075164208158880706970813488153947420815085915322848028864854709438776934015717721148034572566458516909157452889474748052223017628484197620550397241689845841038713974325664134158581026871758770749012728033499101320440286805676659976003374826428072492751098269621188695575670925014652370114732206796524560292384047659275896275723324855790266490030790548953861262865306119945055139782956345712638700355928418848407415074065119902597023647614735189171817529640671019710849671797459103506284828257489572884775553889965871200371286429737813155622040635744564912472345673055546382635442838257163872524763568912815539209229609922457448742222592631923152655970317893282101596423045970411718403953010926430929950362139977211846073199440371552487720789828776276192466209415432791950534340290257334317132644951419594217605912038333552560951022422022746231221046962973764818425916282054927112845999735657511438502616117642798646352993454184762808906035005439050067924715600072661047882130365709569274860339965052667239281232674069298666138383319675942389427542486826137064401337335802396379334393939174563465153889298475813957260220650448157220476862996126022500887121088998702379557113650243944283293208799845014600519204501576133128836090336726487490242099184534036682741023533732433738854654525567505040063507372014495302092928450920089934649151418430963097275357275062022172013947080683596969460780943708959960937696171756728379366881099794929329880582203377976080335005405912146015568289492843413624179002875201086032307804668754303314586836804334892656722924094293853765611561027810959154788130246116071566950705835166314014929042290465232029258577888997400137706257153452673133712999046329017471946437684707856651064310125294981606844200776714581026236330445950437147148549320905448796063056084204908802806694658005323896114516056214782316439607836327051119614507159685026982672722080281154958761327977123230618739097183801657311248702563684376700112031230972779330100169677519962093777949369692798955848407490532557681085591833818608749909039727754542853479830985940269131958106195906220694146089729661095242700909299406382608297100440173279390127698424803982158065974920924309859563238403744484044194751149390089110353230157544918075198217972974489497268032153358993206132452552272712781889382640956985123817859606144595896123184488587638588785388087669157094161610038712766705498534328541214103598240893463274917645413118580739071237095614005531069657561541955736386052952249543400772676937611416201938118826560326594177163720711742292557258192302493858294692294685567367522921828599526384086190871229503251287935245486232625823145335923155961171550650115921405320417076316731631694620578826406609815306310150014385464058306378609019614666323977029036991520295918537197615578512549880751146312702100349387994990348621480333283446219816595984009459456553691793207805833448353552417020019104502897202286453748833062848485569811736958341835539365076813534791585046883576511747776499459571559803467724765340603955271240313188775580069601462002881653270726100847748390709397295485777122862306468581772627226832603022284730148815408936996006173497165973572233895518191595740604518845206983061709613286970894839383576852283382003879036848617995914692902357266756923795691495234215349316725880107574016879034411595841971517094020504372949976770434861575697544907303665581612207611622786041068219381930980465355729613807121132651269398229488438057384620518078614882784368732381964371125558666682295092726857540884672358304598606955294807777891714732858694570179723405169443562700001319797241599485427973089954181723723620410368035466846764232714046097598773491013344242797212533107004660564984533957560488415730318542588835941707351838126198002320436382924921218870407665675019229362649402384927803017047027334710117247813726948846680628674823573265833802460667162527104191043851812516953213655220622889367594597836678711021617121028273244297149292110558468765131781048449376678583861869532697728705659730051616674665296797243667135567397705096089838724452071683649408069057343469600606157819913697312281902735660761876270829791805962593057348605153130111358100447564994225559807000796077674492810922567752918599365823634839763863384592664124957657750835150907665167866496134913515765129317488953767493038770931944490279685349659028897494856874622891952161356410975735667773585338920192209466506607197369079495424823838080241883790015295010025137689688496456764208074052992998242931783800979469520658498094039858393557306583371703894033633022498773404749617165744555181885291925233313764373537113556144051264023126956737295912979158154925750959239391698894543245984601587155584927992419154567128462232152348446866000653383930227724206159568945208020983461869724789951311362229307111882339095853774538159207486506637840001515504826621910208330734356264153613557242774185547811029819564112128909327286034931177855606196933197215689835845160163257072963416671139250793464249978720400192676972674834863007958176869128793632600602196841185459002385467910216092678910155291066374364452821964396866098776056277054237497071046823329455785237893205310061477170438133159108341495866086892498925350727905731344952179066632292767020277786090750797093216402026859784432136140748752919579120876908905724684606093707880632160267663478111251813799489871937032700216643633786343456158172818560819130002444433528369227913233275546677352655292755534760760298842219238631519716695486666128532730112131113335154438485809259897057348591430146487859594135453131412123608490082733117724980785386249837328421255792472988863973426515772237261985640465457108390828933831729003530797349371008624583454716016220740738592799164497783461085213543626296066911957283556206539036194119505307461112350430617941845109638209281608935332684661423195137755481727216733189179711675946248337732762618080564202548876461826933120603900010436108937720147458428646813257583807727335915730386716573442057691809042467886557181102917116801165668484915946393296622539534139406483301773309528291139735586310220260722507494398269206445910803174401887535466597440082484668307958777806290955582257184909858751590336497131601196708720983936136323863122130527489717026425428135273655025728714225609907503612525210315724502957645671541625783477482186406144969124293031894005346856389649965282256057990787039083975914014983294218377552707719419849180860987086151523242048911205684846614413847247222137593114716387847494467051711796062400986646645136457895333161601633935149386742449039319745866606441762239851370403305262971977712020715462620851760874707657076227214150707501503987980519850406117779157226543639528237110222957710027777655002230878458818896407446428716430206590545796075818203467889388421250164712596585964210421421188792634803591591914990007073337047916314445137568846000101718226575824649554043595937114504729837666148332019378168486172262575631063517391392973463356240059651512684738200564247603377998667373123522107016023660701881618757819587102611719892882239295592790017668301831270750595966536387175480236213336726327499343397199944462162052994802684296198645622916819517900313005902571336586817376430926378124674217791153439903021811963004013208332409117724023243491095178904693119660623100152391117774761877544100152495127028252502283422558816350447221243487421673145503888290885845584312343528357560374398643852990112981766414493900149807947227030826401733260090204135429179844450088903070084536924658367186717607668301604029461136223214081011952189574588623530631403901408646796837481302453501700761717373283271614473980881511923306179825284351086835138051991290340807939962356220993720328130654081355398725244600795327167754993731095752456820914886946295460408382168743354188860103249432933493357882716953898757481775349030126351534585323917134456186247230773395940846700754943747831526695545396260367307839379011222473125813651195798771987644011268540491203944874047251784894088716392805192963539634906385266711956914743396519285735245249512907835974168548551608163854733764531496038534271146796404829600732980571609739251774952099290990621612408753248444419651108510302502102571503037777158580540512373540571016046398127576997710939747042485753091337600662841524731930085019857615611887948054805599026326990037474640586389417441102175361875337664795091932089750562602288128898804840159365569215512241401487833259831257520729779493481845819723762132807093850295434562925110162675881089700763608642703723911776327671266253997346370243886251190588392024232018275834108683221500898370644139853389690894064260165640126608252194302705366030021040159709317602089667133238802120918474983484590847821094652565752794769334803320005651353965163172733756091527733849177241121019910765182413459384827085411953126513703342246056226826650409484279028697566861886540992734113211931180449568892351566811800693048999226295835054546433117176724724439501550805134088321007088101695248564417764447717053394945349867624472176922043578106815848910227896739417428644227161180054310791768254073962788975504438564048909643742076956559677763479864730094335999311075511689376098167909661569817443554435877605657254215435404197349465620322584154863679262838967633511643357540259953806156149333484879689188774058729441647060702459066055642234298164951875820400336198097825774213368145083482599540917244533474215500251554513363094874785907890475112798713550144811457227838327734787006808686724076450989089651907795411691219009333814444824865720521529226508929932386464604962769620813858059917155919383930555629159092199826736815981796163576835543173609194872849650260106783759051012071751017265076051338153549579225697792963042134364998558483539363049082350051075079096751662914932725900452514519181926945439710255693563875753753835798454865422791209748782852180916364276110389449851891599643554512185531090971625727337616252207674480245718456488912386867585467084655785802683217817037694713931486928462723234321812234503095345797001551553508004079717884523409123198834036067720088662195182247612103000046752307357305923383360116179072044804253253667136400493129213311693288758496663701753730722635653755933349948194303943769552644664850343103406448453695266526967278772019488063338055175831651569503075064125388047120605067872994507800516930862884766179694877057592573373008797797415305636253523927556937744459090608588139227385755554882754923228552348517207657810448225485468551599203411103805032288280079784646103777933146166593410598561420344343277705792409953889385207863325505463736367479310825091457932531398696003009239565696807379032050801295838528320004988006571443501401627755442022612269119663489991150388179179770223427168282374214875883371585680934074882637013890952858754066048622314485243662480876330821134699415726487371422610787042885685662839908086712733208946742391684779247396158670156532673436972477096245927977271102184156362595398619036962989292029069868062182672956422724854859647238786234745624465135702566901779234273645066171750948728515052808841759372910038697159877804123285184519157462964500566895084500003985008175066381566037530468280806363955853061969727082614622965905634008433552890368653059049867627373308856765380053607430090988212719929873198882467305924719679191994991796144198408132367329971143553813128349377392446392066811021027322598019266855571634146758043485114501811689195466321703559274827210073826508569221593088620238363737747067696549766286661794540564617091920046267809057233201396010740022338495175385925413792959391748860612423161224388931710961573568033398128125127386047657828457772146706847497111860499539972156152266312952762802720562000819652743697527087448338351978873262905064516743054178209647279770683409279599576074526125764341225635557043028988020376221896022304193879357649914310564633258111483611676167344888845036543739083083966657760276522051535035905614448703801914461263130635988281605779068057579572408199258311125991559478040094580927698393688554897646750528935708876151833555041566143203320390138077971403894715158310142669824701002811958237585679565409532058789937757313325674122319586781024289112040515553857106964177046905980770324580922357034174607491106804707224317464079822214528250814715760773337509874103734350271882757638645256224955685480348721071727804388192435800787366120284167415263076606425570547499288867754296214352201772542742046581723027134535114601924217394298573039509418430649524290324203934407350636800944786243010220478536490380241705404905879838637188444825315617688426218137459800176942881117413299783025230613593281008880923021286386724460097251479730802864697039859146313978303130896383848429142915233274997660263211131113360856124069841958807975289525502869307067128230162047172615777594551186898647057246641955392983627344997553210111679083707914802841942321504886101057666100136917289136464900413001067304134137972422402979667511495026522268042779982591387332529239342683429350422795719048088299034900445986248668026349064164359634678573715955795838940507001488222371904894777418050610140513421500097831643682654041103239026174187940599092992380246454874534110128007534085886876462068245668113410674859758141442462535111005000670227982036576020025531751494776473526736884940090609331674467890337179068987977979190730742420732622349761046330605661369487308353039275402746179213154812155410674922795159696614733617081836919413896695795502104760613378688020810407433212487186310133994034718785412296632637905447430753141495371384135277727889882314620469198285076360871810150701393100207774349146053186683889942772847854152676925379996792058373646450603264211888206906849842059830787573366173902749854204571179520682318705407921837569527224740481398195281036921239329930165848605360311198986416180592021659933806644352087314287851335038805568346332940096999127718158734715360764546025916607652961822541889135452665010892421578150917512826554612739266246187459464757529318642222190080763266575917248732685425861758797210477457624624771919531521789605029793382128103745792988716355908193302262967339074698159679793957892434654279080936551907920370275059520025064150164108161768203259747053203276282283614066076406081730359136207970145086141807284917871100133945264654448912975417156385032679668100466911263390530180148728139434827548388397452190531828219925217353727516938673599688071412474472062687006760009899727370032181549138993872251230431161148408716522941566639361685764996146132580023594434935235542473061783678597834739976787245890243391382539974378642234409989484687009807391909608886545298807465576955049996049407163546602934802425915170013216223682129902001676128996721311455975771352633622197357113450231128373413825962672688468163798176549148507646310365111385576239760366981020027759789374912728410009235878644510475695889926849859857690035279393440851756729735896763013519796836458515592165889315721137916432036623766965100702993486069112666379705330506282676303838423239020952102214179728021799851023567549191135873419663176893173008285310327749917735805073997744828351284094603606862792991538026183826690813907766114053442877905854602055083234211614226104131796441992990959720201129602392861808420258199686097371316959820016240232668539992600164789281652918175922007456006418921668624288730637168205343967715154596180038357922068802554997812917821201025816258930545826902579560709561799491879997314247765370247884898322940425028196840040240744473171565828625246787137128946986173421105801821159904637430221996071888113256694557768615890603125737193010630000417673442698848839367076954505828127160097198066071931649094692800150089932029581314711595568503362895354884794771160100940343947990198336165954282884489418530115796629575671380248464789419384613303758207365342078160481213577458707196319143186569529300420824913957727760107728245019629358388924124782545088222850374840881210597061595589027224980609417395285542463043310147729081169944421102682232457186487776330330411538352025727941770437485802427331294052621479769806319478471348498412821075744746395057437563968692540761445538273316876830605278685200402583207749109016953340061791187313345435831794402816987971824777168171035311023981502365946067620781296166374041460178626749059606585774995344242013871335864973534129186498075392211924845721414483287735592472134273011816099226501808054470226916959446532776212887395202125063380495398387409938691636921493028446006291483041636956307023035265105840289239180563232376092862023843516153532312306806881508662382860580908204107393300092298138996996320971685550829813034495608478787293748580612084982263127048771584711001149032526432438021880648333486586844925049467705397002954376080332382367164794699855143786902627779954672667673334285034483374924985926597550285947117040252623907986233115297103783744731521810845814546796967790433598904828551439596465258930977339393788238833721848057821924493488067191076269357857896592946675534051027016812889217867899748749833711227139616648643890595345424269174848889690710309928549918150339733542194755580867985153124562077936203938491593363386855838209271227499316038613098027342691672008563004028967109299574952168265483057249881049181274791007047211610611988143252833674563826585896636363143515481099257747167871761965949358938966992934417898075497612597259230586700840865742245418936476457426999807738891972379942293931083661279603328297754168378731200294207061860909328537033902582637500693200530779568964390760994527434156617647871181215974021760648237027194857267358858763810587010411070809706216229016277013292020138098829877310950137162921741786693481721291451235844231286338891578261561690772446449922187691232657528748032180672396628533542812245775060784904642273307489490338782842750378121422128746246573930504543806737133377654391871577435476727514899200236973456834381591982628577274649471673838211026475275909611384727242648363860994200577008168474719469107195386012148333450968326583914319526026775168506438521931023819122737952689800329021281268923673792201096809314873609773353691630622320777882702276122936598856692456079367699251690040701803979470035348186515616165530989627704580166509819629497623892053523624683645270495771211441725885249291231059559786120781647713812435773810862453668880682977168797748412807012881746501102154657788659047347189525717329291620969541034005126228207373517187334306729453709619629482267164802308656626267951898249420446881442411464230317362184771668955070131561667256273115872546454503113646675955302950033640814821288038422891995115260972314091512656250572257523594635439192842498396741358497939502586872464131171899978196909079525050048600196725387419813727035142651756984464659592108549209985107559936365852413180257488305849855570835547954590442942345672861177472895965189503341390199601503599987738726844398917698814112601676964893759307423547390941541043561983844302078075936708490163499617041707330346496817737484702846567247613784795855757387684204492066218452315165925524168327313100539024018189210044748589402378066056274088360924296710132401895878908014234903424780963184183568951379572783368755707669661179153113838684056173897287165737134802656501726607751908074406840608343376062903034727709444814592755391390028748233251153995965469562779474815436086444491780769876797104779945724513749723668213795157967684388000766130521111708400999367445351385119449371570732537394526522663686344533408633554884502719403399371535151897623694889638451193266368916670102447880596011840138855862685641950113200476311242993931468896688934602529868069601672178978104821816839403171424910615031454695780906074655246822784012298145350816515074033020810556316967024903408202357570553313499304600446089524493667540095762370745654445985580022183753208334481522668820926003600632174516210831568203403073926390552512024485237948080661757986006649942222275430459376323422158089589536242521169030077618443027959672716828612686806110699235983167796859423176044333482921935174751085850500402383498528508372147820239563566408020515236641600926028145696743132976913077871811734816172481211419559113478855151410508576732976659871724381558569533413590054102807010798695720720506399597685598147055187449265208745002265774388824851439816999079018689178304102153434945468284102345369408735486728453723490804848518073247840432099652156832760670481781049462509037267203826268363442844854231978913032073669010515788684128077846765597753569591315298123703734337895015033903680025342061414237187610022541166313423080935021108600728612491952160716477732667146733735743290997531399710158879266153558065818145805134748522584278837600487563912605782859655120145217667641626743755600634911693409186922111136086262592364253753915152113274278135632170017738581806173947790947541834917643728020548631145293949628186501781401498289784592644127600995897914998378429312186184139662291919500013842533089474709256538404255742678111202202704540370599511651033892414342166158436155628185490283734342282069392310490220055109786138712031235007162972124875213399503642860721140217762951034515493829492389274429081658538966169091510087580257303844037295452058526237848065856171807730652621032354158886390050339728927048809795456346678360451292474101328027750325112674635202207064268998491677477087114998095616541528312784151995219276299810683142612812243629699540050470269423198314764201416228322143050617855855433897308048708821507724285857070884769997616910994559378116167637913417458174425603439058367295015248623209238919083170958041010546579127858418549112489081689409003303555489218143571605951639368251311146702854735334147782988502895502552229620475627263782931870081116504800785662603780056695000094804867630992701782373763961656566111576039127338269532135070661455938795251474724733405398717974894846489935740264966830449368856218234800055113254323801022345494205874208072859161751412190645927652567770384342181466851997919922352582475893963947280126764847289884591057866192931010763143382222856501840193708929252426894965353722572009928358361818876060862666194927683902849319349605164362013903955987610477678592911914144806002055438514713754538346340187800842226261522430728797415371212673987388798981911409714823142592822215096905245570207884931941390891405709755351225760010203179219415950864829851553244621173651459552436020814577244123810232635902614077469416828179174255955580357534530686308938237547671954763185658163193468669052111138897309713728098281027789764572367321645716661477270629689772599479924335098335557862922611972484322799777921604955066978297807993946588355029699712583438117069336595133585598698324673764287754828036844767116174189534582246528642768918421317661619178779022470458094286305014325819104608578385688787708788558393495954208285804353156648811235681486235119212481868923383040018252995436242650721135621674090264153014180879071909328668230228140902759539231842691276529828740224176639446309551805820297979406275543837147591320145774069234027876124586788618219526893160067109045355623784595831940704858426990828141697305930762512430765187596698557732703493722772425947468412858354605656518672345774632091986664027700623751226724449555565691914527387247924244207866573877379939393167822257432747250373232566825123715562324273331405121550402720506896891836479484180610007388104127363765662847387500060224168104894004313226066218540040500515116382210089097808355128560995252287815086549709775345252973396971607841202266246804978168867053876676379193862366068911795633364028144674470975349069274323936697606165744623991801788978333139246634105897717079350041254714683094559841171452025168521943103412575933676385608025977316591362952056848897869039570428314240502350809519475959027550966667475007591918807125687134013324223140666666832483018672594011469782170807603937490106506395079620100579883308809266990211460981319414528867577857308271225485487492950111841500440349517310106498404149912415731149963076710171780326274385705639705915743957130353721330720826905171534280869303386810040403464581330387192543662924567031820798450670463792929424174958391523046021443926794859021521196702155040712959158510389920047425789255957839859027253276962876434038757704376422113749194189142921961338349860454533688360761981743693106330351061510117682131200500188975784896296528434453075207048274585937036760506989235863016886957101702339500743270504741600149055231349306188020977666678745569201207490289980327772155417208114048487374497409885415698383406859161243698397133437150390670321577041085621505180771372567683291220175166563095209386441108881940966049398261104712556874442128522490483265855261349583687569146066287201298127104112576534819059266766517316732087180317352027051052470458829426898204691091716659333981711059638384911220058015385369531388059499487155861311045482995069436523241583015888470998391723290688146570055055606065681670653754835176612855756358729244596831122035472085607962122902907303933302863274224630043398736064488922750269115601333635769343662720440545698005539800741585360395109868037129028266086299076897220394427854736027031318448500361288155478676445926209478171008317442753986563387485846173549351711385418355711503910539867776307555643599368391640061516546387504855679210697941895006413128129259720817205294923690425256551980800599551613284358859141481840934963507275602071098299775950104381187623392490717612573861443161609261024406637622978377084704597466429517992357967522739845920069054161706633783234522275381041311814162793937806111870823610586029413760227958804060059760726897288712637150343425024663379713541782046752777670259512028320727574124249272519753403153963317756624982232050449244688605295865200935213948365294355377700714322460844701634616945692765887603733419200081353292217341398023515081247537327472148699461653374771609267357120975000207553342244186798605745957195268663694091762240357042086367329767858304473968919763068526185455493543979967406941479467825443008280760468863368828618416785567893683260714389037745409819712664648516500511391424758805919132284566241976737973758392121350800463564649455567721646687123981922935681837634410665173471378479006258739898621114812427614217352793323405125771584079652270079799429100320243607686198294270965997851319517325523072575991334939650037094255391842163577844387020563488593965384642161663924932013086589641769756384779708815622183555243797285359756314748828754685763888053197310657580664265934707581941255843883850782553885235298075965976872851348160105041595676941315072446061804718095608550073719002764074382176525630816114719925217208698932218592773610107012671522036987304904793132870689078807779502909949083053670106442761049316227606232356904449101476212210201362366068712033213056940386207507185699593715863762959103218761498787608744989460955648674416640316659952946984370807821159955525981141145025107301356677301123532443203390561217640110192085724673893206762142553815390629285259506465530392753266994696515860324843184389815285871425903561301834395851237272551959319619120013410974923707838808403270098728094941527643000896565655725361460305059073309225682115437736945874425589562377694907277893190298435885341963448279406998461283028691758373198446740881128595258381436871907421570929359586669175826699382971917116408339706254643753969369846329053820261767995346880424202499419165496679829963308818409539825872124296220451567312457387609538026315941240075643228481797209029796550008312339558096510861012009269086397236282038617934206009725794441941062274817255021290146123297136034636214683934922404565829193044231929084796018773323959266770593450463458332808541721689478501115051827491959180135899766741819200877640984513798144917129001380825082469645579946082242900349061338548165425491290277230462674406440978899415524556353169233151164498452767853347627460337452864526483649430006742532690354303316302829563133066993600991216921308180499097117357336419396738444002208016252817944555691563884446094747610546313727087633107249633127296108553884276569652944559162168146633092511179837467102094207462178695683690275208764303707453655579414076780118148409602526966312595536572672198309379016267910822652189857636817725883033077239023712044482241826002998540625142417500018263422954215142270466483246532230095580461917770457210983991034762540654034705139613572204823746663922270676168966213534074854572008916606386593442049004512122649875984618037701209069571031006022187162103417232446781321827060622598557022645113930216446792680253213313093148874605410241858617082493078403537737106099820591998552007153230469865547843498560476463203983033339905744047718163325176761440958365133285073360935661526980584349218355659581793968778193586757264384475223121459757738276553021884842022241902975092171467026603484856961196464608795193050306420283687366608781759369556079398951736390219203679654354092966523009957985520597029526542333499040530116602439643573135046163158173418728447707581172810204067573636171682161026174872770972587803627124941208478765795783353789954397777153116855785907245430005651750058487358055405036016602921687914690209658646570609839985976002317934673431416646362288089919199335194649151185441740383917493042219019264646277003914816532727565581005175615730611998682540933287304754051681545517730754839088277401900771997028834247902236727454207890374379013824439303376087704383629502771800266934366412148372677413904380593478533082405531006439883718522488977356279307512438231184084564314121802067075490094610906127812272763597345104691247553457408201838609897265942003297596004950999886329726411124035245730429739311427011972578716561533872185944742353602859740710564396600126515862168501791375379334208613389706077046609764930437552976843613004160556268376870603539822385511879234204271309517426593379607211984828956055493663388381050775440974806742588356932628447940796286824250404113082714467565376328858439895505244102827752140320232709645406027420208429868944448416370208794319920748908530170603350402872927816109523742501004598481289573970651558434069118844850790688384729590520029549607104653888814235531033376330277805067633051543500392226862476400473031846508202641522642103464536956345830630417620731005139592487050100235319471268506126630659722872479988107360805106851805234514196175650693900089906170906873100972085529093366187903842071340933142123452861715713282326058626329734661856705829495491021060343378124055855732933963900461151845455436965455084684652698645756020231920908406372646855065028645051246817586766362642661603764211208318625758767479436745464336982577299406045294168602052263956998671160149735815153571727005587656567179642527650204346261839100475380928611947596167899808887730634911131833413520449666919309129739604158595693765732375237863312903959987360950851846088567103274004492992452317176944133111909843528375036085685421652893941944690647342560303394534360967447549974829134937363150443731848150253857831355898780360855998293571272665934959793667988721635954252858627915142198748882386807415661838879131003727168168792678303110648510126056226500782968755867632500217147091599072411097223554965765770577400679690000781769202818535842310968117089399153407770511218285402733818101378847325472868593768050903499219234580823414227628449695571527014875380366901069006284068724460275492393137941796587406998254742447663070534433511921731994673477780183614515294189212384254965262844715481841169265288930670569498444365025728972472548995583891282057046182317504320199959074315767835094289564981425126645027897870234335807099489764555531085320104238579702529976747135131984902625188455923969159783049410931102222424512389040811065369480860796483555337914280790101136216310167373629623115224499823996016188681362290315134561285539541400961090271358995059322860602040960761497567587883675870028219872392962731709733911362646622320174474903203052575301782562122000379350913936905018978363207940176964334007373496881255519118923091117142802966998913598909058569847211289459274288069839443302191727826820937475589713207066030622636435388253311446237179002153865225761783406684205659416700051684133564891402652169476166077974579752735847305497969641556556203473791668951397861247030268856320371830221919827973741381506409860991886710524551295914405536380389801501317183774666351760849817609458968682134262656776324340763330325007896126722404413071773878387711508604188891604590852192541603568574049296917416279460285897944536056746507791995825009684053802196621716834795856096161044149793323862355360432293405518428415996130412414179154861420105737871788133338519663375552695264329093300235844676509690487489913061307964685988681306894485135284056252290478165760454313556840889779523968063056691713433243962877948027610012029611072854061873993173904300070204787298365915214235542931409260207656945932314618403317328575904935080552785229790734128218879237495299453777266004940499297452937635328439997409395754601427188761632121182448165542136640242530568440397588868970239272771824812180749322405529569934815403123010673348663500680250014151142215685131092858794502198799647004664108501413990768881647754017702800159383423904583904689699625805145903127136422495048549877854088897074824972726101409937420581566523236661153848473391165363796592164604265820707592818343864458339918512489850148218287732012602490985245007363981847368366482380854952027355993159291174436310684278079489804938645625373337198635546553361465463303440249661386815232680660706441625401682964817838657567550164628525835507982043282704470905037097273364442715673171154818872162795496824771304498016832210263873381693619064293590138304217116714788182915741676181615724700837796547160282200245847655773088454126988863763783805942374532401808155449719772737536627685480661394214245297035609255860887862093950571115962101110659543312356798153327254340254356843031792443287138461611719017414624585378362278703412740488526877330545049157369086758791317203830494783664575034847734991496212413416125170970208642582315337399526030910029791766426510527421544772728712057233400017418416857625202078009166715567093146577179574392855985435923593730269748717940965213431967630061698197702600262492557337850842355774812960118027820447052279121509531152320300343119317335464287286532029919454665369738606849446391097567784870499645996161661765876516243464285029181773128965898945280961323923425565529448227995489432574224242235060520693201920806632906730817838988095863265067842281876351864818080466860343779059530930251770311320318190964213469969353918468236526170616651545366008754337374193694758802517347782813404376201456306938788670820016706633195093192730471025166871344529120248353301732059145135931942703244212867848484042276581480204044654916998109002390390088184852841030960125007268053458777721866470423062504783373540515397964422708774524471431841340182902656395037116815499953778453448565547779310476418926478329470324797822084050220649025796045113193046672925990576828692974854988870342087726653120000374002370534371857636133537956232504520403144983309501315046380953755151837095173400042289757120593443060036154027532506091931639664663663927910511687815064466190324660057376932424983862740916269394158378581413429289612858445151467632826972709571419563209549703084961965133704456878453751355970046165183808806996633946661671201092135236249207774477719379166170233157401921783777404597807476566733851171079781799344865852280075904011541004338162589126184528945262993476834705721986087338536453860839004637342077033432011214586661322010024961422371252469669669995708679754504032969828516134875292530441662950978051558920551988602428427612313719491326691609148314436343603451009273967923660891736268104975138500935318752043390456534144370877657971567667726503143196496767081440224509664701106110340351246071728911570622851619053480776770179178165208867426037911310905591309948061320211168842082268549643489634402341623324852547577022975508719410973219320316144153427008982990153621515340494531095743342220870604681557817333642636002506951354623446666403197269605204735146982431330294369001802085512013034682373070063473866460439891796606946301925271381276887031011295912692598373862336913198965507299838547601822912407486319304145514162183656301653744806563764996006151256999345126402654627472933814509712742492120013966704957343960169360464251374129866592835151100282123864472391827800200748425122955116914123511873465500653320018281424856007417841957869032320527618361732657212832451579623317570546458484819655634680368575980558576031000696889937734444018520770284139910267771833205067222695023036560267984195157372074398379673385272460744399259723522211665187208965987400638026077764663911301151605518695392419669573839455632367269381331289488362461112737526336410630018441839168304581445988326179570097249272876523390781335976078602147943264686113983891159610829826380400367222369317741291724019373801321018395920666332866034349234496892043113745819902327157778329862870078572144869941471310315873502366765476500527229725613018553839598748894053267177663553833218350792374534103471984767239215668848053162014025661679989873692913157366180638642573180552065155614598873771197388406506678430631877104109371269494742622985207791034541343938283758401257137043503740329168947788770003215718186229097826364222163010309219867623895213848454289255964749327325646616096347930793717174518221411201148726670617366491572540661328682787984896962660778302760209306962659868574946644359270345484676738168314130185514429586133645639299117054091089067601189042387410184209513795498627760691998422269614499509032881133565614828795012928046968625402234261561510471042337530445760127859815411475213579003815223340294329998240563220425915291846270260430058041130402792812753146865343104285530889192955621640081630825567697509001578339415281589708205226482708301860048664448906094428060911300234474567056223189940970244521724147549816337317302411744235214575993701397510684353515537913138320356856183491130084692031726964432576954436118777962370387286771535602891171662699039330377346628186458289559443213258029946761250294889405486744754346837475185572588536033574300874376185637925572489200122202891966685543842525167318791220600200514378273403539964478970468759851691932230659540526587009946727807952274705249267213284153198688578232727344138033436587825799672586197389547917179038328997326851091045892018950145908545456552569514948229421440958500319749141581068315231747591096634591424720612595876879925346639461347518123703972295670092546543024156441913617206462145043306551691610593858932319042885083692151701073789829638650902410332900404508687275899145721589508824016079954026616440362070484052005964207405515454696166955779909017589355099077932116181093213327625578821935378554907214248835680900453940251165602472193365250203240202657638808303373419187022886991087507038674712516870914566149648279361295271005626623166283025548738984418083605364278234735927636542425205324398924750117363332217747146261860710109520681995750533417734998430911871098772759600601841410279264234446403505017842269158524302149565504838546025792042253008325918455483279241467439344024584196038064089900314600714428068256114819174639573282819087199372784936741154347999065816670235648678624527018072381918755470213175043741915077326188289894824808763672771509593490172153493998437495355350090060619773550576344988209240660984781994042875229952387934327203796075749957074437077225212815193215770518051559089025286770086908185935568410113019162781139447153875033836256847625000292810646518363039762356096610728277870467483150874930671522413508264630248201802309031903487388921124280029079533731763675630737303942642711401060777074076512893775359900165395771828173936594282595202873257445343636090298018572781731989237014453037340421279815025450905187352176090044947356545093951102470861381043347672394710972120291720972243837911534688772104535472223487003294399314894257193752637106112832874594835444461851922661594245803037866429337263352635836468768009434666102217753441225993569853704700710347700521890228976506313822005569667289130138823338317037654765632411709067721750015292164764646573678513705593064051173911818560618397883443013600398473783494517464693820002693568411044140010172403013452538050034603798153436182696528285265242545421352983537072578890077046062384182674884645192486112009563192354562286206285705815426288934395193231866481583076814560754787932556796019450910452113531144560862884849725702598457556750128098472413223698330331375755869691405449263477310731595247229692577566840580182943024239520126514554831092200148157697356405092191029639674167219375829849932925422753115926513038374272337292756406615144992039022761798045043873019572683521718624891002382680715006271879036772090757732866076209186835294813931603284735003239305127801857722451077293038730796752434544881892023116538614294683832200418368160721890882067826227371191084824894823443974901400384797358996909232929032815281260381832145416587445824655209303973432998050668981988764831441866177049425016670928605453571364580845920965049860887870696953787298964774188496862200933852383644340266251961400882654862049017723958921537886597907465229161068673321713007051558355929687159164753697123210394388917280530854958323642345244756212157080058228766647918762640964246457095859864520661677467034468652912352598932778079912262756617648586193461641077116597306142835096390837044084553030769837339516888403586209233136196115252814435385424761012226563073150734561756549995820105364244600405847860029758040406624035073556021484293557465399548196275966116528877608345780723776492769655878465331529753932968149416367242642078570906163601240998495883277570475384081091967102185993475698245511320881689249386389651025180866365251279135052744142148063939760123371955465979848955916328308073642279754013876246273274589405025097797262648494183862943139088704254665819701551130362665023907941257117603127080189383453792628062883537358192189214321811631191602111530004400876734777065138229643215251088782367264109400061242254365585514662806692204912370956732467963747870712081396003818999379759924447562558572619742271366224153137982266674111842938017279765639092960800772773312497131062223558942787345787836615380166780797492381375559842947386812285841358906320263164051766420993312921518401069086994392892712160687505144125187967437439818183857425230836249689772809482967106225401109069820766365353944366919164883145326601937329688236989618699488888516490596466044082186474846210266143815002643691220222096281573480624417909496632237917778092345627045690038952689405297269930768061881870703070645063621081671029747035431155246517741205165011345761574853362227817539093348716414050845787587388323488700591151723190295002659963375630562974801738123975585099274288570862107443659041483846201588885877087664147520525454505799655593430927252165530176621075922800590655340335265683719591799995557454384361758650459311955362158471617915555068753392737704844390804419108456790044427517659613618949623244397847088102977555057450141635238092807367023290829619646706488783447197420593924820795965439317739729755603123929088461491601571100756546564966184289853117639674993398453493375713835125000210374511911940445007167747048160216371780561852857103835124675422352742349898022797358049154949786091568777909889189080253897809771587868121718238355953462600644206478658046288957642882126382236317305198702612923600945320750123140087112783816672021683641013345040548046210220774212958774035687337081876064608300712965411628629664269903977106982035328914026532503046905453504346885854336493752977965185215171795405779283779045384970378423526573710900570505253746354156055125856177714809860403464161928550619195472811313905784620744147598485000011710887616135775962876487514914625586363005249465695036726205326985145159845613974893880686173196282292674584938501984317905910257306257167588881147598828087181419254244544380742838180483471693240777623819374216391764226976357756801354588935936879081828749695802776048625059849028369192526458123658537488287912127980533866442089760619649344377348019158712470873685874359730154531534133402085030341258041376623220912925317328597909442188326802021057883142279466633975450535736823562509645064398112352485473347482841450834488638017223989038954478256220105747610761725775127864301188888554207307972936714264586786559820374641661459012549337120107048579103021853372679563527793909565776471286715424751675560994606036631845511931639092830428737805922349628989766752297925395931872109593083463554326541890312484919041513582212958814487573568779364138490088577739726253817118286743495867778619190783598486074955166241488968709286899573665883322461163304623167873501398219933523098222665088285766551682982259267209536725296011151665501595815861491161606031506334959259910698546130891301910803579700828870778698130477928220268233184968674820384612114003380996554663310761797556706608095992608819970893968834820606037645285774030837138447660901708277110641919527878063291952419604929630813653037139018823270488130548963147060352169369644556018716477899110088142871421629095295594219748394331864806508919337996314586048642525836290299646605879474144700174941558442991240410601527005460510412289785139781729306581025320506767376586066463713177971815106146393131388550700771324572424770493600409903783245796328093579003670505008291144914253999797403362867438976707638957692260919784716090911154053900828231936896255204435937566827026664845894493076963101414518711300083501637585613934583156562530698585565057079545562378094440176313461989931012632337099483849335031161752701908984874162964034054514983626468592686713911392839053978996030771385812210405081526687204017495007650346072747858239910956226980042482110234400211275857603808592557653856719108403098157854453095323562406409545254333157095244567954234086322058783583837730551141670482511976223427763607890549188034434499174460493658082526638066338811442077799137364038998144480455482414963664826409525217028821512844301324561620845162283284812826637098773866816638376486871455929648207300109774437201770107741932421516881575038261966265657924223727835495921571746011521980593747912839605772197885283458397145998125905417455867629983328049005699673338805510970512499792854336000630276337493799572118077406972799793812609601641842821843831798357406703459518214615768833229290030792899282540458384442541335704127745683480780717807899363013806136458616979540423918363819975303300684819546288543997472898353222058087675078709609134533463567385121454533917163086733923219369105433524942199846586744603866653160770086965414481306173378629923953436362138233025610415244014440841562804059065264895020278295928817254768741735878768127613923882972849160334725350615702894959204148207980625349955548171421872532018250395071146143706553299440364516428079980362929297794888674226030302625974520003821228668010755703795489516167504533851316717933029076882133403276407542245953725201097790485441412836886277532194298094404980931053604367044192022407904691739070044800245342635049359795609453873960595090072708975559753297278114875598938095857368746593022945994520103078705597753240071402120703056544086401332289640825051568739980533906709519704205006537866109788704135521715907646612993031233171414177572953439173044954768973736686123641265773589175662244023519896867298749578332349617760509628350103716644754170538576818598460109664403999575788151658446907466996408030085785796345585185799841580872141307332230415162627435852407525423744150522839710337217939453537628921622503203506736440623944949596223203158211304909937957591501882355890208430733972589110719770365973875448124894282359140061473703823850606540895161054936291376161793462536682785849470977954043870982590619761203807968259621103835880603311985176137737611573194535869421055461382920480269439662461546513266307141055272803626175032550385658530952546101251700883031704737112609106691563197697463640968733273693948566736248542108362552577818050567227932329567896117351316569058319626568868669833452753629144700677985417496072386906426353108539621666436226233336070045582119282639238549088596184626667232137458751087127089278027463404776958702578246395415184747402373778464862764535421371550268064894155608027917167202067123653810069146350790226775888995219972119013047326989160077826851612725177114036232436322179310970551395612608921710577177631039600010673140257169255368230790745727899098488419680457059877636924626787173910737309821637404034041085698815960996027010644721381380511107541793924581982426787919656282101032028077042864403138304026330532412465445505342710636652823656779865757044453804333243032907034579130391422166473470849581376682147685695519755762999913507303975664839038817048384443272938235266127252444679320970833960861852656603443657897784819303259773903118726202399133586949184147083155930198126582915730951730366109866558052463315428861362346976412959039223857403919678162938770203911304360655206916158973847515537396259188507690316907819391253792404585597077754160147811023717632710407961964990962668744893556843331778409309016513441657948871593580465111895882161287797615498883597189906575792876688255554978094451664699030649393156942136860264866564696442810113896415861267561493477382745047526751227004089873441848067989664467364392910119043002718126362184350096432588672001323700692240348117842512870000885240608248117562033144637975344881749799878089207826628740352433775350506993692497587783446820645187110131352211870359699390714172752398014464658227271871870541789649866608706663525608341202763911614229386835868368382864998847744524821654788226913696172805041156043980480460343064664966392859650994151250085283544490776109938040569816083988692172359082122556015634384165541860681989940028611602903213058078410558707661999812673395909603742106787354537091460473524201775288866137425296138278752743102919564821382855433456780888096168770089478109686543710235612299773614515981416707713711859069802053112058688184887397058419914353999116364293884513832277206152226571479609027514539414576184803691214215747264752945296575410570049683216249942147502217912975419796854718297433353150173110908257758504749348683946055301217146327900565957913160635364524113663080266692554370546096634155277948320734632205574890225529065243940781418515936035722665464147817637396296147855044276190752523315205647834893500934962118618287555254683113772688741680822258713563433643520924221761297885810390387860286633969825229548142065272515348003617706152915350340801089441562343485174576585053532838604963565162927721763327215759625873788891078076045221040883071644927153655059346279113668346385257054807845436062292117037942364619545353359973929791316516135906706126009816785852223653029882851002178586713251566821640579731400016394116484620864506142908663384767638081982070911337406938507545264636351041136990811107613480500940554561983712295664541968930837358498111750658313751795448639008139234736627948314938879158510735262909593882689549469343751486509293413241393383617740148821030403763244593218952367689157271916039954669692355776638054032346434707501925714307066291083641664374866051062992369098212041403864181096590586485598796325243746640578951485808722526551865704994713359374375089392194375583148926243012587937906678610327018649139363933904989191433718181358808577679458427670269343022918992668222089477053216434269935923170684715153144037094315253678301259674675355402105857545339652811784494673359149935407980062472546317657013509809463053442956877660219186439789535735512506577932249753319097050565901917322363213169108509251499544799859516062996226140195235635421373603947144767908732977670964178360756817163114175084124966354987186596524426009891052263508310150308227862133550809249263720632496679949844539535342205892915120342494371236273226468454644661883624782005687523854901416623514774943187692475563735249198466362955717956120688594334627325662212645234024855888303995338296844948786458219416854453415068471058216199767388910978290130573371613114082670954039357441274857960244106470356222390706197420026173990432200858353195893325023034713447193720461473023560297069202455869376403052386927768693982756052597371196382658161069889138659716326558363266952347830057743413416374136803865621348633011157533110013288804150970636308503097196036611094757187832810677922261637667337200381061757048575417556701465690803841143538422839778653330238330612770402974494896111421601925437716374034302732125250672663375788807041961925299787610473866206154238554129236124481905462156658250282039012482167892767405240059407938955907680967270662197026755216027445515715604413701781721960130419328354693647563566897854054983099200136990968715965957249836897561107829063517919933107962138951603927251423323235299372081934926502109164863457173565267743908054799366595478915260246228168378399038331896151584657903560780519966455398511580406539486423182457109696243914697300523251604053460711563791483015690155542076960210517234342551985867027174247203464214858627853000764746140539097371443545294157120055065588615776583335187819096054123479965347865789128234473286746583587978222242744584501146453102274120657756982421133676210548331435834732189480627718509412467236051310704458131185332781781318049330635939818743155229416211370829970503680956248720752050926547971004218086388661450442989935639563339249161678685464867150750915464168342640162374208901721065476322123910527913037896747545674179297008380563644143621391114310362229737150488753321403656907032586093391653105370738814083257347394855615437569727493173001258884708986726605996671403031801321936284133919423591604781029483942468777877153399534699471830393442764989069736739768587019450262565241367420822806178995841048970409776771003515046063364738260003004547993559609240395303539825948339089296073674805228132705073210190325944956276303978396209454266822379313287573617015910188650393065686403526573416161905378700174684106614692395315673801900250533276362745848995015627212171970480301622691935799129108124406209027406963637130287672772284555322914474553741862192853741497757595514666616441950240665561568337515864010469114265241982280506669860031549117831019216432566377769781393302238346375457906877149935082229364321242173365250127730883818215289345351203339779521111537760105904753051391494026194206809980729641402857002713270794428028196212596832677391304743547733353921401431934754465462665205911820415561336891244397982802838466009411356917176632479076526671376035340623646658020473345253664440073297059754423167185030609106077138894471330708420504722614626265669207584350602004155228396140867495125639556895099199239265315802286088183625276162522764506546285885348570904228033950112986683951392843925166457902333573436875191992823235033370818327699942306463853260596790314565939798972019771156563691154134645403612212480934556072190886198612534893234850912605157478767958599593417296106411061339646136151648354081406000546248570849491370095711795640702653961983763315133953396302923855893960485060988843028826353881607109549357031165484586338245309256728418797704792528616174963438562078319771169644495438356629275143552923675350977832790751363679387355609665029961340906964822385052850791804542994712924917391178483013634013748657232825258783779155635788167600407020934013301063891952979516816474476096439116474960740659704496268767795393765713908501359449876080104687621725698859396952365482385069238291472034086298954777064356954045833661637012357597328864500042819877860447202977141675267690708303125591256240066222017692543546378553988520087317760118081506082221611325636583358324560924765645410411551816110787249983511677558261261445857448854783628190021941648739617183208211993777407246440421539311884921314122060524203763897857654925377317192063991710488806711371422734544277481893487745625265574934707210169280650777337693441295306233374833069606663553413963649851094152206266873075994631742801628488426724135120179010255596155098299340682774595854338992186787565262370737153376813632242916253575326071630174793717585674285189291080740661418115032229576535431619539419424485153856347647460651298988387276623414394868833621244059140740286344225531874742127396446626217725669314171200497766509694678800096361981764507305860620934823824276839202203306969768871035662665735465920329784353796801205873062148111670363465407060708240122720199778784118676795598641973206946511017952314018976847768474937713252632298400955973963591890741655642117570889057953759342993610616624636304586994389471470836504936571240103011935330661732040876177670297432858850753569996377556287129703396998016186845912676729313246134254887832567247604413301168047534919613422830554750065777583110055937081218561568865205361325107674877755614562681410006636943182400068635253153957416950123437278594753474584995242901124638443845375872346491259906435060969909808336246686992447216755333345231552777877722799704926510345296004665350253620900520204027349844665220246278522359935224322560732954063691003046022134825928610836269306917533496150551304865670874923838150459215919903901238865183580519821635631947240919752156117260470285091575161476599959151727885464060647224388066553776082048116331689137418744076588626369629166077736869105189127892153699595602286240325840275586846511376143828398821899247692264619245529147028341088088742628422616911722113540219318528737399621466309864416678957548052525667658570300635805950369055970718527277146574903104492364193465765039085740194105509698183402783167837142574754228738461701351394687913275257210572737342562924928433231850218547214117533106327241100100863045250871320078435915247633667549331509347933280051522398292959864059755268495096737456227406986637824487678746042930667498769190196988022822552854220601495353556096314773963850658472343662636487698657514009229252390533007205226313344028537272180018158382554439895085462284064044234240390277096243172829602416658230966180423776511165628551124074500192564007917706123501396147225906415150009076504156316662133271495617725829123066721119519853411146381160285945441445536615359528513165534040472879524693182019646584268203746985577260371842569718370275596054874211010041801375195195517216768537019535637444128034684559686843820092074536050502373372080421881248190313242841687910181951049550638975753089596577733507823052539696669027980780019104472804855245818416305134677045029227988963595865263149784668220336429615667660814162509119611000107985189864862114820655101225237225521381049304401187335780989480251884370661126406961922063129764733984798453473542684153534422621390696644934624189504168379232237332706469092404439133999476725806147379337484582297185863675022800742618072705257959877173781020649766258394132887396848001706630307192437656641293160082207685073973961944123720350206753950760255741500954979810764594054213247037301832320908629508465125586675104588934749763418161188320877907352184355573200380856164465137660740275602395676686865209129378706877334982586956695410847663928071242625233403624862143146273623951454103071629827039375496597694351789743010432178336412062035135522852064606767333301250219868112968853937907858118489872851113164187550311360118748501195484742178637203993215292523892739912687588453224554368926541328812170120583655595094080284057051744188642701023132853443709991613883559580617073782199917524732204566386516741467822460687202723436177281648380386324040862181362692615117591381166494870687627548260974545975350687698975707539605389464936981235266914979533088594200306509909928992350083625564636794607886493835594436984102666387207297012526882354178150019692543845093295656937140731914765100820792423326335343815829287935011796443537529850608798637040748647412510428045008889953368185329312038336598316662350452103470283864382213714333422457370532746143151959503533858925108231386514426617175093962818723253464654248517497028057916000318324452737169356579069122358629608500672080943563559770614120174269117188844768948599258748227925797869300131248039050886822221886875905587469366845150483367142394875683417380651932246092111361722606423676272715741804266105726543364850361753127363219782638694487998181856521830357296136703926869735348660691262579552904589121179412175704853309874467341184720940000443333784577647910204285372956832087324465302291783355012711613292185888031623352653154614935556931138063718690007215017477179224638184013499784010048211901663289629023491172448052421460396627670141876416317558296543217216821200196165017746825074414573693760635873677963067764259584103737032479108194862936993697268211790504819127171355563520017352752537317322794259807408146980374226590656778108604291259708803578877447672645790077104052718584324657469188904882449883650735952562831995177979605488720119539439279025580075827874803670574732401890040925402324953973876961749090322515862898343411851837751291052211651812024664875741525115735764389132503345652921832004505149085848210545188648986367554413767694147884483270134549153532473441559067316766507644171124089225085410648981557676971323492829137904572944933483777243135829203163613572057259573706485734383508785249251938413821127300867621388726141435527253028574585490926105564027625343421418245292353105406107279526461954182764719008153486359179522028106340625345464964957605259302574026686388298328319263562398646322075914286510308094337707740575011610160301603738815753637906371962933705126921518322703066252937568623842563057882520587751335767330263333091423511544618050509256172281526250433879083899883571784173201641731411536472040831849959294410089989331359063037824399062547693964650303744164875687882470248930075045613840676104573942843726232443927608898931669170809963949892271562319524831587816640500490346201919924023976473735367742349522567343870925741665283368797990798379073147469488273172066633714281647198449886319844492836029358883489363258435020939709360410965532381698656848549400840871484626542889837578279347580164759955535587919527049669492979845273983806009150421496433279922335450677621031741952674539186782142330142039262084347578618762946070607002693423480819477302912224867843653930632111521075276816696782672848908643841558768434881694150079457018119630351368181310568761546060080683907175397301242014683397635336034504803505943178978521693286621407973027106500671229564207043043644410236293840830524142885416905759886934608991087312008287890454712745461336883398100317014631390162305469741839974222253546687145598718857810896731630242584731165996540535126677684234097393873648506754729755309729141187987653156804857787519831375762955618366610893976238459780056145443232795655165486919809475710508973290500129347831960620190551930977161759791893096486066284045861231551302180780338533446583229823071616692705496749236862366158054017467782468786622867377727785452190520582750697626681519530573498131834224191637970317517925225940803068233491468080661952996811718592779479563206027629823998702187616295920302771429160779005115970461704419955981282918525360199538646339086279763466988513439214580537884535841906464522261131084730722741581030475988937760458700301434400296372821385349626239477110032332115581531290879978711630060555678484078451294575672913703945315028047904993300237132309275545637324610421115252198276105835732238258277854167978699748215088740506511198020793145309119947690336374272877071480973915235879340151333580071207356292843590837116489374386032893881480528144450615435308696407954077746340316274040823092434096935590148675297322011049873288440548937377949854553579398166363010351976867555122020732440409424174017477597579964016074763991527086945467801865815161891491148468373690839565723147974095127173032475275030002328459745603911317045437573673304167317574882194443489927370266306758948217075621162697899315059334529417691373010792722568572451278294886161071382547661238794536190572524561568812668718442677758992711280649144494660662204523559742432849539537532246945515311472206530624516299160673543059548655205581942818863064120023254660690634770546583137574888835652145776977109958194431391566585338400781160918235535709943206076776340307727128773331388857298243555335900198062280687786540784993242618076123101682302468569345909916144149925474105704464863883229344035496268941397439429753409855634459712170188742437801395303867465940597779391437465321880807383753427074370631618507962124957495243729727972830839010401733192644808056479933666806928873206862160436356566976656306973702812005192774583172810220794859573704220491712335043185040686096932085284750608609265478455506299628956334997624244791887397601326437689510353117550909984446124126069375461434663390923787184973287010754471301936756924097021988464540756967867951974023642039846387390170994293901307580844852031298301953971224437791252387701396332230125009276260560999295913252711965614742119795155292454924456402109448575587587245081983346670415827560883304716525252811585146458567894791757557385177182616587500289404599108483764850300722830357544121681347284918208921918532736171627412149898142148235901890991919500015758008126629733318795453082141859776710029912615182954925879674596454568624903053341844999711581193369661877197289788291204445839418054091141093469117130579445932004340600310557535882636118750329211467806122929794610397446735935894556528502647437057229039359353428031175870769740016481480613187827481964800759021884013361317471900830055477994032672811911068755856733190660174525169490796837124078802370734942044827002398219397960502174785298837024080397234654905626557581298722571348725085476507132498496706496018813722740507050042127021227790410495311148499503948776543140319405827011102713183032657681281865538446249218221860804981457444435411210113857172632922089174619748465557386154279400560885200454307229043605080479136500086090948180480326555872265693501564767402101952652031605483553441064067801808451507880398017712920654711025115603190657223083845707934039709927387510015674025154452383847082070145876206850371939567078858115515869393125030229302809378401150541558221065652220435847960216487668178616004496819401716707875852921899405562732348953870860995803216754987364080483968666412619350641650904698092160666204315904740352310052308152024407784181317094925488269718916328949234646777561243575207231772350834841863268313166119359608172076447553233684337579479158087936641352143677528973545530804794579940066430803485976284151379692456633950972324095948037178968119081460974846503221230903094657977509163915458981455345190792004911608492730178964496076603975445850196577535153187079882960198217294180753620416839839603360880040558907044025368373591041633216847154295255232599912105433398324963766303538771417312253240370245976304660256259502344642504839839297957106645445760462716088605827089984033891507268100773994170581842913290601533002924078303506848506220624745938646362425039764831065925665746022333420443531276802241003316190583558763938772298421191094556500608480308489421626943285845431015018852336837744033180333631081720270710993080981998965756021172754352428176314991723791890038871651818158269808869270632555153924608492895112497289648966305952721672819282406649003398551882492066409721350227248106270606824984109119049747027030437174319074211374210639852168759727255921466033717225957009906954005962908839481799226607482469087736155059190714983824552513058906524725325839862580793919904551427339554492007278413115125470101011461550332212392095496443700700288431420620823140918917789329429839505756383620332654529097399557348925651387393976062385524283957326967698704119045809549991360854060860489455759401492047440878563121773479067316482453088818371195783610244927191111586488043266156304089391592062693033370225254280627259317720782474752444812000760809813248989976599979177943821914627795491253907126873531163315458457591030725008972504560810465492989769549191357374100684656232559765960616880034692188578923384395543479988248842722825161064200950739193887874664978818589108990883428700863910584753414480433326395439706314393097949948279662394552752136072701254028262181066416215301665289695583018086236881422601795482834862506365074889784804171629695176630444028992397814401307091036492049636109855843032498821453146880820528745958062394509246826496733383237683284206565300990732087481581392273707571310480748310645987793194997709589725417651157685203004410652646815248183689198933634474074274286623646330505208200360628736805831639565115286647544490625280126638455873269618129531742274139250817491272718235203833978824211650864258937013016401110405570112105850226286805476884787220128466642020360151646375799615261228774639105876893553765589998935735272700259992751170770787622714803651095067633933937904183687683680568686058047270690969981022562972795780136357663738154286858146095230219464342555504106031929407346356507071194525004041701634508781457990278670431100844749752192669826312102042046210476307122918510844752962347964264017962555423200518547377786112781703532955309533664678783580032015342560310983845516904301705140707705958970390677391229334165594608730563404960168710112012768437171187758647793643325083513334207305768905956310314515863497596216960582321421678597382822424113919207796485526402697694431725121082976755604405717293455411251746779205166012502152174140402851002433754984941087028518989058809727852434595289778786138469779334144305545428037557097906911003928685644142116373226599184596479605375919798841817707646516219794150911669868721291995798196495083417055325500527677939467505554249125710534081761752218351250621005508920395051793401590392219870483784627455090306784698963889639728868401795618051011815482353790302421393244245415909054138358587997440759684302011432979043242582743136309286343095467255779777766782172255093240939947963365903885102732727347226461613143415126073827229341020932860933437847062966791166560206604262927231838837666215640607939572490338592195393616622811207178512659607540258245561577852534928905248220022417630827072198259119549973611841520333683891989581221223062929538121384588210745853329821031317449779912448245550198821266226073067293805850886352068599213293742159755623558359327517900236131465529287036686166171950245240022176092734218611141460389234801306627860761089715605703667703203831153308587695511028213089100534802392774647184413549371484475873349272940357834961265446738757345676144588100795635321847061526992241309666536348165143410721408736766269290047454862560209608681997638960137075565626093562095399203348189379398005730356132694499828779014964846742789207693460172587380572664867248589646416174255582826155732556400052980981292987246872932876384622630041648901305420402796381839907224690214257974106253563062028640508999711803070906667577785683762035398283203093484016696116694931423833230730049742120766731790087309535689244646852013246428698075300638819335988293455308580598382785276355157569980172259369889900632340749726107514735961230076774005219583669808647203198651088614677130032819491506677983268517011717906185065272499733634627774516238599333522712928963524576129055115288659129228750439607117820096559302006050274377862540240161860805136677477437247593151310536726611236989168538568266172646779580426171159007102590533263634965581498645921033330669262761438099943737037823014558204669776917655856570485045516317139516164372869672622168419809558070215515546428681397336326256351882009185655190184969232506343010245416480363628046078994594631499319385490556195522161400568296933514609519314212943193704724201707145551840715525197028432165397912995887208096459089264777753392064797235944242496385398212585766510978298019819304108395007327357588037035239352796457425878220766524121531603594892916558410485703987513049224033019026611992995899636355482550372062174106228773386786853331774041186779448085409849297449940338402485851759902343065990960111265129578862560453988524793999722684250031928719568028803764120758010791184279244572514204780583314954472906365471994023640151006601108580107620770251200991339723008916644786579655777478203317801741032068677398517909154503141377400722266736803618619848480820371997767569878193733619594578639327228618032431879047617723225126191106286400067067967851916095008807780025562080425803475511406034675455590694059700151984304337426749192340581033433606713630851392704782583157838863825413622340032258129373490597091197716711978838243924673223685794397245682815196456768476221813835744481265472219317933287984774433918082637941383488766672095187460774504829295489650879621494302943160137130332804674708942332027827898112357422411933788971533020029346865256539846345923355476282676065036919463675655654215324805715954012641678750988851196512756843220209122466289585489140024517520294054746652732605523255394340466513629039152090582067530759249869217829099118959007875655839238045980781457514449045178473367324585580548135579027326141018918535328308769597123393489832524719114300500063500434154373883737753404177660429395470444802802209878732340721572294123861952273588534897341664613643116431523754674912164188809798580871643857033124916572376148354751247770382434967442132965648164463201534438901898778783416930045248189228209266620347975247544665004518079447174660288545407951554021903983901023793318660302812657848606912662434424263303901303649335761164702063778327299956301391249895179647548509471627744426787036252849403009600696257133694204708044768020208930986966658371629933117950448247412601471707770674203363850957779242248534947022797830138688483859876130217563853757757967728148269755039222488063659462414145464088474217195110974412933262998334991087369951936585366575281108177795357854934474023402812551290735633602931054522240774948117068833884249501612949786585672202621320450504538908356359261161169745607911548810391492353929418202631655350099797008812218856801511788203296173937133766379300554142598913131642074618226051136386861419842507032899487414583672787067289871641403780063856202718421918047193712356335903265046175614057763244504723573601929191830098409392294391699012265441231239799270928191123535280906803342864070726180001622144047756596377835048902849926262549772467532018343587111099201523719414121729814075002643783173222671272289897257759655369429994168222976644998468088842765841854346613266893367622728409913523538203591723746192746717827767321964231692531477577119403707828156192192665076530940400545680953352491324259026095876181653566549683950171077006341867818409875190306917315374022840733834675276066361685734942566490549938546014076447381689995700612621662119929685560636162532146918458977242574461393100498529887477718418627144645435831335617785311609492886954006796228207529773925220295572045176644973537951212938447822953329097567731345600930022016581486522522525951952443066645189262637844719632968493717274203059509142763957388735215841182870167826063191598427152481888891020555923910955467816225987141928890003913499549791074919739756257423913154813229789186614044338580704044984376339396809172111864966679862431268963672978181901779593321188124460968023106055972419506923740417348451251015266924018809665007331189554493607016833703425501635642648977845213234457706619882153304159880222297600386129409967601094580556089925368247226111736915617801227307399138928140336522188905330608031193355395153344296958691017517418315331554799362394312827070385835825529731887922694697979506212447040590646984613573243881235247118360814236460620244877641142104147071999662480466869146526945933943882630843078873015986960686220832782860398459549197932758817903659360660420848111867299244461193560035513307418424542133655600226289318200711271738316025573662554604766985128875500642461769567782436232413981621138110393932591038001037587802596890811475551034491054335796899243776091020131542339624687693391777451930607796198392807797155482522332820945615549445042898615447985560884137286747642284890541422736071571399698020954543565465912158761294580206832597841578364027142392466497986125979733524981010375255923635393302143167320306644141770311946051634588395224954210332232640023119708676934836476392562379429533670865093204052292742706776342760751670280729335947489830824461128228640801968399724904927944965206593177431239121994697691973095527291400177848632640194918648088553971473383253754865693958170015093101089286156644730619666431677830044390284182533898722167044026012297977897046360750585664031549659451824143517235114134765232563166205120477995989490618416041945744545768771992930998676739775688455962061989588401489286999805170896143210742250603071425363453528146935378218867144704430870092713557700811581911642771072871171199267996398299034828022733570097226647201407970098452883839902844816857842390001338179541763312009569197928564975946162808708965089274910180117940920859369677889005789676502221060372239047731872882420162527612756946825331900475983268368353018382961895277108827169709493308695266354188298213152965473694127747841785433315817422488387124187765050127817607627329533363607182507300105255421666660358278206560693366042223749333361386152225728044475412128996704302373682128948247004975020400910151431397601211354648780240154104477600745687967848166132023100122404737776980503375239648235711099321757958745803292326989701122270246408918907372292332363347143895757564659861693446646415535887612546171001287224722195832749225123909782202107980993995009073098898424641931266367307784399967210838907405359085149979129406800866522960952307850321023032237380522680368871585155689522451510755283626564821017579018442116635762395776828965648419754664565871948078814002369294863377295551336112991530629175206243052700036495610669225088916345776619727305698227126984489875210987536202929819285774412886047516761833655932657277193834375830407194827462514246624433153468341662318953255028067082123762387450783625025845067028528802862857906014888434250584860440220640685259606209013285575461843108016309603748577086223451505449554256607049704960577136305764235967881559799628926590985322454412443628820210126202791723660682645589484362529424698583920866619396956506318987331857397412622009576684751694348547590537846052131691843322023810182900922749639845356948752951581333898892068994533545419586415418497864215583183868210831113763930069812130630879071706120648037664109858744821691860846252499699828136500989267598133347352140385454164133119825519237855561975486873381226663921584142193276103062186941608426926882663659670819597920966926014232286728493673116814869361275775447716941296192522204186623191586729560718383289132996970853537564938521349596412868642762870326355139507320879728569098382569830771404544434624832593771449769016864307787458673204203799336844944850116618074873965535057131789878248750200648743935256806110157346996459943320872677559546596532463025656457485061746465958687100734727007329426958665441833518414187307347841761144058393413923714938786371487499681686384683009276189213600046831650466016114214891860643833405355453683255319045401609608777358192536882544698447547660579795605411079482122584238345024692127884444351653383169485320157496023689090105368546996974787085911041595181913353113244856727348117663741983585732066772667480353032179263623130827030836959476212399119744823095591349007272004784689096164466031079731475713134473802177624919806269979706939262370073288674047060409622751171788296969110217021699581256532854245390265520180528726924533659067550995206322272461721628589928491794375743919816565136608177424481979307133531230221876667630268457187012217505815711552153787542306650781989732151669435028058169965410461963250922070263647715564368711648236305025999094286952089186006638220036853484789390942311724005146555186984717221955571856030545032543827799553876338422574539222763204629568888997753491112099850587049743375710822037066483770275857856991468438501497687742647939664556023893859512491730012886285328785504557671406466539333731423943491759136573125543841846475940025264247609583616000400390167423760975292739012636037727473533122772884189200156469074548159613951326817339333399032749574153022203180511350690904598635141442447921127029667088343918356058871459491686524211728536756635188381645971082330454415066023368075048541295334554915558596879675934277109948067855624603028508670633979930666631884535720815260316204886840283052326366696849198272236669745365475410682183051019260625743966950729351752538072796581747482306476707155544249920042374270841314718938667859484033606975889364793782651218755666248579921696303101248441668940024697682809170372242798174224911804444504679778251773022581700566793559643311392864134932917975317675937724009598563750247029551280874817339598715400983760912107383866312671333963396269769910928686047234857012708490364189004294080178373775966212787321288266464153603464061185006266649036019634377971229530185403717862768351977316229932556255118921044070656300404206828114585258701571132396104828184730319435223649741698143468795600270174232556801925834018446116401616319100531140326019359790169496857273265320880267966340672995756460242386329423212711525557832758129962387036041487541968088452509733950944864944664799405194181864333384719303190970546740060126952083594994901540461459444263407489344943253366899651916478514175569964909248950362376960721423185528968032554730641196554451234938189365703599271684915229138058997741626669183564882571147533995547822012858338020804310440147084875660714248810705701130534212648566305555498040378029619141998684618186532518457435956440130043231679780160724766305452483955152414853055008037773166611304629768771652172104966064705071972207143884236026987831853500535606627006978013165269559807886764503858686102868569481227160427406344457602442270057243524914041897644561197541369045136807693211116201891663272622455116620655318550563213107129653423103463781302902654429080557480632313611834277463803146909944979728807455957297766877579936783120584644087904116237855975634547285503399312475835859996002402674624303287331752807940046417436118820231091468058654697879297303423841847755562373842700675240118721031020909598655529692786164311515564654725914976762562007099785555813359461616200541906843303857259977514809626033308219724960549297919845311714155676415167733771319057496459953644161467183233248752735955816798644406199750838493533221479572050895984684768066883306971648805942633146752054409969044610413256525241041833709528793404739098986425100942706863290229013724037874718376949156677765920830692826130105743632885033717382573430974516967664782646131971422505459203453052075178682927998424468177740233888284437674808551467780022185634421471669500539046538187737816616382104228619950747694988179284464091285754672981778621088727366052739662419353644924920025549344588170113451813138384756264832897897124824529501321999199742911298188391290091311899686173218934107363970550162420387243422688224577287565086997264403969527081323411397579430481394908517997228798730904494135836385774714918610010719460043958102424648808686122353612696344834285674732986675286984130460207451200662500727035641748250874483821563517462603072664249322216506837650236928589998984180202380545022908338958374279418576023365829218493604445002891999392575921766348804319413941333122719299928096913965432990741002659403894088048940778627238797294248662220756506831981773956974935694134338413277909054253804941792501560902360830709592965750856478786248638439615144604977683963217937813556813109213770364871710767433947083531983226655254890907793126831025991933101167465099971545571668462229444562116992398496829506244913994456488394357050113149640903904780729827878326795342874502816237690706572503503045691079603801362696309335486935415120518446720142602928039288241939647074605011167647851519316508558720047568731569162366149279155641028325275223600747050963906476738079202258584108481610337636456783815154560707292528842767294228553579454996979139195556967010090215195404804303477704917056771922303396832243185152426724621423006465900329478077076394779711337734826043594222155027903057305287189167972331403058262588423064773787064577320224718920322098625630433533425481158573021348048503570519159949753097925571554733267397450948028448226276658752724551431001890566156685890666487667741584883704132934205870637529007434040774101749080170864765570355170231858524729366769348204791957161733949747967752536926206517809006868430936134849835051535494653796558650046122457835323296840683465225022184201434031876440023835768258173138091130748218342672595576152947512021186767816464727952718543734396845309323383150970929352995645677600264166001248250121847654966145475982279775230001695686116947061121565689321259835786746234299854926115086538816680624256338710517946295297596459621814520593470917389458585856444988543916156757465659285479339878174933053038656475325858125997396040631237678227964087463774167807310910804279746149230065228783898305184362550241918424541836617320149037527288820855043296053846680330081490892488106100868549809156343373146901627107586748742448012890514289651404888320442340950034569799703757880140976347836203499623985267368086114417293475631767607917179625814860044302901140947733279117165642423677993900242231640730841389037502938778731302526007150376325219049301335185797625899469192066077699949094706084120622826523535236797116872129090246580841142207122997345994032138434156164665070893585074484312320230401951204522823407999738093178794386357718284484626467852974824927681393704337422513353906462876998340419542118789189540536207781577316059706020162477069262697162768390861251028822637515704511031582640498084197519019876576023724051849824482467388861517132644428327686842002070953983964130281537670760783149168691782301091369327583519658787295390182807245634289528802063845521828845364525525324376901504185815308560670852257670186298744518204152664107215988742127416978663516905166329307514402090513791725095068087045487659140861461034140478906896300023226928575259705164564267392059979752052854090524104807015975306340419554428620241522730632435287717321391541892478178056291291624265560073728101729597398297842756339320756237258430551632578191125051675252460699082304790718558178074213192743175050037110705862517817525718388644689325029851650920281751484028864420468149736434136762415603309700775720385778032968236291020829539472607338485371850365336966509604012062246582932557246632409899987928913057848170160293705130411232687407157458554946526023050316847471045773291839951770664692938000272606402742190661931714906483957465570289018561695572878400664329234324455871656929229111678830157980710375435561315436922052040639257707501117905359070143830377232971304128720994423406649174289218455382614518606251873505945699722935421490868909616966284837722844169060559004062771355371243354426669268191549336740047038130013355311088560846276258019350577062368757358086060464247711555192446003511318804622303368182394490740133375469040825792489340761043966596106136724392034372022396015790824762409112903491008918619390483945657069943891930429731894964690328947699685637647969601641448268685326471425850198614980237121460697149300046674481893756885269812528490958145458047795717373262166749649150077578684063354621218385978961775575726086032038859691970407664275919697309761796862196065910934567241041721451874196507811957818583188685676230265662227185331263259355247931689138493094552801465232471636937764020260567950159570463433165486511075843585270676034712868510728595220042656324109648311069280981610926473561616653192023644025565800395089429566924225934376431769455597971426135181802417213567778629792652962232612379805092632615084420209628772067419537946681886640953016280947511344126889786042368679527837959284480006449843276887888225315114119817693443096662132231787646178069044845490449096726874078873314979962932710065105196611133495905436223045747221015597966312443498674993766035702629007035716266140472216592042025697281519180184024647599635918190446277449544904453098826032716240328171851813798951222493004327747334117912895755205646432992792945823478259947017210183750461776123468638066809792617866874351152537988988357100306596404534456251094401203427145893747616936268781895718162557088160971933898169102967908790687633273432765746945217022450968936564617435694735706179337419163873285020270549139276827291509699498527816085897782687927844076299724401676224856613403416303316791496845730715732772444218324762275123021179923801573124599035566000490393496928166848946860999368536197715175401091642527633772512607723408874218574554301348292428276750224281998585125228492779915210026723104587117930250978304622929326840854645897771630083266320736024767506625836791799299282347484645168680875326939535275046879332648043407146292101383389490965802229342897478352374400571438421913467079789873786068612373882168118864166276599537136139453600981300109091362546918998886334589960567289332917276502727790684382391199711610783395551981812499789000455019779166821533837797504750753875852247688671264908586733800764050990311508680020899059921894791180734553726148810371594329882091401558151381843722187455220797242882994660456366066335440618924945696968348964910538724683490750126861943902983089791008920611764565813177843298351882488511234879360344107774368745733144684594718368463706103106834123180544135484139979322852613252791680297509782661560633769253146018657682141180518448779501430838163239769297022145456592883509378108834438407169036984012863837931989895682094718398246485994775115685540529003804275385374549297723063821343817009144442611018732465905932434768646154215767410475759156116392040086372776983052792215474985615534580331540451192134703527504677087388732441985258925308507918269208828440625852522013314643709628645934958285627239909201313008648353451265884117806605679701486609672292945779370241794937643623296003599225056696611541096292764536179715632404499352669000817243159478647251214083294949594408580562718625237823373256501051549083438142863440045355305769339153775303359430295998718118587094886431003877819127990215070261144695466524167569925500259693880537427411110848428583313260459385793785479803760468623836367392525145514686747484412661474269733997174887285471458969000120099367173331022566756715354820341513820593177491115369428451993967567211021070574540886591270945397822550144246862125637903972570025890734920848050845751296041374108848964501772678295509648170765189806197771615332475086242948231734754675391802341065484740480808838552472297165839769435555010807324939899866614018179332612543861380791916099484379435280769641235732912345759487228062117935355958326654934091662425368671116608262352222492791409619380118747480553233493024382926495258425017357618948757071936539442753702525254103336528718410714146917179412294996781799563541334516961103400604945558437720392066838928279368925739526786680331858037095342507694865698964190794401809431825373089674186321913885777208298197195557162635813132820640826140533999316727091673494318808398558843638647317465969795128039310712798049570255668091612371617331780234840713336472681692377789789101057722764604985177757174508404454952954942800098223947493087967640834897224788519536244411550799566461543399861608583128063115095107638654805927116669115634627821667498043660335977303166364069546891485275596319892318539532447213615007525801463548783944616089647828529310243313043385794591560198019464378077656592468074557351709600225173141882882637385157512415002583673720324329010325238581034119785444774253987643011493757281937570615239164516372422480203113601870879027874586481027066291307457684887893888740838674633146781781646465790272045808095777885529914262928653847586929000497932777436211417637252414694931259782791527404746102069616222062844518468524649765476802236384455940969649773546966093091251702834427395964900160741538840633385222011077675989023232778949943920713033254091728823505520417718798324562152080964071567352437796329897569712825273169665491644676420182201070693364455987497003204018828674961774188164235790481835323680053954128054280861561097768282294757381693272132229536359327440502437397113103548229382498722375853926680728966277582109811696338742665212791733388383294451051371104311160068107727716562617704708195880403127631691830196787151094153682008187465098180244629113429834716237078942544356359897043990712115806671652918227053044910160966640323247020429770130481771178712208286512600592858767899472523933789276766760154630025202318958256597770498266139039611716072284655409476474215805962815739218716749543084211165447234289917748919514137638919052793433237007009637482227508106041589708626960017642561871583163080999720203256571154146478694938080829366553366306531182125968565733152844683914701632800382157911418792983734820821024834459802020213814791432028643076086563291658117984359962942851901569511495242216441744189854578661823103299043843078447234437121875668098315411212439730150512575353207417282139368079474385032979718082873218274931532236926360712503800561661478020985804837809936139709880409427646798509621030302870264290058515810083421959972857084538413946532405751477980559192388311571078661146597824435596160104577481130768486457903594724362630294261819652092476806890767924536882289082157830396749657540072244510837981548837449699225413474922766271343386625482455650139277424409330150967565452477822308508552525096676455279614416528272057032202971608130702940910788778128528134376116582286432463918643329173121860705280210664783369241386756192231282580813344679604373386179049230941268223911707548442328746711503588028196273679363765867766793618700854436475348060566473099127390168844023107740104198729392533772445191135355717860722855725784395194411054687061838188952755427321667608274450231759443096435113627305020368876877939288949212865746770696541484063280336670611289591364421238967564993828764067163339579726704019265231360677427421545781163702708142948487941572476573472306549315470621960611578385807295466178022561963185436176148595302624245948852577379495590768979519932510603607616440995875446584272648872216875221521187960973607285139741438354724668795136570194963232214575146996091155959712549156042993208202009750573580597725024881809051610184852517802763076139424417434152662935059767723562621012863359873393495268892545984400836905286563873499774763783918126953718082340007365965530667609213546711635115899593333804701414457727289432927551828303387017141311665839885495347917201179021785941654549944044147921761552311224663272339252310768169366700943612270312741193730311375743854906349021152632976926588069632952919329453832632197255079076269109841437567524421711363317455376210534453910940815220928336267060592023156979998504520079943108022456688000365105647597884200572336001541697149013314589833304097822938477137706717944502149718139941159390691231542224306777942733816862908913087154764717861266231273319991993986925960582550720507208105302780382188255617434011184355547335816266830359341146548085486574717644406675366520129802030881981816689593021923145536883598960706346005752604263042321948190777757552711019503100463847133155500730238226987329910039255513313603431168670786320690949254411364619003878652082390807187978991830225227243948219479479208203406676558725525263637741841533073821591846158044844409608033730057709766900627233581632512466245588279226461220874241149373713449901709060198108188000279299297895688414869579114300451847601628036889608376542741551238207045739283096562013650216802749604782759712530944693533941951953775219748917585869234795566242222172082427880099690411311425249932001619858879445078307227614335770480520686920904740391471976224872987043723150334423818805832737564227725770322490561919896813064508674884929509010455531412326729608036922224899293825355395731024069829015880002432370093358097903348743301927499120032994543824390367823440979501356518932116708757845039113391373503713196625163469460053998993301286117975868757202938751348473112698362677185099263771200620767987850999195921458993368498503779402176497080468947945680526858765892375940065352940595314951334929600223040953622241594327634283885014407191350731649952867519704936351694606535035154282890365596443058341473863142824941171757570898861118200100301108629258512240505557312298652492965867309405453964759104895698133427324988435996972677880840959933718587576684584373456067379165466227917959925265380408068562884105383032734530751780565284254009966096179728738100642978807252204215106732938533013329117630579624064912008604225556920546271780250468648134372475651025159082054375560581867101200548698244985102042890277974878066486541643344887148273038163674841047914217697489827369574918727825874576451206707084689905610057078975036210718508993603284501741671099365716380153661669506108582568946036592401849293005582870038593249884101640602504163457606046335975816913504766945256892504803713938584390797337003932356160008582480999162041588716759678541622830321949708368648152156280483677158251177868501397664895098267818709729327705733390879581752794216709741743533413590572367180401838841059852442798501197178576032760470823787187986279298262407747791499584006140313773355213851989813465203446338132418884787856857136307520135402602565416883627677002488577647188828934575434899417735452054917712557641368656209207060017352133717727393569204213049457690556810431088247473204084105676154928746996029808922487732653007401714966120128631803079419488026761932469053145139449663888842077014569872218685831800303629578647596511802406846551050476606646238919229122042972379061502528319370766369284579969159742900133108610371689634440666953831248237169548992938974640071485660577475624428726310604695853457159961765724902477217565106930602646352463246299655814775831853626687912096755201304209137273075070651687666147149610732607250447615067354205759877410628996862064433180250801401250282559477486965606397530763767495439460133210065120003526316589923433487720447675445973635657214776298098618765253740356259081650044067013239223326279032537777736387395250480697016343258510383959056940921855033356786173794398257196870358646216210896485978572790146054669129714602044779999875997042056068733844829894241868855448922231645781754703641176147277635774946795404538908659742772964722776662349519060003057206793850982630156942190697146127933706256029132679729462223251916868806385550360867330508952540709427839246072839246478225862657539290476583885478063280268583702961622111687549498171341598652764983383849126784653755402329152202399380225455255543980178128159798538408168948577402825738041614121203960365051249056477307828088046255154295921387036607440835939785242620254975934112154020309285428432741888221818539016686435587767930837850483747848035256081561632454227805599439983437248122825084860927486716006608649540728314403603475480282123405908143505676542007039560093336512566986844739742452943442154973560657798603991038082480790141352858755296492367392561463389013147982148138423823265369694679976880301327511605365959527101917987766946409959135123445292947648511289748480021789305759290869514310042795139952932842734721072136083801087737690359069466510589235734218873403594090268224836706604907057421177892327019631179616324697000631882193326705756880751431450868509848429782030056105510701146298164754266261860399823481641136050085529921193059356676276083079535168001229060015106483079794835542915875879887405488484147614048827710263675956825180331751400223641403601017663225490128589362433531763123195307076542664770488030145195901872318360812242692521303023429154951609313830306958138998342084605793796595251266378472029241170072494739165666601862473334261699449954665443621349897955164301996121910675465942144246751889380942997705739337096676189294300331908711955395324518664940586149989799193117987360412305227803176722916256728765918999207043112700978351561822715404459606612990056320175037252185895399505634101767225201656631679554777425685983812997647163482404853448284203017506943617767155301373083429415077214292040828938171105504883605274209607209282734121345934901871193230715341368230021551727655592739176917379823311417097087028292115161187673539675295614000305144576282971478552569152355202060092953086177850639462400910708187170329962172413244792318413675677552832796921876255807555753455076334008564898111265747988392281544412124554106149966720890004167278738547720984202404692440473627865547868162542718606503735378467764020348791687953567267773727942473617001262454051557038961611890581681496412011849688453928081500107514996697984570014680828236057747960560405799766241809987678336167443024041313184297363923360667456694271538851103768799746531396303260181249231218999974654364175285992897533737472114245038235537288274047618328194307135968350605518572398069215012200719265737525328403530652107612628484216552805457933607261361281572524981518662640951348916425346990855905366170039209532125814777788562312840467878529765415095533440250579194843594397730568545164698213664877065898644956408038141856107470721134336091367234416432702491950714320650644551716771599997162970812602871692433462389268759041965000273524972132230559345888449840964772900099421572777302795897791223078652733796149324238449299542041548034511957838951257578087078741949565578601712365931527792607587361878270566151227430322831043278857700383168260529954475156733833365331868219161657061229656267313479580877945029741024033726055617882165031298454648285057072895613236438994477950244341332472528158752814528510642161562219371225293300841287289870603839284619874128557133413336534510030646604369819256175857412955417376053479466439870205957304489418253853119373135333478192616342207091864075059214871876852117199176957224198618854860376438230609558360741763418299230058089728495968258697798571239150965814086110427826652125486376179503427211476871412387173217305928140404459054802571023404775362442494458657169717846941820445688876438524790749402602831090035712703254738145768040009733625687053009238770042488036921071974460354161062900060652343413740440694218983018404813935109288179947431499743757051707270182777139883102423727951988779220588018792305853574823857509774871649953408677257785096480606276458124900568067942350803818508698250804257692380029535126057651403788992927925468798069978237437815063182338447825662597793394010430905556556025672805756525829273748879091189531703072073065913841924533997085666171827342245450618925837860152736012389658882757253083169499602265554401726178937744834660190383863309897549918965719256229199470163111160149356407454287448024357167496027708384478630321611761963102414331392667599449940827975602096475514371757863164947062510375812354637362672358828786804903674325338475122945025435531598815469516053821240905147853308488039498832707390049696319223046316861735684466415689515255913613774977009745331202886261150955125556430726532960661963840031560949817357115869485695844912260382755031774062279877155580563705565622130279459961007383613897689097016914427350700658586359289726750389366876179298644584210433249358197359266396080168256728885696921463257035919721197312807776728860820260956396454064792444963540522274650320428360174005708757934139505859962449996415318740650879449757065680187669609866877983458764400230692209553392495726913152750737892163466195197551799786455483821780809202648343005742398288356517659638889234390894355331591378761563464233545954801105256292908492336113723798700471384684750597512432328624962826749238064833489901704722882784660328872742528265893204422940512458846582505546895833774123694540756480779443786912686113364657290541035036239951093168692450345048718237664000447682443103147903734814679109910252102149996249568671001936819367347848257652551907045867270288731374069825856091363631046712971759589544626125676101343152329377552723084783397164120176129900637263611627560418308312659227434872176168688779031534087363679162769659384458306806831288058462451246948088064790111164339718741954823671439485935666976092175094001803059217080178434453038297645295901520664270561647952360970177969967296803840258830065893863849578660890338941863159075673842049838023121646870151392265926595729072525059563490932316228203059861870847362861137126061179411226025357513004099553479014220493031998140363262878427657681792392707307258150899808121618011103110599680500747482050510017399413176159986000194976744600590301810834984383437390287905047270650653900962403927839383012075680913540160691159770494087835153921379480814082747302820214294615127343680521430109084279613862020576675446545050184840034304113430730169217829869066273956775080137024989710535383826977253307575305988229181043252267861618947085229429827839432852500849070715747694551082854429920271478751060958035161670291264276243570503934732872068939791061885330598891741275237081525492461751935801053142174566018767729377025736011573313943326075714712021199461183169051955590086339227866195972053333001941147756487369845668419991993503483744768474845613760772409840046795395016676987389501103481886756108003158005087728405309988963020840975804044416023489244736488411632948526612047788605320435899542998649396237231979772176257743128563486826019462426483578178563181266774954839739735353560225782967380347383982530679354532750117940983001222738233531623643179513121824137222955945915134308899268698337119794708278272639095489172554719970708115001505447206678836749631349905722049183739774613142364245366191955824034056575200452580756781679386778098810939220284385716306781095833041637892230288479734694755272539576360478331042405734994171857503746542401140541940597498193775860795178704501371410368905119082329519053655908235959402966034395390242404230354483089585229474551494072150568367591499134041202131354051592507444456085719396895473987634639325296894487865159080110471142594305663079416619441749875971278714398215474618088979174048812637557040861013077132433230583459260169160204785844142302116086335703638071962035764707085323988486088834132126760895165141974904253794215198266008602257191533890991148587412894155503227656731599332862456564975439657037737550331958957289983422795881814530716027608742465164418776495951637343297653790406269607601387384135418475428367660488129966256269579411924273920873166386081227971291136281138571027723653696155542346091473466482988902179298533281804269848071888528123108180298190156383057202684890699846991880368681860208860024942849885964957076990553962431751784911812767819337766898671311942376215501846208171719457828047549499884830932486254930841569319598919501714977973082757967912580195993582966737377467531717609732746295207278849280582233640445364492454137420714701534813364497044421805306417720920938593392296223162693141340002464097136784074034792591216059047026962610277858398647121504314112165616752404174049873262356865142769365718018173493920629567275098044706246705645977157617714501234139186742859410068704819581674497776853070851191910832030372709178673524235222295847906228035867268418246642491045811555721923077214554625040745946034773609596941926083700408329964401806633415022419997470155025270421195906098241756137281439341505293669790325057945686866760775727430434985036186449331948165142910053305980258390015735586365808917635078525185846814477543352076003785609493402900702815299088711969944604281916376949616359596411234658874694607027231270134592190028085149272971151991465534282835702369394698921630377234226447790788050469523107209450323064274629429131173122032273576178788825495371495660163680775460519177054781097531930353742085352392913124670264722444999609985502600249878339935875574129944908375087700605958441080957684105440427353410427046766869745277499168486046631881216967482660274796597216495215773531357101735043812615016939387213830780058847703441731546250331532239854337416700262114872901352757180970849622993929706942585492827892777373694672656443832791475585930129804962618547366925284846109464176714731687899430270824230319715090932700462622450108194057263834187177781948694109099990071255067119792328259473119539837523344862425636555680357496804442931406991143078585645353590973364214436109641234443544219080474438340974960718396022221826810657650544149277528523333782866535453609275252402386927779036641220024288372922711365093716375294853446657373619996822033062442702947569981475040657990941225471891649859437977582334445061387232800320822144751662945784106277746429577302475351773043726091627211128702467575194342933028799064260220478417128454752757068728779126295637608151620391680067071797817852592530043331889132080240823424086581793916651430160235012077016211417516129941131643514036867350212856306884456988273128985841349455622748863519342938072921899629471398080039595340430006228357666464028998194724100027803755238775362543374602085510242840408560660619678397422774409874254929332221173460370292889515474967056381830283352183785261120229583453783453983084969597876661794805228645241478741909408656397581621170784808054354049941940985656802040271538900619225416595593680802822519770319580841644319120509289025085344242909429511472326402513561304531148084907746328853392949469170693028269320528726654690161570432911231118410955361597410174433190445331814170807871454690578296236660283918552997437908741766973702213979507378163768954140788213655837830580884087012027548493449256168076671694545330633239928830804634766558368300436787178351912216410050594924179089111421525861703163249832315781827484576261247631228514935793892128237725194551468928809590993198176792754831211253272691651545819487699729941325337335722614192845351662162570585729939090837564258861207186073511433899624254140660348727934459099221961508592787793308790686841857184765761914822354423459369388491522918321057035972674319155555907415525957431237201444138902501758478175241343486942263191910297119847099486269966415911200768791390366701607015817205374170605275735558989796184593263877504966736597360565230627570400876400003636902342861087452226797446013983766690707597889117999925908812867237435782744665451963988162388732920021227210446250791817180692163848788207016717585783713147262990017759085320588194475774778790830488176106991352552182861822537062891125690076075475698966383529793382427439811499683885855254659185066921484844026139844778972236775158103432967461880647629080522274496434848681776809151741853557894989585284758474128230229763207043029952606022817537307009463903196176906618669299346883103891802581187602127407668895415494728956161963089286160625571234125271028599774937451507357368773080991035927435902751941134183895973935404455237316255492961107363477614360144981946479234523190679771762410280356275288576674275340202875424708850670152759808361415115954330368758622826495140248051062575113962102107519460016485957796694821817334291628963437241877047776985890350707195286513888638100046487600384215566481229400404083720266575593704213796507632279056279320932156076021487954605482444245857107416294406167011700572852830068833247933311072204555221409652902891676900946045711049496014546938160249773622061954148091365493858744253536124477972292042748819405014109942063826529700011295592974301422714637628634483567007055784385619436606638614051955956300877462927609549426406873584390366278976009786461665354748091491848136639696000953382373050044473637581847622218120396007253909987972217077235450330604220938268741011851122761534008055716376438568418105796204864206931844535832045733622248475523689520306890817270707675255415315520667097657090818093621547978590995123665559863770384926047929420719937556794783305335014559001906255165542083582285962024530691762371318654448817702496515461489943136437121744870437665443419906390184079423342501548336967640722408372670760949725216169272633852774077978116199481953303159174994644817218988808297512420168319144311977780147129888564240406690864014603808118354900024315762273454260562026393981724587043668502126596571651148364938458406341216050614196729861790568029075704275669391077041146181794946346569060275747373801564264972361730690898384031998274851803126555788816757749636834540838965850131274905217527348745617627165017683696733703672274765149976389317651773440686809939786775958103079342584152477028221085574503623212442858127073657534978148987910576265081426711922790806721586023363515951672750414618255589501918317315575990322532018708912525099887984122473330586522578254650437590102406884410571576855498947096360788735131778271641051143858733204040314878036512993723518115601344529305259664433360877817820837050879080597000545378491422774070796508261199882446315210360007107938755531047518880784845801824746464512197327019957976447792746325579558201109303723319918808071572447674211226452394046133953792793577023085757753433764997259163443546137950950418531471095662440350085982118160833376232216005817149684446711597199680650761011501468772284934095300786488267935811518535795157873358831781449668364460260923514808190913891253740681269319170885763802536668771863837400720035329474781000141865964952135120927126986867275263760899062807437060458115394990858825823875828164157547269208053070721226235351923081399582172023336991739216563245486774734700180048432257173228960662292071231130713576925196649396319807489055259218226540970967201204654211164956079594136924651453053888737226891887996369549201215643915351978144966044632865334176892854596386477085848055550444169799571092166537657728272733673873617845494809537770854765262885794554999584484881889588477452574357541102758864311084478133523469223755090116276606049512945067614234184251177686402823633869726393838823759028119393119888808886762775870536223011334337378915722633780502719590778979953573031577932218013919353883217529936362384671187651202666436772262172864971980779067627985701248892151066769182009552873391781420616401055400226816950407421627996149511890269694919513282216001102098657001755786423382468327851976479353358318041442671121841477272489536816963805447130027445332342330066471082012500261743518706349881069390421502776163129335078205164446121727015053452235955809412021853620891822249541239232528392093716978404192249925532721424159577033785457172798282359743902504967615835123121506389817393392983431779981172285159522700185433780911191016693916843729337865316068574711500459825233334193753249857514984583461405119966620386172411141743474164373228552265306088932648248527091263561721922860246655340058874513320255413233609306057939195102516248175566367503283667328903323276666743569276272549362306312035684323731562670646591714442676929030847164618170604156141792190689211274533712363169817345318671003159857530334997260728535930910212616311572458868938794822203292772579549013372865222287673048413248306215845335440437078029695785572544396271614607726009677356186761903203350884376667211126542370127537247817423244297160976469540998970453100165709899301135731071795140201509415279831395237832946630133551075749318076506319724245788574540154939075731034642513095755018753407656132761535446519080979270041243609981279267159415004175269524825545245832098958165351801295813461551779669020889393544130860447766318949302426941739104276359250130329144623303016422425009660864990342211212749670698871426158977482891569711891592358183979618248028849568592121927147171923123528900683052741362461244308233482053681476860135760294598945804418480775659288454670984605607253730031035909158937729147520913610446038094234700012344849364243162604606632787175358942736757748487186156562533887563019176064276767153133589524552240377468770595405168209585261566426800105768650691213710639076608536328037908497400726940725280237337876329096827513511394026744502955407535552080198178137719720668815276579384499491475987946450184503988149941828750039387521571477271600702812662643963845621806821251401184167729539617467434280172942583353257482666605994211357371787064596174547989340624292322053828638783889327889898224148427857617808356487298142758330940983646119180954967055619249042330511557334758029314622247340680364073194006929094989059101213096330409594271581078746392491165330611398403540596500961298177408421074372078765153612180595421029760125847017928353041465629062631540700267927172881919209157212012019432387412669451041512613169523072362604768106366349294403833294248138929582516489757493199946846118111383914003807358556409074766373426566299813642650713797355804123428692050138647270027973637685150958287695557289634680212387926170261080975174125531158684062304021768025828224781802684120507160529746437983045423075418648930425149182300181877737083322090952177363082395550818356030508841910718407239271781986824009650781747900788393184808848666513716336995693512414264954617332550543856465120426653934444419909769724049080999504011201320172348448368960269239447430762217817419081011200076879664326890761179113894228189598257088378260715379265973631152319853831840110748444308253879600485407576016112773230261935379505972149673448426895651345590038511834571884337318294796087423188625020934708893260690004373084629913997012454835920787113340686736970782428562645889165327819373956570852553122899246934413529414925013797004799303015802390793306771639036921311932201477379108930904600618223180047606553876020497002579275147023031748591592070073659149946036921076601304850650171074874154630835562062048665127451870816983007594784309550318428059353695722327803694787140658893619503807320423907136059907521878379686611454836551548902100891826269197716283827627191874311775030873342404771124359289266506496231069843465273681819003032747630558954255372905390652735664333743848151963680591609901707115083463332437245503990488688670470138670475305040739554606510858003748179703149207182280602807942913237891410797248150890393041085956574087987616218223310513157052021919734742351931963833744018493191912180381313031867260988025283589611659072464392255199888005033251024215071717618062429863037785918888930035165849685052613489494372155904976209631046878425681893974674980912084121191631459597682198085421325729053426061908365720570168353896625464579585749295438645895859029597199723227757736435182331202155986040713508668460519125940275190342861990966335452024172751029093407081575286050286844940642264918779013418632683178130417895203999758674070635961578671879700943537126731656944766917077433835655238368832775217345035024106751261942330893152941418266373428943062902929023397088708612890787878311605489067559249337650739956063544324623504551607724956381901182184545742441452900512950990850673221900185940096266614445335364920108756656952415849436724858562196396199087235102307122252992571198533193683760194348314881710617054611187702405676676074535760762364325736783949676841201059513834692062914878278222259057273728457813754565175296294889345221606769486033088741583193543940651288716989332330095522458709795159185089705501998243994048783786049665999255793851713228852417413943187190720321975969614405952005961218842210310516212810003072906467075912488996381253531076040432521432322348175498569501875342798101070881649489264831711720110438138066904804475155040598979270883300323598507964650005591947680283078220312422187124079794972990539792924915642804963956308360478609689873271009705656326855116388648458028772145128119959743684957132957273921890550180272505556082105254311297722128072686688379520795952896285577205909624664927114888360476967451221429033105359964545755880773825030845247809136491029717308466655296936349121195018278460120813684756174114753108396664653283733159487962539327764508201648708373827682109895065118594175624578726079977837130188029154708578926915721924411111828301008968126419015369695562099705262513613510914839840799421255239428486444810367339008613770355374828336030802500240261147424080981269264089923570578721298101793276768651491070311509885678895755979303205884840531744466378507412153917439782512596880043490909674845552186243928331092570196971643092950268364893512598323445385497490610800978984399863524821804603156630660503987482144897309243647756331102272713100837372781230363950213889306842296649425571468252440526560425404799938003487278092655184431233658566803783383293995235489277204378011606165193526464384601977168045982385929794450771132892419840688207379464489249941068091151329293387032211033724726465775743054024482966702184431284261566168848477171082417786947401534323612517438171973071588828463306338389368606120545974166576895789558841479359867365759088552819411616862509140207265022971277039363877583670530192723603343372763370241086887614580716981338653428894915617937510930917723810969904393674033306410146402187320055750904592225682378727131508845390033853251070296489087480790655301329149420485130827986900426541165625150369157874425344471106694078813904658929436110338694723256402422820747374679467739090398006767000624137756276085535565780174579890636032512089032085313785347875790707029282095489377577693162249390254941418149505356992765173277021847988414994681918673543912585964079865521995289774048354673998776532407874485051865320417650964517776277573359442821520042077263063402224621778247733986634069079006266436433443708772974975745204425196884393140818994931854912806807884911379754215204312763747574278819573929288866337879619565411083946136603031303935950628178390958737544786252537682882505527900748085087598360685700759994368633420059449720764659895299327315242194361069474901783556996277212905102666857495643531973402387929146888758684386321715355549722995909226646986085991167628791835245116326676038689215062852056418931569499783881027966500045161501756228426950231124788423472591108102082333829224787498370146118698881341480221518142926095456441917307600071800042135837042724503069718532109336277476924324472011951208278325635253814028070899971070662458545429854504506885098596073549622835037384085184673723265655743685458444198279971074206766640089923287125642360040016558636358410115325691709134369694290729912896001527519084513397813265540624573251924254591838084997279387464872824587583867766515291749839845771896228205269229294015001117401908718614482492302119836320017382511996664440005732790686068753399460205897648038412714236807277781543528462297620176129584059887373617189717341395058386520014947161467890665798253270202204174893184814033593793939932544006949219400016081125816040212346159001327344256151914105109334441962942478417000072827566648425879019807622981953853729233548351210119657853689819733565084035115508457577333707968811510468779156147471932734042548689689484758073344270234534085713382898030239717218006013198504657071239130623554922526426125993679647075894746309807110103955874611600896249310159908712999807005601924006791779041467504264636321477125245077895616072335565510189765562614616816613076715024393312164886082907316330319986898593330741820786397270398314833569504645130713778273246382164284921699921941844445661109855657075958648893838892564394699156968441738834999247882877917253639613935470082297604221952851511368361544270334008711671961328218937105072435126843110882055126870764516813947234826768170122363684714787041510776159231141837119440438504157424221536398114218688812933404177031094190899793693764748425592802224475246534932821595809460836181646998055974596317334032076272579827293863724953133730205778538965143414721083970087169287045994907722545557580353118941947177614098488989487120132391455517130485843579963699697004078849198103097841495004159380671455620291475817774625861260673889935590171489490469581997740874631457187248129801371087544641471991597655870563775870539381329901681559881889809132847378289182335235875149500965784192517335556030480606362581789899709433586306881391645343977241889179161661183364975774918496599261454545137658645704375462188291332155000594398645557998649514397518895198140661741375418756894276989867704562732846718810467513332787469696288009277059437929821915249082669666116065511411757804969847995306824194476784861897083851331444993431245823659523700700607400936553141762459659753760799675407592610060389653946671611044897470418131400928157462355270430462241284459126392622623806612926410353158397202959598465290522992401793170875767236226536383148246480035562626053789383736507993845902123816747804751080041621272223103535873120944548674094400593327428388295226637305434055589515844224851636938736479663655098578044479488389276420418856972952554079206769251589500986631261433725539793244120666120828182712498357860477912358560004391068163810547334263686510983241840592900295700842264654403998774378417165404817399510435401088221302036556678225758678956136235181283661636103167401486832342820802391789002737702070406589829763375386611666111763301871991077292453435564132919224726841673063018678991993092590127321909511170775539787626692557633096341060017668293426587805953541822926553125526276689655967571093018146895261380901831576786648086607995106084534087408122357700180951973173718252230440744845690653170693055170100156759571897501649298775179204838477523551434481268986585674995387396484755127650724957501349836327660654098402068824960826060034805315332215834371339885041904109852086408322285201173144998300125677068562813127069084807530231694411444975336181762851258138200935574660321608483331757634802608310942508362550746124854593347196841766585299519601824423360730055995083939308277142347879527812709473450264646970256958410014056610551524371689675645897965560512901538600147654730125606301113457629408736413426209263058117000314262720570089179358588996810719541361446734820026654113282226988204824879973464551349555420342687038399554898565951470210251039941605685813186057503534130078413197936634849951597718532652076276987878982413351857939972908106242273275862808309600386024091249495094079042658664226363747448851200073540703619687003807618814975856717132164703679215792645396695282315392127335534338818263719159681650899950606319723511771899542569210776270440247455238867327273498188600144814648264241934110970727350561730745422570418866136737103438245579663298933691019727006859503959494053177926769761624959203848227343573583224958111649873766046045760803822860715527518050941561716450959148688199531785335644729548202514103448248795647930761849206510026002756067785393197925188362845881598428423668005419704319652642227610733712159570727163147937788040625995253667308995095362206317473095511150471356183774744839967610472897216190480904076624547570077829203830411765378790946503875262859916894627966178001345333273188444596492703189565955767235951437106548428111234991376169871414284819173552743998520736547625691010505128140015458365605138242127598041813258340951823209103359670142857055843933960584013852033708720986327672372495444509553499018379230437277476688575495801556116955627757195885335188483341629024104000816216685704550698307852085214284199107088648774251742055767055437352105941131702707856571224031537550328764290632482586024445987229627374727443314795921338330033743275038746638128700316631883607012680226015812789001824226761312539146132923093699765371362775052753370267272034467128054112715056532398309582333846223248419178613484980773386593804273940355400723823609471018391751661131201821582615222356252603480295780860824319337376810724319778247610383593305900168850312562029330048266262545632657271147397733431774822923895727773577210564952080083474567717491385942540374479352587110304734106261762075697194888420555499258605710676179009419895774782933590886590934588214119761840533148667014437509240687885852379444606439205516206130729729196301675940016380931719244689939391535625961319290988764346055419985226135257254008585266007259986874683867414268897481406702750498994564232783377669757817516164180972181500262461175165476528627412919655740975729233647695210758532717058471210410292846283789122494372708627427644906010211676782888812670853164680498489907895350622757144399932851136508182320635790978359069133971021385608424839964116087457752347873774720484103902799850711224977590271514332001492404034342798423105924568745231841086159666487641067892688025677405050183393003226421791336486946264529763515069270689827159678949916186327471127018358916968882176269222892527704324408657600198371759107922177683484724593833750003267834026542103567631183059821601666114442550752989096078423131009577173116514809076432602408738165027210923621053894223020041056766794846941031004795748140798264432279357411022637515939081270846308930376347660136640044407144190168351750921916747119559535489063759695178006524415354672033629886077407244763772482768205208391550262631632669497645863978673145395600464867675896230365889669922198610782355147355822767879662606412763377331077823066231125536653268037990636757835627588770910500444501044376822352309317374243685160861478251744446347375334662720843987789543987700176198533365856399492392155476454331772082616142371991210435757644151771273266945752236764892823888356234273958418276600875412142104866620935416738301075140069794873576179072079476055821440551038936869151104390736854749924724820314597440210486742688643628987472545347530125711182782615036972326730370803376896605500719246472827582579467300885681760556956165249898447980153089719376934300419422149268841200539797382387082700205842846931599057434374573447526345610336608092812810262412122326567005709506255525968915722514379662575511491467611228661314307526885996804387352956787372041869081298299882231276286729556636677980443543109857272229823463516190114781697601215249905782752465784033823042197786149588711515519546609855975843993508911217312076698071227683504121225903388785997276782216402887930552569513289398242549276597775579846370700728439102111379833559341226668057198648414364590755845494410876219535538518340263934658734241818792495991828696923005490888405392919885841616305654167909930760311390414459326737324361790747584500975392074490032089620536088527773369568516785216558375848375326164182950717281831899426454875850809252746585882171445286680603417009059611317277530854976666997697203862382827602025379192403007397779387292372474694402447463946716799962970533749611908263215077631800209052680138457215613315439723726921909005149316954493327644856400186254621394335809032517521597379188272983511256321197620642911789797972403257365939012241385484388710020754283203631770899168826059254476199314349110286470809414042952753354576250479232290223512093146977185742589261730626923582951520941760789038363784258021529602994274479131271752087483253643302111518255088879133434128059115048690366653151443058143553721459084575125708117324015333813795041473565828780459377495412022431064254771595699200815951253436154471025350280725780719696448457986062150715765883967000987116845966778396018501471047261410623960804902894895534917563946675367851280944356922733625487659133825663836182553245616929286583921322670607657454381491984939104393153278173692347941703947793281563425507963137645833022519064172142231756686581707184650510026928493468163608181132294751494654629103651866848091630606002062559571579148124420629342005149203268307092603038320276609408332151650976544948340112996690936298986050712777439288923243686854459088578898882173488233672387785461836681658690662049837813935630945605574091214286165786340080556164177447160381003648884935704633936612553760287385407891872643938232954041364048953784120377881580493036046213648755360476471733422243841238963685672607258128999512408520532258728008612154765729827465483315878841332963249348490014208191450331379847621593858156811680433503898146299283888829075941723322495270508821795420279091093772307169166041875466305680399563742282047622264724386906509934187671509947721709618023526097613062654758283652591258755521002127183593671665906933725789032448351549551691463391180038748453788973137252943765144439831779005803732200578144549102867112730353492702784470770309433128779340282457100274113563894663704340634760507852084263446602238890798009016795387156090356946744220104921408021262439384385212166699724007249142282776430632177108072667027370263924178057505264242978909134781818762392013616150975482739227502899345080032641029787550861510580168949753465354709498175292633219007020132320459570728475775589318378162494705478337388160426414025435569344286734628370572638201927177515188336434148305618002887022469854117850530957558496691264784669081787889374734458821972430972636229741701992013434126194690628103695452547960436873064354575248156077029334746361646600371481706892812119960676095846500652935071369414609254956857640727774955250750739625739682187986362622469458813845808666179293320615132524981035740927232797191750941028051292536425780609626803006598719835782852954477560172835348060809764129480453698438299749700106091610118669584260094890775394120107950192811686505403862643538048237196283956011487106313295709791101248979758433935176802436214000211215312518025585598718923078299451956438294141315081028051803606520215935544046114066801827010163222517065201919700984300521995371248957470957379045200703422320773888793842408650890765843137764022995266867506882137608857469713780323275957559653325109253916867281257397856004444197643861245073965896271389507801485979885207558100122641753348290718764606765258717443815072766488137416273185929917168730242906627902636074883216131892257127152298837942922706907158205914319608544758507155461394184077089626954353226520889875261560272731875805871192266286603786646028418342569430468856369025144732064546761784932460960332732849374378375010715295160763197786103250138237559518039942414308085797431517216319086822601681363558027364228474202219234049677510273569797488352973441299744415596360085315733221734219633078025606664838036204945531482591920774097199007356911683562042741644664473531440878165298203504418266641542926116307114672658740340547211850491165212728693360084580743249693583373198738699597557905249377315325980355049683424263589684348653459495788383482395201195173635122879272855802571121119141923271044123484866125594778742830567481300581472566678775419426400536720267801000599784994636108949914751155696655147082756414135628394303830787588155672448098661991614386250558713301026916330522096620969516324119173014040481321380318954512059864414746233318559487829801850251946581947813774839900420505415290833773277188087852505340104221527585729134678365366861696093254430685079717387960222563326868519387432690302742895821591640704081960715364238806433794434266172350132840791365395547529122185756169258957481095248021300301965785570208564494579024287264658548100734724496880610705617320292825795952420900207105148098248798456747522619926621791916060200121896123065345016136686575294871101347981970108559825238292032473748935131458774218403732769716254569263960999624570884546277479144798149697484145724842106137165831844958089500521573391814392984021818731523508287774975077980812478508872629592428395300718433706837637969499650360966449802301887857913205174165346467269068116713809833733083223019764156242773042845165808502675908457839435999898520927416561327114151708587814919291612734159158908631624632997944821038709314321016244332508693123096662443494323148196278940012759390955752075374205527920537429870022958038134391504198069538676068907615187972423761446979623099224290215522710406888883746907495036513854549402982206208212143046923609230251848925062212803316244399863570572245761489838595746127606155011225937690504590210454075012794556492169994446966892526061050289819732640915924840655051050122962590877415888175261387766700454622118927885314598976397480924389770680184072604002103448316932311042546360924798051634911296235134920149740097954291386407284292505631828037352859327381538910351721460381973711785603106777819924082265832298647305528140952739923661548592835376071181216227429712947704490322697513378744929552195520469968852506059939052868607770370010192590794250330761952282191225828685202924361474582103728970354211895063781797653025504195949181302524899131935745176562115654439151717108364880750061517064450685292192198892009658563568282605105945619519813688114009956236561728068527485050657400357175384542299965673284429912061389959825443984556820934994451547812574244532373328841544990727805431496357684256443888955510704914693762397346014729057936265642896765021722246175789150442330407264348667141359063834558372671160628768075761584046233379282030362585975151220631196829121407833497196848140944500327794575471904171100247357499543197940413031621964298117513967426810394582184767769786616994053414542399651730896324475688459932399219238615942256976643122983897298252381065300163958409445357154256457957102173719765535039534792454004166828903386088613988218081593176232361568843779734760654221365620562086952182022206932139857305355279014124368567491004343494643600862527762883732767002279086805625768593660948062470666653891608808795944557239693635981311090226662814460104116778617330639028410038698120231691160564114013428084553259482976184245983276413872022250276907352883043366314163641504305225083596818929908497799480820637024263538399610706722337880911785835585110666808478605203069829712509054117840185162707283308842399057684052926274439296910561721379827279817504703575452598741123565697507178321309678283282848761946439494700927256650165584482595933105560585736175717977386854818889334743310892924244752481927748593083804891095643844200379691896532537771740850162170978567015628381851541001351188758311826438766772697791011323790029854296560557272077124195581388698035387602323526329976019489149547570405018145410482136615977944665109851601438319599617894907199749104759956958548114027195490876776809709451732896083878464394980789831711964795153668403551703572874537833629319991968884933562442676080241603694110890129379966787093454218843593266997742336652310185025239848009400856785003606251571869315010789484728264613864552584831230983751172503257601136161425071607439224217924848967736379447578629629502027963904732665946219787112672765346746191889642299582951874081469612730141973761389485811378278343021594581465286988033621982246538350510503987810143351762970541929659748714014008456521340777574305193183130572754903923767116019588821168257281695091392561088808282861976384800146594555017408264143611064932792236277275466327845409100294357057135087564036562035612313307656699737719383402623696498730530913200456259015117424555458489623350486140311682873591180365372353940786438545116198632067475867667298060023954845307153303776385026383940695746182599868063056060287432091712676875760152456696307072001476358428323495525013757641686480274716491402812629482715535545152023221394766488504745732758495443418424357694920111149235145060985891375798643809158616981381754473306291085039721293216190567756657119178031326695094064895436159391098330127200168635216079485999770359305952810539789692997654501190738545473377952200248494794758905844372526295763191858381598921951028444229035547267079797403918027138807899318908160872925725837528154031220709642826782841808861068877687261035535169678116030704490426468109526475523876709910839524482268284353764178836280924903114277865472067977924358582403379429241444815340520884696055942351580739073387493195565751372835095408466514512249098200090371347647951222513453006069602254223513735362839890879079069314217841519317252664057755605527452200947094959820037620380464142739648195479911699436226996707296460397493199464585934482085299130096577762316442583739345537444686605739296475908718015289114854737054244090323747573365546002757461051550641053465813094081140743494635291533529473066082948676119469828395338472382685434061236793826619238049719637518678237475160518462840469936848811487546641968496545118087255534415821679513568780745659057731290185918146206772577321281141720078062306998416788966874411830406829867375007087637253157227669455502271447025706943165598032080946412624824777872351565633245462689766638956004569547482138402113291492614912528455978601657563792980360647570410354828882231345215334713589189559850641213778081420006065156792530789363901312521958009439917825693175988196551239830284831538173630871433112523825138525441994697033054989445397320399374815361950674760328899350058262160983477950310402020252339557281069431619165927989820895160933892849921449858580905384315279446195300325716244877385931119031382124506792504345976775161930290963924056743810226814646494089359090475662907085220488541268895247569770076409234437168662769320586138104792824625159894598153050580870631067307913232974771207046737579406043908250516449463358815396227564782398193285747710053399725153845214975846250058110066518793820822149332992362451993828819797246344001063261957359323082506757708347064546386868782128239347543202212047189255066356338000494532773661989310813607358664881022015049324182421913498255550219054673737039567037169733511349777372637789225815075153455954924300222516206047302865810981761136401310457031084825022125814272394718671630444713272500896565432996334587837674674309813223399528278835605673680293826320370099605146630406228643362553750894164202098438714352353738605209609716243538350041726147762328130765349828336268569902687549833877282428004959863469508708541228103786533281033991755261439873929934291130253325186299378293035616928669899182289586565371858867191122507366275567895159325012470306700281169683250633085335936350387287782674762966064066713115247378860139744872802543804182929897386358211322052970791697977674469039213585282273724768342252157370500531480738473037061130162393834288335578791665744003249903604301188245742288410937925663325611493955750992137348126278053323116984135299328736462603302893246042506043582606791544498123635701615219795957857269397922685540497942557682872052576639516708782261052328877935407951532723367299367561180546349310372941068512742506104424068222653088343812270355461199461340805113332549082325574445103659062494518569661383762444238132562315442636879868261063996670589374798709946441439887494613638044831784839236342694111181957227708337803945555669844871965546913177240965083824615907847870487516782332478019175081497404339747255592240032404510560068742974987950315069240435667925062682218919706000778556075669868879253514598087580898470890759199130086036615267957998823380143315353464432679231467271139209136545895156145401206690132090043592938185878022814120751433891493536840691968033831815879768384158430962015251890570721253410627900230187495002307577814019953612779538114398855490841052742367320080538069658903080459545667094783103815557935275611964599216808163537360091184735941618351838021383569826477590772885666220043051481142663581456864557716252466872946273741995766253493442215787805994005883443381987311311718437069205247803415769771257244971496665526474196550220504736846736253610861467400479828517618413505455996339244816870923014716472112246411733970661988910059119634210163948783464771969724253247477113615496677711403430803980299243040851121898628074381250014862642747156093058062565928210581542661789214050744968726633659470812691280027036657458156054065518066832257925647551963160185206925210023465871729712751773554946156157462094477510451839527799688023954887789448639233291551947102050746000390622139388554816453552604997119438259550174412746436288416826898290281296857022234953976534732478139913133266376455517189464222927858730293493233283191988678305581731135593283665776067844267889921145496004381808810200279975591218087751710087963433235622654879681331935182775529463747628647418107790640693881511995880403136306295828909271034632433975211467900079688801245441885280731915649669880168094549140427237271479271511771746572922341828977690605936346622660612666502415113619115467823959772199123908721856674640583660090251712269969428281903685786849000761892951770993461520802317485882661871274989020097171237845496944275166006109379763062057084421806298350390940265943664956451991206002209576530685257608938509359566572004781634036527103858198480572401981818998798477987195873444532067741106124858536794264899696742394165761102133305899887767024457527741669192993111544466546139388106212555767741367471806168457377173861722503004508384130685942617657690010297494212210704165621779754660449986146203605469441670414934310869235810810599988581101775734990022901629711389836908002186119188578662297776935195200211574011011569352036180938166073901080174688752977890831466588701229998077558386477484839771251248949926175513724877231641223215920755635573371275799630524220282953550219959605715623862617833647097738722395774205628116754940169218491930499944073019846934349724169855502233441469343401507243552401131012940276595804688171995333440960556564222651128288042568568621635298535258014573769814014852580393431637140602345339077193842625916977703932097179865233413298596901230472955471162874452826182678143196707425342639816931498284548014597397045998957400750912998404010421336215069653127846156244795628845640714466816084928226251940345475132257520246651236432041438556482996408666970259027086716976656638194908806947544557157768012591303052298101228603633577697541460436629254711785848962188416614945107008553018468174845451745042152912610560736941332168146217852713726404001494905760291525395414642575270157714610780927904246261976153090334744983021076940850932055757389232374763339999724976806657689538415981311906594380599185979042855817727525468807877484075373817807740063744012388115746074012252969031038981069727074278190420430472230863382640434644421308816313555971387469474861541267809284064248782172736461541599085789744707730050760199366412315238392202380944695226370549281970002961506746506946129829975740204274603731767128313098992552935913842511428062626420496684043009560587320844510887493302233984332094823085180068185847568971249764946699873555269571028085135883190812649034682640709204001527495475113031273340344837134514672424304771142467872390348967857925143180680035418992594060714968776761387434009746683367935105643599004113900040548878635488548409346258472087648848647449340011528418856385712632037963818852740975406192157785346897081177712836922978673940601159760858182789825827315410184510891726969808865352257806987386168323333918742030889932060824844464204486753058364469702037238452079327606916291317839146162835196882199432363899738047965646077708705022440915109133684270067972066969088356823693269220424039879775938292525194609668546417119508908217336572927166795620894413537311569314692425926860419917387035845096124502459830106802627832162073828330703105191664022372583878240828900366963138637597785553358678553594166778569046735377648756749368324466605713035980176947035681896998425802580392090113960077144363328419192019206564641398887822178828741891247693605003232259841442016036582399879938701258865424444385842339737179697936646847258523038639169806384461249853826374276188740123887400267910767183263690720895116006792658848723927111465704025325959386146754543381117404487992522158878962724445912780195374382128675896784862337737656546799157586948565554041010548401579016728958461655980625355804924276215348210569309287658347237394840971157003007351832720788152743180087118713426279102058955480856986465555042255316585573779346747978130518686209755439504812251728505044182498185038876655801673337988394098744797680785874305997551989680864740945709525099486829332603767164451540010003457868027191933199995283670461931620493176946795678862837628126946167990429455982122070300931927281963847575797967261840239438830492545335791143848498486526280639662583789126402039354845835829829075690241657533882195869824903530628505748575676620251444208384441081516615329053903020613429240369056103904443442570836151268317643814602307193526754339141422916303873351706001802853190282924704894379646427920377615000545334679803499861952812108617517371266186644016754058051782935993554377251174418736114534967620897072362553977111553985741770244528482074053043579537864304836573196821806044178993858934262697901119872623186550270970242855235969993107223218330545757929133872027353593395983033213394134852209368837396467515546011199892693315176441057299329241551597720984156537015499164301200607208141728755355534890563971828081748308146688031825915924377467585743929527109777029476514183850175053612870000850468825710839268492484965381523243928211987227419407732589631030246178526898666064615864635781223672187480316419792941257304513962724345505048362785008595738702129754652611980462432178047451280859580529179539319716883181835371986568845194851149073328742781643810581776351555753130736597996674236541193810675514173782041319182817524604883466524776123198716421425780385680279315699254534412161426921788160217646438658238748830923155231620911037898036040997128033210897906381615846772007664790385187000801125677026333060326368149816454111974948837215662523918745513708697724889112458452963894623131813200638436888919357611571578786163826653815557234570977307793817893741283884858742990168568932307647367744697258319275577378619328978580994998437554435584474674755315541153699965289308433813283544010651824876152116562355276078677397362612879324152994204607235635894921685456218556782347756920851715540850756575599618674341037547925109151314384069647720707012860203719076381910812560589566487793198769357667190181776996166421713487073287399717106425158249534431778256279021650277502742737426292196784859051748152647675684197522333598013346961289174020093598168011501625189565349110138773353926150353453768002281774612947513434560849497064928586568688661242511837196936136305240615472319373695050364996408947246318902945481522150704542609951609864564988159669208679677309867524012744962692428941169776323889693120879351777361865605151085896516253600558221623354989607522669937095402652821115585385589302598123982910289024937185554898955060104455403218658948392525984661568976349086210080833847664291878422514909954853850098520631500132534847474845938311133050043381656607537193373807820534465181731576578996421556557815480821422831876716249678370720094106473609973286642161777201714969995006664742584502193967804367979728859334413244204636485942382462750164291753318264772580398451036112872693196577454899485212860150384248820531057955492319216886544591044070405966911258324686977554393889660267662019350594094901603795649160235827732021918284703231169401546662768469793978318035767074794609259188206306694178351438464405438411193876777207907638715422679120009365300068184500255126943464030662888986243116608365092898738664288319252435971078612651646528175594599838932201373658909882911162547279714849991084666300564006599667005859562586011926199677899472591270689398173000314383359069628385266106500810844748860735339798177247233487055878570688070724404439468244793326572601161115273487192165058843402292731006241265637523432086459467875020172540287343960488383953369167268965984195643774614582716662795331043342443828565399087765174551510860446771672844977075502852286978844249063782780621062676373593916460110942056191004958865359984308205826471845180399942473535510969424755228944805285191912066234529187435264654697000806361391855118419283934672776333104178834463108012966618320238516496945751595051043325078906598574792332086629447830726454608248612073425078567402679983219725769792401451619312680996047642085940428205281993476258508416770170619513745102350546303257394633297517110974484806834292156592477510992815268036355431166783646014050690240104536372639230414071073833001187532470519865249290373373442334211377822436758753624976551619866887602812353247781828320395508218668011113381167913087813354320764994102334230670939944977905814995948952035014145109490644199533438115676878060894454969741014802824489319499936977401607443952137453108106056628213597560243550631643701056744762447142153973580004242398772141452799071191382917215726142112208034232416038587445289722961497799956959747203807019796297981346847397120332243810250145562233931982249242276568807285930437568398548477113252642487041122108514145589920940273270193514893650727029213155987032101285629917596404235532704646365095224575681126711012409187925182712914853430409081632730830212092127827817042935939377888387776780601433555417745206573838856545948003336522739759027627549736002672483518590177035407465520862881091799887224638219149984062659780526838311754640150968141952947690978427837547847069921286734209181381961292471187569887622281065068118348941602468351609473202642802220364514045735634520454680850193501315595513465053527892170545847673307423830231231630421291672641099759055246657166083544527771237755903261438819818681454679451577751608735103708265735434257125594187130205315572416684574891828763653505234661913093317341798329483966451651304597469018146519774907458551163764328760477666311406375554972277881577931772069588709306465084710808240063404099140392603808796989484438969605920135690566581757362257570410411789731141828578523672402803191957035012868200752735388510276492145054705941382511688883216530085753026205094221204235463829221212187356188959275168212989099697561266297217833753234348363307806221289619009744823375999006392205198212242705274824092216106601091925455123940710615008718235671214970488850035265321096937180215864971782564380532074210474064481920065696210015664307897433695797185050905304309405881730386237414988945480873340318818527760603044647295209252129905545491864156638686085940586385930314286398733873967855010545193708021891036030917509603953501940706227908185279320337807072978116618216507381470728997530893471625210759686102677377303899920592372236144549226273557971602624887478308282276798330263938422176430121200919091781626795650753477310208999619271318810945594734569238855621028705215824573603454796528344902043377285257263041813206712033063123388607039905029605973281382178539097261963422133769204748346229782258036126482637396828743075173027229787028433410857176731896342418928615991594108331024694711060948954561359289177839426306965676758059651076798768553559979897914897630393427312668058260781407526758238025658811528538813389142484918210323378390959555845107627095816187561019661452564717454905519196070768474369692276798955064359438908250925621600651106477748377687276896843851929060513754704188495332034479506362151902306295781719803882157194413228584910050680104884894649780225935650696172731225736226346665541450059741213432455948311181716830215252545823210074603238941733715197529276796819664643281815745395374770939482821455001521310486420129400074190940718209738184388810129436281756309142130153683847485764151529056915631062256221808557637045182970699117902233337429223260184784903577529568588964577012218800209729705155304886388136745382356199820249160618089103881169892580621638931215231928203839725532433877314536544252388900535533411828858192242821842422351640343219603521228224679318777168904558765906551053529730682263801070150147971941157951624019655830341594274248733293276886204306325080274790849127495376186651523518442928270672693445612755042333126086722406933408238647695647457946543396770131076358538229865760792552960849634898652838228878635058637437604260189894183357441582852554683004583671175459663587430628801689399286459465392974685781318253020188911467331067215134066018332193336799441562180969240109224233809072273659139015864574053945336224871614643469223289262455096930116146378474926753491440804416068151472444733984613228607035251318289426777799453225009057137591551658422015308519445287765462972172010115706493157146612622578705199316615026212208425500864596949819003616522320088298504154959639896356226864675420080058484173577862249399049510104750886758706233005355043507246139453792240552585235431040534165415886917023470194053917610208780992876837187789370155632229072181439234975852053435426568909787694892068564093586875076878948696082674732960405355832346441987126220220233702691686870214623266504340772885599679623221550296540124166416395467332191546704269682748347751074097112396237634624027688030669196247516013124044405142528875429362128250737075504549122488512204823288554882586870326935490789470146075035774036333478371548969475170484681575784922479850351022881366834338902045416667682483216145608412412826321116864721391753283573103859902716016574169597043094633891531718480771710254472984956998329913325864604636947094191548728072154956309879233079990845498804882080347195272670750428558060188392325533121940918094223754939007633445554267043884904355780707058100681603036577139745675197717954857225463850754907734243516915897000983432930325776706508485956427079106078129002257669929798541643413936517636376130564094321794424655253442019823285210222949202194520625672377778122268102578855607709853412757058959826213127942424818731360429200916352676376377691922422441869592205429412641997938501118766808568209949675102980975310141151040451189986547594415054882648781392950066834975650937223841227455646839994712260961207859107316461456760689752564665927116726818527530638962083291341698167348012373738223362651227606275996523348814557514311547541492832473964464499802541152974614989205266477109202461943250895035654196333702591443004368749417625778403576858113386244596924047717055102242725741819314709710462794696276866490590331002851512800235932110855970474219391471867341244291375239377739815094083473488576910150968523802449445390493260630816898348042909725364562558338729279060193056262577461887936128526984246499294434027327720611460568607203656586907070099228804805538192188606282621384615648290628133728636955878770424515412850399148400017240753834222008280064305408983046792735925550731361530857421712127407206641102111199955219421963924818972637819484415061602850835385322626154120848498928018917792484056054878791490672197879960072475991450606949964087770823823732890265628630110922210358196579174082047847957475728594864478456338157216055667792432203264414781527168566525157129561448891149539997180866137882203769255250868452639812380204405082878174067344992881521826376147036059705183427907194787738532824561477664261498203416633825077773463263277361719326468590403136512312287569344241755876417023065603486433395283873635908594330998043069810618556531388257773881119292648671966883072790453630834115850904132326642613754024657026018793380629838133239146804420428084669717816827507133130994431258522103468308729305671290029439314835034446893122905300100011193247948255372317107367821754422881342892232408399554276894891293141866304294106605077036145026756736497246282090978822739705444113465595739102152567027221295654159965681818585539934489405799587224952850067585938805598806793310647505545463570180299760640460298032274049183657444151292351489589497833985336329974420668623306116624023148641002585147331104075513319242127008504594307116047762251409343641748852109224614199803691764861510934154980156076902079988260849237355556099569080052507632939835874407836400576939796645816196742968646180068234376365767031729601662326466851862407360733334724428823944308262433123512377146918068822078022071732848019706792176941604060624683346494531008785856925625283187140448434574063281612706353773508073793550293525485075944254839179551312223451099935800375765268765530570954346283324404272614676517554080777583730794956226708077606045810057145565030662151732291917977823197923995082222472390984158488757808115807561724907627580835538223189492906299793889030975573065236400950436306380818622177409684331881607367578064736366417835990571094519167610071104143634657650691902978751495654664594668410538360559162727313006534101069992069990636126458617302355774886613026843175118324688244038079132390311674340926586110958962064493714792569851562113238579887840865004022993732291630624482158651453012633893009408554463073067968728109064745815699647125500864803319799981255703191752037857913063559151263952189151884481178512152844891008533535405519528999292178265323561221780681293190318613392258731518105312896618035974826367185605038818301571189073719035013372420501367292604255054943734540261204972439186017996358305789195565565786903477408021948431740614198106720448922710373083307094134939839198026549110113452382301141673505872540792891172675305897649695187206457160228367683109618504617204463131529623666767180567309052187599148510388518924322753050749024867751608422176289584824876944949816160325145152574324076307123656417082958351361053866085324096299603316560117946388651067760984598462296135166260064160285836594281023487694770016527728937871341683256141845451850825646534919002652436446191135068525869672142220071327702461881522277678238412098460989515943709541580176092989833693209084812971583774556236713299767673639680461701637059213207219451273461440565454106102398371202547316634115499768930598581474517791228828985181214103136851734907566798228956320535070295056804646250318433266477937946975830583453758494897646943907436908285536835998624929361808294379636182039362908688972277748806850389239984115287862642007921702236299353279500816405900466850507618998094904863587072283821797579799012877699477689343653758763042223033727214574032558442224650999795619555033245650754156401501359736927724302797168068786063392604476363466115435229862340375645462662004991578542673788180316706521465539290860598313937469367113537059404422868345501238205907969129846238097873968531062325544555064495320180699120755728661663741666582383206085952793118661780839673785270934666124524147921724356006877574065295124871670285144197897799099067939806624790996665081259924549415191407956464611929832828463027400360326726869885637485848497679784039574228121884602099172876299716047807686928629030951134490002759526890443494258070795807647150826539868193291163736720767693488846706997588889256836468449647857675807719876125120966775458760430160403805620144027833988230109376097076288541631147122094314575491761939953340315233533395169236459415851048662484151677472359208209565970620590747315192814668551098955720981222355264935680202746937863469633206571964326486601001929666365173475232318955667879487251067011528294632789515822875973611836508360892243987714271822455378912219088988938331430208424119100277202707122046153091057710819788208992183736394650359803781095098496410096775588843579354052512839645420238041611267498946783212944627250369437266012693548658762442966797569116987774962265230066923272597273091083718313867699077692619336824808953792470846433905030282531948349397515276407057461527002951424897895599318201858755676261818101422438185573280639997573833225726643216287133544776181959018642574506421645615878823452113466495132028596278001302901006471424054736763990337115821081176156990876737399727680680478222573704496684362273994995902963880806956425004565471882488042883559634418971487129372939745111304744402934849560783336868406860385853233284332730091731140928186972140026429212835151162215553981852644870373740258870266260009991800110786884341579858360573769989732991035690631289250871536954426845376196350045807150484708828959625714421328254458359562754036007288461041532798082064062377867024577212106467305389192225845274053363935215128013658636764361437655146728576184305886630684347794400801617238463519669211707688983072921057244176820010280751786013273578350392957304562455404850796761848218345203627883109638186030790098096300445159630729332876990254473708181032013390415933449047594976748616805646553704772370412488058964445681007633286591018704164371724237300321274909234046053023833168931178219932358522392237664401908311248528091660315433861610523165408974399656214832383666112022011901707099970239623957918839978938756463363916024791168964479588436380559524054683081021571936604939244915537784224476812277632889208770156671072218830365462704130149310071882696575179169671483070090877868277208283928064620445938995804000698428360858798680932526112941456834922469343020614021381632229572661422759160054827892743682414412472088799177400989634555743305363038897300975596223169323260652030785369049391050975362960623841247899852067820629254691268068552293662859988351323443258335036293849026216822386790199480419965957063469169239467617072015439719915976424709988546683041828426358466326581699574979631148518084552149249419660588123114236008305311546551341485236750976668350853364546515731290349775079934012013087693575206573698588852717478285092563620450717564760870899158927940266601067898473009752679500690035051290882658474611349951812837555561387717798818649794208540567916774781379866479818018496237334010820520193495591257338386380681953076061597036307919138092974170331375824648556463125255081262639332043044133548004048077025905702994414536433721413652896145364453033630476246199828051712000824840794479931180236299173282324237220328756546585498524189768719576878116389502473562432719554925877389694144213188606357015230845231405779313759488786473697684188505362802975717428015342670558715791087887308762132151433042320473442394324124166142618848174675393342692138770765883682022152131368097319604152328644609928189744955018364051909791524484427555137395371057739500064759315513785699605465850105585697842197245067131184627825624935646258788816248035354465609120446375053547043425018635436727099360820665127570528156881225821575872846964961956298801101046387259637704867697172365977023770498294277346008404209293963385242148329152679295550483992990897855039369125768495221032712507134390145892719594816789878274029571883851941522689292162068708604456272373198704105200373840057593633936460318031544286346235884796098944165097215003244696750180983615526386654488681223720638967370416411595872154521841546349696139434506373547797896823848023506420087517439886772869808889672499882128635144928095284692834611824124509890871585698039853875404588402301259017792400281672703106671650180573608556469150163829480052345958139318458736807610896066772097462516003563268031356245790045601783043747307389674324778303310329374339952264158886936090459058432662902253267373012918759467349529811783819560646227465625163177569237944394977944265252414931062975091830936132345875386407276570603703024634369130883830683726455105786468605397452095814463046699210692030357721878368965983857753407068032004533176923116969365986908652781452077865251973885881350054174329720958360965168368713630256264441322381825343952602764717835284316350140771678188385314106033422949628647047507472721020352922055911475765351846713148348545086874838935563403317753237652399593431022391325189615894736993745158153628815203218573574252950278936263209191510746287723549610927585805725522216964433819273436940978252741635963651279728547516733462071589628421397346793317327358944090260716293656097675504627213534223639856556775673132543158576758495521258437539870374102512353832083909384737926211816342892762831411615570475959167017990390918484423282583216255974910258108981461122825189102463470988077372212050482056780127684166539037227933849901695830177538116063654426297871362381328553938403196596158043456431925827585416464788697236975894984710800229821910382139243693703894019129036463504838753658742517939986191863296482170863602539825284446236616057398716282163662240065628856471930026671486476924430606089425799882582475447670838733924676249324755155117205954223177228489811613220593720615729239375369138937000896043221430108482409570041155668814648747557850525279129249084523753511253342319584017499567798810753515412196945447247689710228255512333376832694797676733738024862355644077453853547886205259632322109519909633062606302654201553646100714828068529163775922940630029632338320670059121840737512811148760023159079728672843238983622169835825139813645418580251213430843538594057984732769793084646779320603343547739573294682658203591580031294353764225852935149567333694925330014393599945305111189660909968166535664831279378942104173900225859939285582893412836565653477968656651339281500027988367915656492051198464814573979021702199702022302369278204760071143450002208480032098515456674106769679393631754369208555765848344469500181361504421689049634902828751605952837263085972415925530213608592355393485568429216180502708151719869793457009892182467301248723778444982087290380026529299573422628375457648971709050643209122582784470159572427381693503467462177962553126390221943146772179610879398524527623886822627081659271413350493242167097975476538125349102331102429583977090039907249181980300889251482120126422702951863896017317218236065547745478801101263810283375356357091709770638476933519661433735638087336132965501740227683511864214911537023141609003300304037283302384875321705341176230007770404524516824845156665703689545394019421173659753619088072894002712141209905653645065234149022905667176417512829263233832616863488042713758894486977006180285165629638708230922057583485675515755498285837214650110811740703457146893671504595034892325266869098820457721270276437894304476985716601944731102798284211552694435885279874478658893067639444201245861610091854474466362152623057581072250592196167848576833500783437420668399127459575442101966353717860258268459661184525957261045739947002755566240805344126601171646295357875422039374992952776902208972735474617437854703673996609284831665069118943661787093802202214202943609893500533819855827614930664031771194681487149644915168074956206584955944276735383711737028878595292547418299300859353354654307848634163963988647929530972094163481600356457009238907839458777916290877706522564763996057036562128615494841188155644405136098064791631876398322892302610859973724740772151686402317716617717743952384504793631802691487315654787894786096570914890219658190763455305518464621042921039496757668327053924152631014408318560180378174774603938617986629198040573968717824143890738794417426143891841773480548449207276757819324797101892962831043560162317351268074835616595762627996748425302603409810727383844007238702328935302606686692339564224897635031222401433001728250448811055895380539584473836895011304568802361834472422590294143455318069357896558731641192082500847083542084608903813010828423666930302482043296441951947879028477831644025309752269108747019746753016484098123046557730017981671356878082329839064694399923914423901425583077788954461695753913387862638129088673921110862295364904626069367348256237517176130604846392868615718366881512958202883533182878282967716748624933951391761054983600054249261935062626733056692525091230667687320682839330642416584308059942580248789117895205180271986812664497821468476860657664863217317116242565025977891708666923352773440016089698189679828009254366980904402646842016053040541496839655488221694759445595803092703532094598829047377659718838035935685774738363849040665013592893377261344793267562587066331932826890124688014249563126116472582073654482320291584131737598329642674038269864198872749938752987109391512902218610832963515344539009655139899131277212762413257590331310861203013387362314234247314899375100945027341924394169378133640500533685732496662394127021001045955836442852132169865874925597967807184709897241388958625373747596334434175941159930992829689405843606749550698210723815778384662582388657552466733685136850714002912953101339853575037527684515362206773431111832249816377824472980170474636021652365470161334827751020600351776447416803027585839859088139944386769456186036231140109848508711438442260538742563748100079335394094074529201388890903357846142831410577895088894851262075397825175694123721697091985306189027255476578775526435603783959997987796307011623889890990736517663759580590040332401285597866596535631167149392784605470008888355671789532699119513397545562433701183598354978715569175955663033190004449881417023758168058832052017764884152707674712057553203551020326744594322759613933864263133534841178778498432833035543862557957226894453397706467706220604779394777974910865709362887116361369591134011304595306781162933917654443766809232479679649271254301349597017422233978683864342376219346460887194523041671314246491072852742532957961995429373311647480280159624117862257827633246170133804281078938402690594770345981446203671288916125740344092308106638009944051246178633017697537951113341380440640009708923509481883552499630633251085015282614683678418792323593041078250481251827245051406262346206708281079079095454316539383095604566101554247286964027042959550591072340366158403710614120292255360989790022912283343929322351593770045738943699277577945466075599188399893875147745758067754292778269843553037242190072623872324897553800262584744291473675270409536851283725696071715235007344835841426525325423246076585365820201020158080012463520919075175209393740096364891217059132707913490361111460943482584370707500297549245669324855039085366257717431769739838897846186507055959618793773292140593759449340103524818957064490814640042484359662965816178265115373715927462200363002890158250234109031704376322150804185488116527377629377229911279562317222180789267962118573394780510743842891403218503664263097322283793663888077498929253303498139929940175764499972276864425504971608264213642759279300965431831402722144344300570275141364693565523179105915944070750558132075433949971544959513134201330178759765651270041779165430789109889299371552499139205608543249406741316510679840682394925944985074361334977161631781929872261847711166082878414218151072066051197317520232391717585726008619043585269351369496158827654434529529857952815927320374201091491190293301122285275956730203682144349529420247773557625351266360022902199331347467506604868541067129594034358026755451021191051745243983818644187878958128941432579979667637753757865003808516368389382426143656077467919422194099151973041288755620404661332637975289692364770296739615214482176890188757639395152844838695077967295081581789623745600180210451388263655656308890261765885898788735363871683086992647902696282634089401507241303918692311577251797626468863644967416081235611763980328561384984062749465638679402003383916803112513253748526937981846079360659029786295357358443324672179247738953794384998063404566447294080072411183682400614803749111229038628756468274750366633329851659064675154594787876219570449243116120518431419549789222586674654384972608278676261525306516916431536606064794976537415525824040556692843029326743856830822302455664441828233588011001019539477555848655511507816894664753281470207732828015816875472652832501779392108453511882057729945432937231693971053008868108018426637025330502569798689426981525928902484007003051224927674359865437444622402774407201609861453416967825612212061751107368703420602489177620000801722234115829294620277549807607683696658970755287372094064852321392131801154016518029181041764913147906804263041818880663609423471296145768798856752259708034987983258278921343745709030983917360648478263087199582860875472355299227208783684934039548086319577335962212286221210155217283277854104472535873747057275676547312633465499403159969286632139803208845911181277948616095995909122756541045533878770775268656383684012026574870401947241285985423615496445564881887177391988437604265862493835187654502204250372002017861544436202675133697607488557680485417117631439007122591021547595088630144534363934826933542647896359230014597454627294444895684491069998058917894655119909253311777996368939834025805735176628389609245413061140096434332370367971480065550916524964860035599077033435808824775540268854589146271302589811372619276384237492694297760072026188838173180595586333390037653851220794542194013613867006298174882444802602723507470636024536856773913359548594339920783058403913392869349820768510312448013268298449395749212991233132726500427993104071285094184774222776244872813046029410085867790661428612305114565188429499331457847692432229718866384357541725567082426520850361304086102270910651355706387739973164802438846269406423229905008781431553384823616834605419023749713293624410971797901465338466084397369063554011940324741413700192040631188144161284982245174096322390921836793059847165731404777380195019960183093055699687853079404309328875351209281963716576285217452009228719463779423965306298647693666023763266804958112096207218018336230858109778913939554253716845273798466703019692047148965478684264735892387791914947256129586871674994252430664516100986986224211861649218139446710380562030571031038809050677582971367778960573327886752433488243276066515626736570203456558387063413091157090038793365080552675295865987711270846971287391569317467279419131668479198427107064524039763413064887204334064800351227420248282026923757151431612129627377204076894033166131773711469438661114112479437990134790401204356656879123848229735868493045921748632107098900104004566002083902651703111246354884766839772299933757570077908854280492008000486323578264915528929876983998662269271854753905032173383892717242432853561165389759921995902801175834651962936346929610611362883651705299445305515250587183933119661456834193826762301759802351317667859601303173628689338640213952923578159916495410329633705773734944670649075750399410945122393916886449588028343944161880585013334998588376408150897559113361591911904433789417361982138670891645447181353009407380586275644342006344287515969452521477538048385747824726267689678995053424209521978934984701709262714749210389105964208871832182494045291188546293586487172918939257255358177979864906751683922945680791167259203632439210434149826814945928477533066686603065512990646907329211175693468531307317045287616548277797608980955444660824360538680798722152237197715454335909122151383361064234410939805755718948379254280130081781858892574186464066591840737440217187176048906640097449411409909598102455487103775429316552708807243451918712991351688161839411978796600668788986560069897221641136254785171385562805572584115367214001703537321264800142716731790254898958553498350402691832147102596666744329103684914154369128295186248532045964913616403315956303050016979851857621503041703370976880148138317371450064505464753044536026480960089265990719667482766766654177279208715826069731806390599229820150973591274806483746242376484300047613921957687866888723085934258450801713613160754141883912635068498863874847835892154782329809955970469154182072317846585565170677616138183457973185315995232989481380021388860670865665313162344540086332926474168159956371314319941959422339138083864722895790208053981921280339550778702091637543601337343605637641191842557721273573983563091009425755972887814547855677088851959664740159808325062533993851666107648776692111247754312268629032665335152053896717140101415020810572356462566042631041769161565001080618896760361101857316305863267242089150825217280620944407647902971672485055513789745190888884994354062395571058912935614800480397250653000676604689431344758495837473331827383232749737276694878267954153262485014989302155875630116314416385804345798061613884930114237963687410033688955210337016553581587211622380493153354108882021414769683561806539766130442836180262564886656264999996046878624950498360439705443212347661448402121985604521999775606953213771444316602021649800032528785800583077860641018791618104379165690516745909861514804767932079696841164640078190196341563948426049311734223970650772435636156507590458265027339100454493847338469672636000237429363322049803458074952432415842956224228789881987027720810908248245539031442505913743357800357675741864787547498561693361035347025998796955384362383505128370087926351163021184871687833248902111763311237608688940163164472744143828856606369375740979290935122828123930449532857422648945357753337800057797343790253648294112154561534250801224950886206407605015412987878172913360864152360317044031595767121541963595511320119702873059486084789467745574834519892249216333042082291047367296499888829808612168390067280054609509157610663121415050863979266970407134156784735421557713539684404768596737684465211178909652575055689818140287172183405487874823503355538550174578809172128596205161822914566499493490478815217155294908862062873972203567551929695765618860744020958439412651261017944718037451369694782948301126998850615088406969422157261844192817197407061811770928281644090360408169334897720322618565158178516487563079934715365228163870252610267475009492433155865350912835995491135683098872800464782206496504967143081016666064999961687457267156319821553631921264683616713573223094245072228659787268332498296284618743018884800435807195061428971831388673858503420269757696833402967561248419154143623105117005078933978195076565858458235292843887549647974030443593485927359818828249746690038116712419954145195232255010944274143555983546716992948352369904999658985562738934816353378578566966817247434049934933811461052888289138184129123223203859511385510632717401068807323649315678852586991642568782859016714056412448276867289350359651435436552200842270195434047091975927145089669190824504930686752193733366802972500651766210399108438851052773356972970818286186097523548555809477789227421123387692013001213871299442115573790049025289851936342865599507171823111300165522268833213723253896196411720031564304709893724355955842637572259129363640956788346425259012224053627710804354331833042181269586114318540106023603678681077676345099286496490382015333167060838386287582791356691358773587014046177896733429929056990970687304093701168991801746821565408703293926900516880749623128528390777036697381534219311370525600842197500819231045612482365719926666406129802373183075490918264908763003540364399755141617965762881495660969800631632900111563235750055585139309053633005169054052580191779026198772230261428256232397006841513277173950129928728118412564498656417525310016050161004374804113212831840232413385238333541796066827818824231632912811000309385686313359003164026257448384052110906861849758618083668862808429931748772948169177626735354940526484788548830620414713893287259519164330195123976687415404263273756850536328778884380830013140827006791909775397355605573182516390167474849157937900354791400862343351248221925066938005629853348833173280178381024696585511972929387549285966811894462039468276633879712720277207419203736088187806512008925926385087108484313050474817875189222105239584066290218741639893734693765034681354286384075400852630787247633491612982240537154141184034201673282692047138984727909096730601315306691364030471104867452539014780519912074568875133242653373404143104288870920668816233813418917472335248592109616679126301747678734472695878383635519238686828444793278308587528150342582110754177453860158624289107151645404688088026868785919694381044144670450091287914104815408454035489775695643689824618612809865800585840563849660492903530904440320717009383850889940977236880492462294010017517011066191778149555152459085400852835634857258250358481015051602031562915947073585418086398270411940149093998559439440145138026950113048601651293879780442523596820306156809627852417303962899512650299299331546106653520984376377448061937272970788978667145013120985227467982262234310486430283361110323043124956428865814788780880150579673160105090138711069695146311670394551943690220015609014191090698057773076659398745061424574536063434110945848184695558273092962012053191717691935890951023282357280542695041429716791916775504247803071751162524033819808379012871798364806307992225006785385009170404287228448525607432516675453605603957004445366711860022413641053413936462040312567189308093704082319677841174982337431019394481610858537556268408975207971774828681780330678026697474999958430200871828288701320554402188826489692135911084301485948920985987633360303196668586169465529403650104652422190750593790714853035892181572449738938212312282553617169894873964827935510319898564723147024585378774790465571502949537464168760713778981484638506231639286392827162742242585384455620766315791204097880524844985537767281807542959553854605123989341927225895300295140376124804146547646395076296884722097918862597177654605514678627362634656650685790633482576514025050562442382851316901907908575743558559515899189680792823311150760019788817980841124215163023908330769680817762111342892042185538616215934711714547554270490834189257345235531211004990931687975183944676463891830117676717374021676525876769220623838691045842597838424641098857114879225762753603579599785322940153122004471917440270869222724916930054217947591697466328509187642741267267965003067064673563956342095006176600350417295811880581906131461242843916467444103056236710567643097896374449654945166906279422381801514264756106193509472689839114274834089074488023477997069988655843124205409229294139687072157151556273831396012510257877356027093232808142101685060167422996647942627908604623084710283365973774398806493362903461471462040907739658844615289669476702245926810704169392979447712484039280242247833754170655383627122705231581203740511598856878140239712755485633968067580975767277589612135158758735410959646983822857216011996628452637501182189026258688363160915259768567831692104533137449601193743295855591119697981891487035283626337205209805418765081654206077836213144377477586276859003681805227800693185782806308675054991919553828621681029408204089822353020409361364497521423441274558510286573163351089638544056166429180166135846314768323708834093005217432135088415121170736743141298633928362840256774559682118161424581889058004477397342294595185516197093574290310549107119198121808745852996827845813052954247070778667775556367677305344287386967338118779669311142536979723443696371703780855571712427996821279883985272245421568449105869955008101228944408648266404248008300339911448572035869097209652579336619119771816123495765383851774750718053317427549462981440958514404091695188704325455139204079210649791330234349922293029254879705356651715205989131502395253653414391889162880521364947479432323400090532570717630177738757741686039281365708881125064514113904138346490909346508242420795894373113191857965654644077815897992352519415654524348978141427769162139320353219557845174970350944722093381513024098692690962192126927752698065855228731689043114296452830490600424922015717125366414574347201355136329894521724989968548234169627705978277781355253611462843514237389828890296992164719479765133919687199155293402615340766375677980046696191445194261657952641680380637620262919821238163274733329782962142991625233474336397888600736387358035177978228176966331635252676356080294349329415922290296124881178387725570862682799089671289905564967822863548291125293547568212986922813138753794830391076723455843526618968531336795521525012125999735939371661300128533634241559502357710027714317853597065698898763467554170286686832015442734327943421498710132838825651296729491976254812705338881658198113630249290738614436449490734242915623880953310977254959061372543486498467095811588208646596183357157349125227443158027033906798036713575694888871931816269038712909615786445984692940235187846131566264478360762200675542005256089613514364360358940926138738900417500021332992920389928034567127067321966754078510574479855079503229493761186190062881236183149552368408744893769066255943060013689005323023609775501368207696647328890940406582592877228710135866295468371981945288166052308840613472745983889462913101946907022264350444290196348289391556181695524075699971732842962622766601829401522057937410693021112053539160870540772711317972047923239384967427224954658633526368009064023371975349350709799827760521788460222361473411627960398551686941899728722782058378577475223827356623933978586126182922287191811177188386683947062695210450604902726060958270360831430121288538609613705848005681927313556842524594716433061213156602993147571505616037990248119953966995151321572944140714941333157997192131649764492928249687685790888553598705979758556285215186421542728861407658095389815846180215556087336406921159111112241567481687151042559751212024535523615839266761181855900232695381913775105624692499611311560297213599841604903705768844282289742671379793521479031992927462499897403518174716191826616090351741898680434220933059172639602824442830039740996946446512836991963417241663447436338679705975313435633153665237032969380816997636640271295829985416852444024970411887796057725925364763335233891709206036714872793265173861829354880110502132507965525154774151777253912118455296630519161056216374405086937343203324741660987912691063820375269185649634396096608110044800024248915024975672633553592947974186693381988833326609860531261548475708278454595571179614378162958280830314968695725387810258594229508068153065191403925914295113575095831041182052507150773285678412266272587308419446393800108210317811740039537912609578858693703688189910298313240572374292143898482719434883876981040192425225571206527238619552843880962415702280815443100661367680189658411726425098732667326767643456323296267406137288838405315859610808597304945649783071301083863694693002105043030343252781505998107906968006442414364455719991020466894962566051807038102018306952727602566912623031599279521106001223883522413621121977167475287262909367338967764159198120045399495257770719743413325324405271021927166637456242166363654311094131499686018916973985439443513928975369197514482541939142579419922137941878466364440490073029212731704397022507652767789202406768693540244295063358038760659632193996676415114311720970790355962369546423879569608433774548775153778670849188809672381394912499196012202217384632778629512496715489915671456884821752974431340190219856081206109165901479381095032522554989036028365475378779867400395294576013659297180079518191426800482388216736572887062368165836101331127078494247959849124976467182966876007393273465352453786155864850613815613603734232304785884568532565263608205365724932089257433824731026923836620579227089121626487106767810831180200156854306752471677769885935770229360698165610123051722947826174093345036768131462375421669799798767544914829415082712607604769475193846469158063135598967295800964303818849654353110457565822759482324283688898187256784702200916579515329923343902826505547587335792009100128551318043706784133241646690943679276402883661788930651698697191146780634835166729642127642975869852955895208038641680501747070848475090684054270424234240708811286417489524025147457256703817923159392995545478592989161548306501641370456801397591869209213115332048138839920989960302289014235527570600688677180376994081064460654228134890790193051264475231984994953420729010131052435506077420667395765213861067922681920385024278487471884567365567742409750914160795026950176615625155924759661842327220063895136190448651943785334799721797346638599014246891470048116380105551931080598754320490310457276176791839327525568706477582894033640516856719608452234237172541637269959532414827130324304485913791436508124720856272149078483354223506451668113145967025754004489560977085242750960281601774700384478350933811385754050547791603127155850097323264316963703275727903975487244044904152505714921139111437330166698685231347745417637989836196334532606197365437677754827254414381533827104012682236458289801435428575991143231710935272876193888500863368437840946873748222640981849547787492582483022062822284299326819338615133577438529258573639540625265656298831648693081040412279869956140033084209540673371114768876188496269227936790983755174810319095372826851664264584421000689060623578320133428164853036259207858991975643806885082879991517188991497601585723885093584381969956467115440732346612958104677665084563549293019607894543233220368097983842514071380692289182783076988618725573057718318392815672893269675316068480346263313381478775702704592181119514288026860024454873252958549072840035196881126543316675597752218143850815842200318222973902812298228390890044762683872369777182971799659307737190165945396570860437040275534240941116459267560063059643753075312700771252580786117415880398698716882203939502508970736103192612591183667144676245395996390286840390801440314266022598846840448993262916803861278520157595349666184933220593408808581314257420774789859297085109139600837622965861776135775947159391278688727598623799678053141453600408265202326954392697351052631770371382957296661063620814567276640295238774080249058731633868407028191077802442354898450505371691445576064507930571721601058722563868826161466565757286882876233334839081930248239185700596478125064245281687514021681292289280068493043757731944429517837812915931496084409658572557726503227850137388632878403734729899882943001678562157988989539142242310810246196863440233557249778825575407772897649040685161909794396305814740630651769763202916238760077901031323898376610574284363831261624154435849174997347356997142555671839585602438661327716516899489434106410007870417978615484068661684949867780063752091736749093179673080456648452715998918922608914471887801718225639777090183478164142001658651403032988221677379289096323519233134407344053762421371302287539859329073597460503893667231616465599138146653608405675696287962229076145069446155204098775680591260598591003811804616733842753187501533257059790900839375840874688287689245327857023218667640451130498225578900157856037900669811296592705685507323521212241004891702529731792922071593967263508524369127878849433052382562763953047448530895008976504707309669926841106701768172277453425139553217241577739191579711004048136826505455061090016493147510406322694569712993201846727043998767298386192047930546584399508386029173108042697469940647693555610591445330970851992226168444823442903164432041559269877915217186801091454778353209357059922406177182203891563514587664514403567734397660157447802053722537577126759229873327515669823249906617280147603443471031178312316222160136183742107638980707183639432505764128372075884826746865020934086883366354387384297516277665853632854617115924163781765964676842159752323815952737268294170618947723899887429199668207347870182122133900377279894440653665683842317296766950606585304985382803705305351804881726543036241296635020411689056215653398368190133999326890746964470864621075968782125278937581409489722284867740513392622004520019851117135788730246231671591102120521209285344793950320806136166843252561714572414083180388162926831720270357292347174332609821291968448803480812299004250862213163612468302464526979520052605980929740501298951640252078815988255169476846387993529286509931888944225477506847187940844573836487366385918244519926445395760559856133408454491439005418126835682202300554482573638561834373112254754295283701558676573303761497710564667354705630768798423445789525112610836342587414316165205067448688024083732626722315876418022899906633221082718552508542760136089439177552502438055485275415775191319810745602513238781632395246597903761237710011326063421830266510441316244826251575373846422680049738046532140155270835338588826928877395547394989058722750861029304154933667908307388098544701932180943743312251221324765541165202937990727423907034667927467434025345694965237579492086356165764908501159490551500034067103121928431542098785166144058472678896889866430946879129471910122415138652029412728936291934256385044022763325174821200403062668625431601309920092902996864161921942714718514870925542347327473051519698548147394524995378076671094721207044267685774888630034241221453848484638438204654773313240090421356561455101789701985413153272070495399371346849390686503035170148088490053433248774926395123867397745254870596865082314679519537891543723517191717535242360156049692183000734803263894948273627396794087876187122787874881872163701174062697674593471376859246463577839509866422079065161923481164871370322156505434928697996312625325695191785241939407094283610826816166352405621334328070813759274323020922501738112166748797817612836598588096477417863774249986430050743646278493854657437318316911420260213724843339459248661091828295565367757187232223559694851045148549772677361360557884561818806253591332018392979891939186573810317825106076764110581014821823214062335120687666930146745677803513166794734576852618716467384918104218869907979463866373698114662828177054554985302233579769425029913321822906199654473837974371094429276490732579374473127325817877047879498759573450006670882913008337576676648329435490149791072192665334226000194102626220170732956836173569236335137144861255140140171376630682919992009524324681064437577394979476275546122920040530222266186210100530929425875188195008948663544953463941468580857785784367905432024018364016074867795258962893554853106935340528128506635764322870887348335186468586265078060843715499309044748094279622224423572196972144937723376162057065565287472859229258811503253702458909217972352840300665391499995277038640109905048169098700709251594694309809621854027605105777804259432864577376201333478938249292723022583128725757460595945088241479575795900324860000411263986479534509405824334454197032811897072603147346686700100761291125001325327628093273623108902392649190057265111099624884000529432040031498862640900560964440894332232011220113382988593552436249802452342514600144278296964018199067319472824239315594746766612829862153385875710219021868929184022359124642744693587447754939784173677380022534616648034423992695428557091617005711414617155616752649332292897824658496184488952792009508175328480073434147858880306466302950985794047745445584413011333537871877698040832940464113437446327321236847073124238753064234521953925862294949569618722320218803681086285557086598317963799709737830977951084301764328186910770689268088705171395127141060392145971719087446019011697020903257339711430967684910960273157963022137548571474977841229441423016522748818729496732528926536088168154510729909906842913577444415361132530865471773637117469629783757181505793010813241824212994233694383961852231772079256244847402710386449062173034598249701835441087169018021553663462661891299601884006416983548860612211766009226182299289777805293564704288633533371310945298088643579072218845398697174894756898413490157004329929466335134358665341004792296774805735287760641533994278649562646660646533562775397290628297615337311591082228887670327114849285080760053842115883319407894096389216849149185078351469839874060716852725309757775520512705257826661769672773703086908780706832410665726013557402463429320594919694599287015508753209156827250213381005754574149950760333127858581911691757942385438065200782265968689149525552198126903854128796733604001834313167929736233602757728816760090372598761637418885167442785027884209315828928745669019550428455792758193215570256390757044077986923891345359181282662253073011675499652153362304694051416472482631096436045193732446651528483702011388836451953389952792003225147938256004310688738807586239839228109529661008035365394256503420203990722073552834774479840160651453536664754723872199739208496058656081017693086524043525235281990386770443285031939658430749245268482581955590051242047788602885381919662057889388898605808527084493081626121283932759315527771060788300639554794766449659362981892021214221614969784208281048736993541256867302300892638337157923096915242908208889478676491331161794172588565124754085165587312895497848254104392891133643030279708863506168142597515080867256726599034393779903495202690513844894614319959082920354660535049379833297860451541804289542049689002064282316620720019125394069767681715293524753222585561133441244948767263470824251157261198213077280751909496622262582381282932518634951728595581872119522117412670496004264808043490709716971121089198792789818762718421437528730913751515984829361795189476126899500869051474912872238026388784791385798278281071121657426929806837958311905374884152383516517104635223371460258756348202709273020670105663692521198005068033859115927051735198242250513594790529991990161333203525773404320541662921944784792654054663731714939055461723202606494969004998225958161199220895029595646703072775580732236899687230462228655754554349150727385968574983020079765390223576302172030551044061995076716769412700781295813281925474171595688470733920777877016600251843859515915122915369337368835061700882756366391037150750738706851662884965166542558827321334508804495686995572937621829485869047486030891163888814274303915857242061873991628944250934895657309798096845907266669530356473153975660068095423864205019254872509224658243137607687552348636705318939398529281693884037037130544807946639376596814272565302793710954204509431281648982075947760807035578959461531120549081190366139820362879150163742350847136271130640550644378913765138993291458356590503309915535738551021319901132049408928645285745020988914396342786194551923357249475034007304509487850977073167557950437742513570473467894728477535355632442250817794518767887918793544250079459550789152457970770925969587845363629700030052539041154080919522696383312535870825098233308982850237579543092571313506945980022872842854597119876362723936370082402364508583864130318219630418975821427806114521157850774902017116593827529425964722802462081559188580033807609544102189547968202780915672412739714900403812418804613990722040055574839610223861891410663444890072821496944449685474120426892865272646294008095202497137178133324735783725374106796140810984964335530090252471163360440425654734333552729488276924211569871408715677124778063203693282574086706880834690526424064624160551175044587988170433092904804452776699676800186303062073259500948807529975407624877326629639288007561358415126779690262039894250452183202042277877076062946336326146502571481933113134960422013039387099442312920246710667350828459371141810707326451710960511110317487718864910323495934986862029185325989416095365909656343161260356749738633261349735136178300239193922088194637136111535291278554794576165329706466762022976528753126826090554490521172331803744755780172170111452774604255117910478910028547219692924531218806429974010810893748939263007700015889429371314270385558463050900207921038398402175737784115480823623012223566958602927918215177318896515747909422268752192480667798946536143256324516176151891474770076813213900347565058647106321698883112977123345308203751305436034315220346558892868755356057097608389402466378540402069541526312026016321176718637435442273807471695243699154914189009849298967659684650384029915385833815329182279784769077340497842522155921910788797623542746967509318764140004329650146785879956698576679654193689404176105196121263921608561188661268172792267362110239380126951141446967966107030738146991017245297514117077334535994780464348943419557103846844438258618801787302776931132969965202183486238465333650700907580714522135898149068682503662084027700109166069832284536825165853081517982175743892882514226687438068477806834597761653108576226009174827353370377717755634579682678179163848384685874998184633922830686536798171269289888818225951398894969289372336717837646515025092828137562310391230865984290455923375055009132625822102473132695282994650232715999115059358239079171363667711306638539565883494561648974241678609984813243600054273912836567186952595150933532476610250863962431158178655013257759824439198313201161229207655957310516104308175177208508917185424671215787886769777626243134668892358805475352142206054534268665424736776774375251621786045132251627116004120882366243061571447351808081011079030874667834255336651922545215745372643222794871292711649606388857250678621452038501268457715660309794709851977543395987400282780006267087136367988145353880755386566007202086142374731848008233560199119648244318003468182770784331128910089950120290155334972919768599343577094728925756418090897880852877532439439610833781613278606960536819962406029920443535366827032708612501920874970324092260675747101058558193412764376294028494565206907491779740826572741476633342771426177389868027860963509770597831638849287230101321201743173341494217592852927222653141712986282789888988596642997813345523756099486904562158247057080732887314860196938851493347800590682741341903831556953925153613321071132553462588184178201171719196233001590295429841040978906278747070606295695360906279631933769082494826990726036338148187684968209166918200369095774776065138451710798301502741142157565872240245206275668061806911285263705769377708447490392867828835155300144819756222147753850420273995368769464356137127429074319727236344343922020445685897958001369477748952267388173497214224883502710128631289219062553741605140054209725114152757246032760459168749152935948599150730447257935001319191157455709692261820239888579033997639422611372485428868640206119876774599083007992729578354832543306905240022648009209585188655281050639163457686473627046512513251251411472535557806862357481418963708303116079806583782656103216384116180254720759076798811650369024999475918269734444511963518393282438005700614127618022266705156685417220423090862621390976281003709286090862406153907482305772777922807924770671277390857670157162849835201365257524285786681303215413197229896678784454854060277238815318336603399889148099170099438807960436692405961838097836489303532332681535170520512815290687665926288853254311471212083619524254099838253183251922075781796354014090183933293633087489616721781399060234706987155432443381188898207596531304255686265316026393869652563959845314533484879103682889619928522396791760039463572161908575172542533209813781527832594870522141979639716909097395380640584724133611491393531060099993155866616764189117023657754203591732509322298000467604122513505517404299691093717832078835461841650924023575311372405690515405790060306539774191136515319481650091638094009989517336293234752698227590413381211009283185851054387640840783742309630327025948581894011019308363320233290195438208595654854894433788740233155201268381941171140041658166859800760297184910030460241640665698082013308686689976205268362334092327601221256016984261297736493361506467027931027641125688692448252659454497741310032605306470205296860598417727040495696699977277936090034544956119971469311469027297680863709243846955127646694659190339474224208747478428960250144985099181614442151169600117917624071000459122489087383934333810975937460561766822566239541237683871670097395780397688254267304278420353880280037219535422574673670740761719028384041728082901484361358980587560983099611004065424057276345224770572896411084379063522417178833439024452083702379194362243723053642552723764654893812305623011921122949553409778264339711769325558919413053875725872075630161159853713859613063383273618058883730512239729189345272089276581616662891587520610860684602913274833055346630687923260955393597999288433154979756492790151700482446426125868240877384512394982574918612148304059417149984226666768516967406055783519827042766062592641098816375679611890386517036232513636237332289379585794181250100113170716925383111919995894740372127260828772244407570281634314422423137265636624807685547847173644053803049565869751612651842962016624303283056624436535930068857998349327442294389072710715987943162223851561537632623493787592787263199166394507746963093142984131239765009786310774487339255181164185771959375596483450661988881310538850227939530525514087060394434664476600130413440385098984741242332281096848637035130178682445742620753921089607287328589742515847970275110182711870726431000319970888357158073439528790008227264633252540379116637131044414326960385428754114672147684251988480416376404056838857414031896259840767877086036335920433608698532130081578253443713004200633411777164463922107745540544261857204868716506719880925015500477591403632332009781623784109890476838805974356193734011115665527882685647458683531604297916088640497947912616532803465902372696684588929552836972153179627773080997536235857485720909587339174552314109638778561012510807461366323429921293176481399751169889050911351300605193698992399679879900836997323980890227258665513296176401740860023920380409508762496496268166731727421586598832671984530665355122011407480161668796706461963199457497844319001719279883569102009245930521927097478811307487081564399428163256689100658427010187398987369647338562359288285028151544128215615311281387449469607310601635173637854460642971573744152437457969131944095430036336180313355259310046271130639450786734175313607490006123122498464966716027669992309399493759019922615795662259338891755862311092920734651709540425963640441693352565628470048571832530211955489184799133207163511357147077365291620573715560319317056046155147095644611225531863983369650059692321062490021202532400426883601829890522188140033245882656741541439627589643739554680787066860135850904285879301601194623188320591145658432691334512839132501710148624684341964862486981167789772080067863409340292319801900307521787848975267397812167234274046327583238941102406457538748834441264358817117169060313184997169792881427348550059637520352619499150606962820233109542743330639342161635829226054717187362947443420299965822553516793713030951872154571381207147780880746204120396930796874788645706621495330304053754755112054544471516438765493012878905239805949577677407071927025907253374067573653476415112131384664633514327299787981433073585342574631172955817788514949046819903641268858152192752666818445230214613769937664858225800011684922178655185146421874890498606823976802567103114517027504628121774943970450408187532844682117364101495264412802902515584676192228798312361609087793922514520680715974346604481609697652132473400073938166055424914477840204595512114730608141096399108619698447279527958170288692488984138559926637388044928711929901677091232141478855729852098593608577256168730532906347409596159736347783302262127939279865727404007896449777067052576296413528687548322765003905880472897718924659341601985724811514065349121568628121256900711073042824867530765274939647506675752055831179138805501908646697697157228051759137341759813731446692473335319299493039490957071865062280367757689457239315147915245974381141005069066043106425857246932746778862402843987354414916405381928008779936232217614164207659315403979189881149823206900391376337879061723772651613336409765210362311335773730995695530581108579505491854619726570498144997493814463961175677419292432598280787011680715611138083800058433445743200910188120983632092610672373961180223206321578892832696207710046765557518249182867961040767707753895785747799657846221551930216958250238443866655684853003719963225035788808839761812964146557949734513733927526228760129878894303772586453400690986223198429829056261284335348753091957452839971330662061160782986522043134385571840627483741870427900927279578242117705193740995809182434091263321773105877418968864335389532102036371095595393601208723596086340651482969712858154382964662110534419215030624123944577273134337469329780970458497284764896105161630427808804566713864115310243712817085666941379032164995503955007285396525809208449981726676746459733530573833334061040765214631718641176346889879778907931819254289444744208717577430821440868414848401941641338675040918561016101543979962743935667055562544376805039388692954660079987051756654950355670392907692515306442485032248966404845567709331054701199381399131976745312894771896742049850862259284212664622658547135505845357789362607717679863966361228916763807819738084632142241458217003227305093191252429940713387436528629048758230256236077316113116617311255897098838364120724394629962653107224937386300104912439674302347948410386380536441478222008050416165450314762209667309135088975873847808962176706750893128319668374895733711287251989475528700737596050487668996717384656820618265630156825172526781777547170467995871298671260689153574677814566480605759676795332459263901907566051741079244895769865956197325813820323202441971863878427534246721869641932218197247558829752748241314946077130288442983115787647274636080276376148906237122549319594834296960113004886801224084529842938258449364440307569122413484484869817414736889196372502562445680870465491206570721565161433011205994911930365970608437084610447514069137762754257645658477535884132538211964203645853649310596804961078851000703905079519844981275587265870204071396863562420940863511858156910643127675487897945336587235211869355342156351422013078825084538974948362054306319521446470927421895270537450866414804688986967278819715807374406608466696180564240935496325734521923062686094001449530370038107100458136252787849905086536754754100272805389184635176542899416245242571663088026472689281351231954571288126171443802673850057788168331321799298523718572048117418955387715605612853646382571053591898791089939766019006243217346130801860292443760828064082576971032852607751248859734503470745688193601011395659665388176017630852597121562778907140307445976058590207739575299778609105864368049434717749552750543059018494549483309128301349465487338655648058258851042279577927722913435877725193095053964410407993668051196199660798506624861528505188559037764435057361027755424804494976886888926766668259726106281761330809145838036879921839380660080344328764590588151912048236902043850585086618476032806574203167584429870070353010970564872402010770106332860336641388423806411035558878652619350930786145813262858849660794711525782541939236679175229722579229220823313487274634266926812632592424628630260968997540617540304177926414521175182007575603293825569966229536984289876572132169199257223176467573987683718885985661142921308437594690089967102305390073108659827749946783991915123469819845050481483113938920423154743080660085258621312980194811691647437366975712698088809151195817913120628052122134597079851551937569281092691621993983233166906547527181903370736875373835522379222654021960020415407765041632696486288007574988605134010300673980806536500548353855618679902326050517237133261974787094985265330622090471132362917270631246228731080015673086589273588886101539223785508697697559883944494629910626439055456095076419764151064986304275544075111755793668964041365610819153010798235690031420031394016954293437861004269358812830525208646301300331884719868888623423117949466908243168762757628330298976500929283479461523306463401711757444818420302657820605583391054401049643217568574763424437963025916567681062289243160937603893604870297109097015724842006964635644206455367789584276896604154531164897355971879830533204982885922879380130407682215538189223149898272452657633601309916252812273821054044256118229248237941531546952108012681084164177342026104806083085307667377101880906201117545860067429213041797094260989908962983145505142113922453532589895521563115993507255569608144284609957963633807449938058508954206292549217840191687243754668435339142550953783182232985933440129306581111989310253207762424124460984020091477612416633186901524021848276139456553591760489210025969075463812981129112716987865962624918554702224075845431185644664955652520774480983905577381382541841530571616002477407835348806234507825566592919861838241450711528528853159934538590069481357771351867640725020930143885913664333743390726868196205754988787824888997289845920934237388412050908560675741156249043598895672910797699673897789697140805898615196587495750983216941947337339247322057221757153127808128467238893091278522744305980267241960160586554676987329744077328740620613379966949316492832266921639845370766732950632529913237984801642047525166398778749339957785861587352386904552981172673361800992507830473113770383075851150073146800174730943512669471922783324992306314606067169253270003223845161276333336291519694712159932833828264307814824549829013089848911110845477783124759981900259432578794599977497169730938129899083795567437577284102989025660276635812270342375929797253784901866528298209314543679311969357351486520635990126730744960118741185723945828690933573933923274331127815239950318649573807748944859897775724147964975906820588095207803632989625844853996225087533144969744283384087596230440767694554002625772834595763852499390829654589452192477537724278601633392329754338448661796456496700755105797222844938958370979882571947348231095893909366386259191994542702923847866990672533746444633699713273763593586275096479686343461066823991983402885879266565027756980243888879409719117932837709067267969657600474856768592458122550872820276379447958486496051961352468880787118165811730195325025653581057768247355575601044733090312325925327783809773121266492797508127360009798839744178199179751917247037263502501895707044975676359414442232842200443886338462210529536422999065196872979715033751633080704926965084782203503627989532627359724749371004177695533305135562221077113444879767640865560838318584551981113984530793884314255722970651049719297909734350671956721837253727045783419542067855126858006021633095380070961921154008364560839925547920010337441845590792112620474460621652280009767134728343160396219539362207730021270221548025910294976958802108303702683386084024212565770909601404582218452260564596038044563385093772876062992272837371596772397940558527228162823235109414119067841873644312535418038352585881896783410364956836766296149091401363442807462875971719169498017423776549974982008551218837352848402318942076228711377120908487344014766561976213371165897598493055350868203962189138946585749417498606204106887962910894693019607483710472649764222921950971066684242551051453886834374630312758863118708851066484014631213848053843528092884926207844751230018076956825136406013600104993024353704271307949296603072483624247371833713090055172231596807694431207821230458159092760306590234646705239509121481060490425434374149238686914797675904196891313936123585311274326843681427885998670234482325972148982426967326669757965966334046690631621837682272411383493257606735511403292130849175596774310741960366240716172379970736982807669163204296616247792161866642960322147361773079347111846979155857540155897473853835057487721678474574903051601566317324718025515206218976897668867225946112668048854070216126320131491147077512099331476872087260672700932749260978511613950629109321764120736251258459290669485431245644473284724044293331276751455111737293912198772030216239525835433313152715195157018456751878326765355782423436709219639881147773204310904676284293768944588476949840564266631423463627402354984043498958465583509929074389728139214171482845107484616915213419302992473687474791665807921506872222907606578420545684706360011608970569688590246804004178073914174336599744155608529090302842692501148623757156740877211727026160998392493081138228725983344172224164092557547897238881282292188461957153033657240686422900415502181984491802742067217979848542817396881063393895447155492762332167522052394328215494772211679263624642509091684454001779781353673330730442876240244491828191764221822581478885992254644663014051229615516668375012981763054207104987533788296448078688308835221981428846228316425026304130321784733870030998623440450549588510618445478098635752947592959640447900483444125219445284837148647963520910271558015918253281490954711373460460187021908364006414628441568888683126955606143194876157141659914424475648804826139461510510443922122802165278517990185721304964721683764382883914524260168605357412733402233105326759819706273813038020198885551639751308612888133905168421568873276216432512505031691780647503886051407558060019626120075140601051057542986450064475237963575330009939036344844059666371634557070475718785830161257585108669948181413231976410949898015180791932121559288673847509090474879238526769902973616909972796111002277018015299431365188540283086935526812129600178918990001324417138441515885962333439938505440940312265052627181202729590906150378433230421442982797583907638063373054788601326143418746289396828811584130829500900975819606084642730781984431635631312574405530535780026650921518836990731423204536632619010422376463335645262901731601766378069469239217428013132107950110907194752264879781850831668487073125474282804547624557719779887660890755074076734416873655239134110901233868827333226968860021439221402960094311567768524120884581758969783368695257060082532774977074440524083428176232854105778970880173386760363984094866231214648258282927149329574478234107840613262607358061864335580090744216853722277675345403094422373771783144457604921382001616841298269035103680127426697951295650427705907611932843969708219736809080380810857195913890848407778536659366441259659372937416485940863582718727525698047931547646069504328379734139276144540603387610577474195614282804635334006677014896392121828858273725133805726427289628279696419979001121130790441477243412239964648905591137549396635731071054075460832512988849994654533851463052543658180313013754471734547025534317467880510119061779884862242088633947239522971738843177670979288893382431347261134813339589364379535273569617630335686262484866977315265004791240600102837013947844832546416163046169025515516864087431141945732302037523892126174202208632114743991943061896247876363980403577007629330011946493427558095606173388778347970201552965400347545857329901731764997462888238712372696694594047822474877112745139255906686709434172504238246674885068970573559427041183839729159882426425978118929952176922537648607169663016743155999764909560187240162196978506575845018820625976540188016341400674953644660864789914150200919014739390514571030384571771886960127532315224046384479212557268586582033193284333919706404642286678498257019401259913745985967712407701053946653811874392379640014736212494982357489378286066961835145011092048046971449288465693136926811218792300060013598820235621044787808688956509386640520025570954631978354917521830710675930378482386567985231636345852042147672754136014045396925515462505763094299544986745271460741194959327881807018138095029195849403034183159955304144158004294501111089335495604002302595905248934032411973829043212696008773481565996120584356367453126619591398828356026136990622128650983652094138946492175481585443476313990865581043113172179991377445228769403609742890834773274617276285699726287614304653592615474710576329985879876985356600892625873640122876233631883128546843454337379857230425415875255038056644578523859611946808859093281390896029691209217785145059739402531382846424650860718644956309129205010133704465727008711695668531127389435125841443189269717266366593011468468391991430625634430664432796069713587372811723262380244357163155259870311310664654701226215216252206424385862453415028292373558858763238912762191432966310338171098583878560950611928253220224529051019219355876950625577987682973774582642149691557017960397829665031045212331564568142676271956665452484316708336077406340597938211688216824963423011261280394388374510566841331309783169996668322843258904661626189163583566988011129162477946305094984945624893842947802980037383663489876075916382540860392470615752638750366680847148943472739580976240793459701524898390707995993990998502772711053216713082010755681864814711537344494418549322767269415391311133847603732676183561274470955716086246348924390187855683060812622037808065350689369435659642414468942134521347266418246182075253508242989507776910513662996698987913245441491400853767563634550959794307800690941018961091444666870438848100320360624982738013931495736294001150132082575331472900885843788417810774290446007245975028819398631686442554841953712139429736328298074773599691595490739080763606259160450816571889996643539812547961996209624860419651639093734096052714821783589930791183714151734710316271178602683486196886606628925225953049445045035262571122033437138460654946315987274050528031888537068837614633717211135917248801815261009700131219729200107529653016291632837564879062446948871053071886606083815439863974417628169770346783803551438007240347440607135041698815845140162338422902090789150246204022472691569314451905407510107553525159605220967351410829755588608512933981201060795618556820805211585807916230556201515088360071674654926753295432572001900459424154939625360583644286983770570641589735330151048112853628538751021773311841254579417139874689632694540831490834096655128062190788846958751503268579048824855988876996444161114551075728466850228080381201935814587853470524622143275573268261196461342048024806085496853527821010643773112473332064043984178613522140453647220940013783868646550594370797669330786987805120660645858347839351332995182441066513923993951107014960726693629546455581896254364323302992618981243144320209153075154096422515568460511518088556801972464764769401669988265649411833146169888375626267178600462596757169214622124529214175241434071907097422548623520469177796781014178252874819480353284790558354976249892738234981967790150618269041243340037226244469011901460894150409557024829378716215928880998043435565292453876316076445798150506834034519140852524786493918945579390713748352068836053877520494698027589428381628046281460371044113110657020572171847661647102527321796256001822584023752699435429928739460720596002932000940404795291460034128228547509702596144910498982335136762008294428565524881481551533770292940437551084493891359006838277950327419826279266678879497131710728330418759081272073723693275857554776830115837949068231201365537959263730156850948120632822092213608866424502074184858456050477438064378394684550675626885103012719928892992208244469844087489096772327630194928901687798620028410899081755884886374053984334836941680348776939890528392874157590915938086890013096621722985634894494636874588173314790468686804935844894341758243096980831641160010602102382805881497039865182702516252792936163853051127643828094414870120056667251183430296833664432037511927437425845926370143287458641430180017061186235170578158712240643640735588944682642635169711284686250643601582139321823880345377462494279736556120364636807247466739858246943412945185524176181609630558785121617004664360733337815792553664134813052916107792970032477547842861425625982379963365133810393530635773497958998634589789423454865326336451178602812237874847580018752137206826637493434276628845503653725439796605377238101959283734101921511356949535937026257131131583873217467985663534952251802847893946586028848602001945436312124138309109906806252501731721066835696255256318046996576838593101070434837742512008447056730768754446248805523718250516413086097580046843899078750953883145908102543711422310554820263944750795465800246782159032064895984569276693270498190997864377678234936163124810046546037803120751332110991045349167149607628446571216933461588852725077780441186554829833892947122130835995475378901755379793437887321392741183188053080505505526938386770829324985367441628182328137327673189582497685674206145024607349561495228960134803616934071794321318660075863052661777520999324993004835071001305639867752581871114368737271540094372101924891554487365302426742498006915282043706136421584126308120182917249191918133374051516521040102212516950309688677185201409698278306167722685229655444425885267313613097782594480831958785928580550705797506381655343844193353337694199320436512771177115686385730275181135117409573013346766924838447074235827651731805258986295930337811389971815121501368461847651103418207276712175374488652055291681105645513496315752329291269099153814573853583429437206423619253967280801651825276232727830306302770323864782194762928738244447882023240540118615332299694675236792043503067711323316029188354068356214970709560867609973297191485381633699049543133585240379646877529270123628444020293076017235071833407349937372946640474805874222312818152988593567290973175080094188505489554852132925142627951103828118851378599605397090514643911272002910340993083716519571981093291149506038110268165361329700482362226427491472487548115189300975683569798349799160194181405510017318812242169828489047805818687974308526625184721531459001683608520717906864375480387029096467663281348584803833033374003313517602897200756321937764338897914288368379506973614597722694489352903546070830153997709916477919547261058661340443778648888909078724328800793674084058120187282630296862484923912532668191083806738159032132465775179958855209650786432672984545298427041193089536274325517499113620450227190485740425498010908112326860369901432264458776110776380069584983503636331555986704285271011331685606691040277582918443061046525372578678681956661220703046396054459677404301294264270444892275813196036081533734653643475577479461989025405272782738841434099979380784563066043722204155634327392305733166490629075917333616553564800589707775177259426021396390488825680329128698896141114100241961830540648190976651611335865663739132203594212192364790892800779125040252500720841220509626938244699975167246944571203805040929566178548335032277132216572717863855570667748807186993170161415411124448589892347410726810669055610772847200191456692446533113479270923391364132415795748326221784174070258440159822894778459670776660706309086736632073420932295349973532462498773621878690857621530473770660406764849057108520939865190671490566840190389060894053911627412564998950077774102460270705090354972615319064754213608610120947292320588850795609600534736965529501159294603518357893355326431254462003531671061313104809131261702646390257326529126959653059002101862803732466184481886328519688827853160206845907252719670354077039695610406965012336476741811796335168779768074445676704052812608520678930233967179216961324315534973645676811066905185266191138751446628279779590830043312491410129114034042366875972684780510825449082267527670441759695634394191956147376650345406050065676109082160893432607043394336589445316650298611124421266271934443853571186753872674528621881772292020768326184944547278645294412519734818145970097306791841285253008705756498965574322125541365187103829633529186606448284713090077832736901153724801729857835350523234236230787222137708756134857135468768974098007385205180561589531797519717182667422764285592718057310224429501010367761295424971560011275123112809197567658017335755466445816213094899173060087876784831245035289496332201271516977993110110673965079420732783054474767189091888121567790328702986383539574525082133505427889725889052931948889172829500323858937518987476672373087812300549862272519843793250905022996461856698898644782887919782153656889479020727619850678393401662213541300218602430417935445592220763470657245155639383498954326944196272479855335126774587225943265015783323056483607496935701431114625021184215925319680676150016912222105413714213379287549100759881575725704059309675936013903182939084565469834695583785622769582998067761869122898461637888239920410389818764986421807882812515405132244095749432503985808488645587702558963259579652549526246996008043089475696131754679135221001225966132558064050279936878817855529138475662689867646082941685715880864192357923113351220310013285801766826429300037561292325044102294129528797746415602334536780056489676089650693673017420802216969379220284382744135351945318992047198316044496703909029932131671107436286990457156361389209653563809474465779658895621426304367019461215431671969262303828088486120641632011728344783541880922873163743963689358742722349093321637829492608589771691949468066189179873743294315035814462303478838577125198604168006634514777644423974184426022486847734075110127562501402371452110335764922371946452793733736136313120516235560637959119895022191782834271551021749900230946346068415032117999128316126114247132017199801508743653763128154685517641721149823760259532058000755689680703581000335148005465895173036975384099456007183259899200080416784419449764543679191169426991553179004136850140859034059395913652635822905568647495670351682150692892742736605706073649552586199058867923043923039230437901752807921457665074575610733901656638199581974022092100226837423117326972111317043586293063808709066670335013500035926036564304339103119857711577020423944967133661403627345525874041381000898496534534722274535220929187916327169299296035405202361492164375518808643662630455346327361740422065719826282811217550247038873665306232791801966718353443480437585393381724580703995079676028876378649844158289015120992824863581013782596709648370473829754507773083615677468103676077537994027006959993202557511436475023374473188777736769432100220048719560073681712040979969687015304524369722304999084884852222887400739753118327096885991528798210647626538083160122817169026215606162230139693415228824118813661253223723070330617959837641356866627046911794821269829125513390729763746885001431210342866483076713145795760312608400646803593776523656956268358720062825787021025749816735474800075767185165068758707567120496488096537563971438513343406035191457685815092886016293121993887810720587933095543697702721039159313124941502017359244097332437294340928621234293152763975643179006116607389613549723695596962815799536714790276160648692705821307390280574021204545518136388520218360622663732065156162128239063185182804890316367797842504291036903290251563979030343599706823397384472335466699237240907466024408683077888671773521878223186330059967278611238433149844731057749722303648938340200837077990534271461842026785810961253564637976907648323950761984827911587612714975337691774774801677153621108208099345722643065412985236952054024430673679826999445150522577969630510337924912883731316741541777435353807611208117989698509744193083534587205222223944703956705338509288545005352753843955005190577831982438380883039258591400620145840368793966154210034182308030768617284650363560764290189755041684217707873256345644878243069889490538198620719715692326634048875073308122828732824941275314713873396845436451858145613540646901361251348321300688354309657905134989443841093778532786308525100584267489839634731637540779612560192097458749620743015804176841965677051765331897208882931054530650689019404529693050353678492137343311778950426575257201099262917020654534565626123091523961292966640805283212203749896186564808298304147710368636556132657841826874577441506852039938856067164833985626976543809770597602908712026439485821373344062442801354488828622967382706879005816096068888389322108239648425247622392146081013686026002891195905410015858688208987019956612466826310729804991009934701676545723000921105628087561877290086937108992639573810128527385534790636817969735820405706804674130488270928669539405399601857310451989636195280623770813611910163537502836784584604403109509106705821425210085404770676990161723513956282175471967167500200099852941827655052206399802540321101313751194987053852006520415935117028633406541271729016045061587704021301339776918152010825081298958568910806146285350144035838613905925960982361579719178290786488177932817217859146428068110374327407168484592422770952632377599778442064098552494997815476610184567243581120515448039411452372604168544701566867993097887463213668531243077674751818637038693699232407005338022710353376856219492889668744601858232254201723118882654299026360555855396064100912174782885211110437466953449863964107393323568388443923195744486023816170503100230074277183867310937188752466143147472990484367988797359272652090428444069824386913481607779940538091523932391798658898182147535170171625489958173280370620298973168514290777802944402725240363746167641778220779694615578991897785663793267884195777447658884290004038478411519252276371419763178408499643064662407091123826638146807026523686872596420955084389624130951450811996988145207639984046834559638085485110539348324914826632112364738545563340659150453412689244233480451808217068056113098421220271954572737865635232259492326307385574056632349327327863780025245664136085308204542245564037801217087018172259349092972591050609451022588228900457429710062333148266032906765100187779791095841642610302187746333632263080632188143894278931560244122862679517847713192861962162405465984320918756939830545022245887993628878320978919426218515688827943798441768915173843202630007718690419606359370135358283810988871858633654104670649706789160915218054361711795457663923484856218978634722049656557278313960274561335361333415200542369350939980000185070633138373930204691895145229968296086751415883906682133437854889636660937950371145757167653110035636609730207148061838325953115190712676480287294788452796577017512962281756331505160988233579040929840453502239372040611041370632417174706006300694188056295686693774372023199719664548111841241216005478096812058231305189108900703451820002825684113497264950057200088501256321804072160929521339953331993419060467785948182622659946268178584267454136169078518096383359714056320612839507359959890066823242956930127772877206357844147262671581872916160037603144527595815160737718778877437338791414013973528891441359021111654110574923144968488241231496882449715273465236961023776248074591161009190943370858374754054323641872677215947979276951366206271460222298843899963467853765577898745616375275923718527792914818182370362378943169163817130739946773021551091272478159704727125047512537381971514922770007706046324459918365910752450077933566209503936846335805770564630813187224870462907411088885688912463424596572141467801295613400155730625098560434719607669691989681050117402427933740320508443196857562518339257202616868602629234729336707163504757603849103588115203592645819097829594506087354056161478337082571962354320191653788028758272889599841655094517062362012710090914404166310388118466070500967094005673902966919869212058616589603234274057449875763704220056665615441598410749936822549610950725243791595106487024015406481041879110614448094653269732033935225044089102595537752892294282329966117021761527127616634502326019554432603854189291439454183634954964425335648186396587426087069927062770456857858288276241679596234284029446480938461128509322763702013874930780124343043501763541142560651496470749836245999745907150046253336205183892825682073876732917481003327806066280095579702638072288255465034952060573865625617504110449740016571369587490664516191051333229907783580426650384582733116303291579544609617877917256219800314465365677813831616778555609118337705740085644407889021528642975012752521844997868631767275725494974087013915937439149458671933867078194925042585637466916437005718033622876763773651114946177703978752874443447691045110279062051656637118982722951688603391954233203760403706626709894113046192771803091017660996941443416799622459426237531036117922411190847807910474136584409914203053330800586991198633721127239470375158795506498676268230674778844362727609720679902024537052065309304597938274298608780604119869613673437761899637337401955468310103040610486974575432032748088207873707397617524044605687237580831089372237076677032825190991846365796712306495803038608612728215722634770260280891262628293101886126791458037334816530822295846749280918978215574202659988197593833710015645450037896087825355692180717295451882674271675765029186119706909309138374069743961530742876727922169471953336085419481986455038220814312003119313358992906976178918475875035181257576679966676876407363230401260294131139240154407500261142780024074598098137515260811514724331390192184173878547977720239644965916413897870367592980943346656734165052924233013786985468150317920860574715965069458114600512797125860703116938516628384239659773210268370148418728708539599574408052751949341428368373527832607948040219225957440336462651655429058690714400518181968469820940601121937563623913447467726771363328145367030973484817322068003907796890127091520905885674037182825250627073518493515759149281680695842559241505879711836794526863133351801752757661057104192176862256193246656688707257756072918684414885089565625473448263328728701544287721379518615249290907254340660810458889263393087057243436910677066389764701186941873115894007031393162945980607655802301679278158903390281032917402135275056325342665059598385445861153618617413712364365058517568599743456451701861755358096904144374697543082604565823542227528391859500253431921760239928900415524287621776406325475763620031456172037161871509924846542091070358178909673227633542457658319448541328655520192898359699911926958446473774871033478277802825160654512457371763329526846706296140180922313407381505101027037419614538234621781278374709772757320345046634738252157850859089452865305808799614612667914169852672148219436220474237364484234939268704449920570098920041509184387055175545044288850051453846635165721439340910936001683665703224737795306893341815307128474059172239407740612544420271060391074271591427794994710598327002791450209681079095791983474485422019217277538735068673272881289419949130525675358408156397113325677539801379880553128429108579370461839345532662466611495607910918554100927958174082170823138818188679646240485780701506501601154913317732741081538847097080814923964804491152242757923266197058609643518108530667230865283398939574914543664929086802219853541724831219925508161293480516447701736591568778041539228908791022284388683042343082315346627350827115876353745538244823506715179995448325527092808082267144792135787339806404904222467243276059009935117046616716745059605182671559319295577338452309014831621147236429807329302836798946595896402867936157215578833356016663522486385023649902948277683689020371778780644250815076273305442607592580813405075192723908020710008088346747267382193752841875166490633728549621409114244603032954279415624394960928628220830021025600664560744327428416208326792342337548566549646215987210364709254293164767216876160603150323891497478381484632950697193442978863436888024550331375248524039308294494901221384829008018801836333752877553668528803657872341590202999273624494379708663816649800486071803678732467699928550943799340584381440193535682981204818158325312096756738606639766174623646126118002740808439322077190288265005779848789741556087698859724759242778423335291652933383519328018484131516161142467039856622122521789797313147318819988654219645081835173900092245190094935813587641120940212246230616276914948862798029742524969136605212288574723632923506158695584636464898654667379449992058615212829332566024586600905769727401221467164073532378015401617059692235381790668118421980824978479469967908257850541665520819520570040159955642830418268667719720973900680904970827305062865987969081934264104194880856820099099374489660627912659311177555443960509575217908886467888863402180850772010071263517213825021297804459405581181891465910971744207509455846811642433723725376757021754834001035686392049353186532531215988617523819175265082077734102023701357319913418590925636775754273984705293274443951079936520082864799177748835835544978955205503734773567405705025684065428490734199738739453147941735109145059013299694129440090544875346367005126143495978540710000088101807664074710099311101693101105123193178332146794725793980280524460881947335927150475544298909427654071892124574909529191109291655841300267247593279992933574104548681641882660209938303874919756114899608292902476622473085028697960323399006137203833505943415197193944308730510803607605440221195280169637566486764084420620287912476221587994471117503620265401723042762237597007613086032164574468991917351976647022997990785957916612433308351626649283484849522342959894924309599235140146703042502035628583014570198740293273379333840942494493060942070403162853188891411061784013013418655568543052868498082721959756134838937815932786547659933725834041661863872914269599572069312956508178408277702776320648882879473522289449263951854449769722488454451751482850930845263217973826375266559895429328017388372532647771875832070512306244451404657544575411519671051946906010070735095356456328341691577967932144416672690324510974785867051294705805542207222602329065322594226450476047961299896811351061325478525114707310735436548560430555881289252918919506455270057742761752998081071695933803863510954808638855885477789711665146371668055908156903307709401882494836127114498735623597821348737043619476031954955694957956972534381181407004791161548060801466043027219192925760243790103556702395917189804214384860580585903495156214838303371968739292071361674143184800525960958632849979605959488352477445756298289881436730183884643081507041812218331313980352225064564783375799956010678535600128475320001406363733239708221241731632851868809479465525538105941486477007547027358837453101029999766225283668916263547046558676774548520791622212693494220356115371446481772154714342613210512929682029737942046303772709754534273896269873076953919711604216816391848320488763541090620097207355607754482883041344226968909286830696857125764893321414953044493442582171263891127582053256731418435049826440295699694161946868867897060725810728397306221161967007805644460184588478483891551483303423626682703077495065563201240052496453014037966739514808638711161711054181057818506647320343215415020398256582592155107903119473967599202154052938031873353676624503898849334980047827116697638362759672690336119485311624596782387101163362467718996063661469754805432789822707004655815884192792133554258769822757132957708168485976216466209217229057561206097443954613303642073076166933222292372820193362711820635364647360269659293184084929472466609391173467094432369057396860553306948444318406161422455024970614581728460590477386642630496277366482733625912488637573927765517254525526434427033866443989545878755188713793768694783870277887308479779322524708415040749130849375396743612994222761633950849215338591513632351886622806842049936573223010489573260732054334546603524207313992759143054094408326648791536621543496493253311252488863652659492006588197383485888954313571680015223261250689172854863290653822697426593743410867503900665650050818971135514242894063971425845144557259204505210934732780380709564682909970058937246926938183163465912073751788833763059476238050144117341915370153890122450716011015193044177971947147619825510765847582810564811918277416289878335550045952812878395680317569276736690060027090300286658563347442232678311604517510106508350867784631908105732882847999508985091740696939016342533462199499570364624079187051525058507955248117726941104171825079795522202692463133231776525564919091835262457928174471210131176844674625667429190607939413590588339405436297726537978507743818433760860768262178043016140975778428065441327749384875017077216277525791088789517134668327682184684163449650177381525217297263898554573126870302249537948309384749681421092364044784995479612864613382106829454805276427019630289099477015207497844612204063847921770983698718939678050491510895674591336330364762035043195104657066981069594569318824613711876302621562294595515993493928609551211553816846213884920665219690993613037408963942571081773614807945713464421206750766346112430011771960219533134971033299474159087557243449201241034632269253321508269948321991549574176178191770430217608993305370015685158750357949917914489557391193355539587728921080684439229351704021819682342783722917621037599334321901871319810807492604110861421708712275477595560463386372477816155466315853227293243883973549756272314689523532439559904356971164044808525140555903739642943719505949890199525879598558973878879591940874692105989658359766960349256107642947539360742222186547455865433783383805040681098985379827296763818466227945347367060735169171007511940069130417903751811125816695066824270005723724138291870779277885631858285982741712806740896593058953543239272039776435651891966237959489119961291774104565458359043035457740851625986946165848993547232986456433971704310375702268431972217218245816630912526429767483694415113523390801073902659742032958648279074786248946715386288960284878452928163318542122502292636196890970651330911446258395994402498235146629951844585176984224162287707917633059713752042223044523631662758869847008647962330843363053166768727807653771553009336721845848650016823461442716218050104341632184600514564256802429126951890448970136838494477036335223600222839302736420609986361352887068270978061456932874842566709398527771998608156281064724005106069681674172150898194394234550275434011170807642806838957044396921105198563728332612897882116859656986801771050621151637917154011016425503943285912310314463816652640651886883314409892650425847018339027577917082242706937804005304162909862129343330864992407820152826493451787099620343065664577586326306264862469150241160578042178440728981178647849021741767775736874107079151872610216066065639396642615557508898798888011599714765417830384568384143016237113145113677365982632973413948246093886598263736546648782115149209691581978506080497595345801300956371085679464188852880349632644100558531325965478145890938298768036902169261516357059939827310007438724496566145085429380646192789529216502355105164723281660029703074152869640428831359044310389001687130918239168525088772915354064543097886417696074044885377331840155134446477291230577789243598923133980901464315683102254798803598335103291327696644489244713235748192272732336863196140479077833734422418946774353567427163644313972448228014944882102776121225116175141697502473861516466515582125660516672294026241314517091723239013455223241419174686343723928755175710294342061516128682760460536365100195712317324237656991517522448641326939389257345846455788274405577032441941773439960475680661173930447384552210217611287992520349398134798218962347698105963013808252474342450341244004635791252650047140392808565787334356928540281126261778760034979223715861981387568734693843137305805785292737700113461061369232655542944467487963777146000986402951034706125238245823555149906144394208191752287949823297517820951761502951087241731137779822622556657493533339491230622734150212197646863879552953520652177859078304599302157075358609049654962836234430085553095717224989744745606308050552824895797030429512707703863899293636159151019821911413162279613663722214748042866035149900108910898685012302372999933549891501879225950897958413604498484811631406004280379848557402676157959622309578847402129008963485927688294537433669926484979840160378882502189608606027904770234869232799568875024259567111112414826172112570199760564623803791828690863947370765729854055922111058521759624771827354486075544487264984528850160271444252415025610137916220170119726081523628796993561012453362245614498176840070859372495882669640405364381954978596616659304551429127578952850573388183257117146019013467940614990826498996229279130921994097329618499356130966043318419194030234553191830500115101029055185847916633729452584959148975508956191551941023177155452296568595638898396211937294555579110408207980374852381986610144313519225387836259141779653194215035237042801031253069358504494120537742443443451536767627285825749620589611495300534958169719662798453127267960651447290098800492119858902812336113031104934723143041872295939692076786782027176417405259849896219050307341667805801239589188139765203404303894311808579734080610595239170296762097222418730892947254377373668887410424312593979602652041560324109209380169279108382450676846034722631570554341675771552328851526658637572709822573822739547490494569314323660746522507910900673053899760423088468786383035126591921413612054872226842010729118142767941038934538555797760154755461075876689994380365982493874519783232520858465181992429057905256275344417323883588422237183847264490766203900476032749758080082559993013686125354718333679704991417567717974720843167313281464820525663571740728553548835202541879036651630896431712362930007415381922023890155900659429135084846685545963314987956974703684815048758641431866441844110410381772911871432553404359463804139176933073130810878960145805988354989795647607032322178825321841452475467630731941210157021455400729860558285267362799722360284946313440426303901269032990742477801996425690878208524365921482663925324897812234082719982984038306838349284267063283548946068208779515128879314941877385147433619686626719164665895347037049694724303623083462914457384793122335574333119182971985993730624655503133205266976041991775866719434853427822520949796337029259357745974331197682534827361526545856486597565822201895674240924924657869887044742055764932755197324326009296941343972291147844138223978560692491993120482843293605285456088020525211471611890218334350633934989411676500163912647038377316625689991620765126149782274215558994294224178591309963808218030760676416346964006594877657954237983580731221738495479163630860048960789767161181053370187452639467348240059211051628261575764293083323574335912811078677772003272316734747901536764225886597137267745138219723839318940380525488134169711735665562310299090345617267835487895837109251847972560309216161766340309955278162121559669418745621794833245926838765939969875352670213985888799208486312395103557998400415000444210157254887411025354287281498946913222599517460856114353133133014604095931837263794374969894116937886271827206210416016550889708280374427346642381869547830014762565055555513429736821429989831400737777408014948776684943660117943812484165452670604183313429380458074942634875036715368831797247577096444674564453973363379575698674995627109316303926946936356336233537028686765760530939935190201062839090065562173479411573650218040063002793272353913049290940864694486560882873163951892811002080351569886881403274543848252444961170119326322520115317922353034926335344043518273876200166352986444624972044989299229544099918202962400176071080856900517515994332937630593995760269721495327382097403743620520595971195323141683307349278292719008180473484204502423200866521431867208641548707659027822272631014280230631828706438434827037745429907413766272015164042902830388596241473378500220727578736304960742005661334254282605445752605153092887522177689457284728428448259648091168396799841646038716443373404694669034196607334658871932779166373220978057058032400594498146291208671180112174908997091252168029774043988808489959580582919015001223562514664977567150233829127244205805407888742761371295589306106427071288478967111822039084270808466415259722365796434935917464651419391257581747592858089386571489502782927175315845733344753394373786744566317150621121844095598021648884131788217876008183850053160507582172653299839328161952924437421798678920486631092939753639681905420303936768398170603701924872858934880034837119280694852121046207561713625418190296645808889098880054046397352843450488349993753653751863242729983716233647471478677533582339310026891058474494907316445100474535182349910459493815651060042285774378111808239132358576513473546131040973751876511950801421711962377170862513619960192143570554924770047323193861304045194087962850136687372770314267769441227428361615042315632087878442049671648819403339399496963797830028899514097406025491631741342185727735759477784298416289630605527329049766828103787701463833782149381161490843474682413322104261793353890977578678094039883002381667454209068704231912854142598650656046627880472329648379498963104068888202187722496201048699247915675219079020431926760729225442620380297804651854537242489475122640372555330911154190444844688504264129209472619579878126973618727412659240872937953547049468179526662304216771015285951422962764773894077359015271442945744992256862547699873093534190601427212891785942849297522075225169537973634858593224866889970354046929482812680931815342986781072640775095643722051993674010102578058989222108645404986570985808498040420495850338172134523394533607933041291472761485697291565353772702962511644776337031755017309614423738881003285129488330066431456248998255453466071797583566669130936446927575669252229034864087676081019995513116943160866945484412081240099849147407032435257489635163206590777663571741919051250551136920511935761857732500706605655424187951806756028025911052320353843638971279047871468316082626188385679755545302442354825124165029475990062483308235616487115343234595812874085201754524993961312198181299994537937952241325267051800004970533041446372622192141897492336919659058309712000850383355828247731840504469168699205216252399776884359252788080583757345356430603372527852027255428842571305870801419232320681407768159928674109451838904853796185049899889934458681393384411669117403977694120698258497287579247640885007835470258538128469599615229995604296787060971705627015694185826750514834907889550428182473015433249061323313166273600603573193854051721535876755448106838967185436701099106877346432892064983941384622579105416725915850639907392473493193266232893770179526735146041300155477021824497906767519935856278628372284406160409468041707886298051611276333543368833772142989692714493599750684307443157112203933760871369970767580061354514423522601283242012604863201791136234857937254244122559704639400026811574195601401416867006505467244821789588177960189228542043529494112937406505315299925621282014801278650166603441293146601832521116349801309518799433111763675353045250531479690506555565524341355005409065831675195564789612496336293677559191102901022600215829958671749030570798151150308201143800619946358990186311734268805819500053546403708965543984123606888853172585362539812370683316393739373934098644717425162560621369665885091902412143500401054731734282551451543272623558346640428141459427225414732392851586017149222694002291550303930327633835677846090271522215867612028356882995839991321843212912193728137978560510183621471437501803156230617835062863783129794851887636355233321046966889149581379428371354440928109451950117455173542020206566682438726492424920241259368307568977476565576186841616097670902993080751477886633471687088892558367993831742761264548112323095134094642999794968588270590651796858522308120303832840386022921287969911342245554312514015039893192576379046533838979910102029409330086019446757235831990380375651494297681856129495022405994741535945657612622920410144507204527219986029943452758096426881105883650157326226608175153019852978602502109515106390646095389436829910523137800574745126146961893693098250278522946111007986203441670650326173077882172240469334976815368958471752673593339944425646261517700773702407114160613166139505934007418202139463308350279708676883877729792798249134837675151502355349085188951541726304131785826177226379208347419274504356506578964439054722403172117491000850244999345659773997448072118110368773743048073740825940058267805711036562976709570475655379898805081995460500138151825710214550455772534735218155860677125310916295896979826495410242441303703677350532933182943540260749522911838049967683051612591806307117385599395762826347538337266833503598360401067741460963738366213057208918392708445081749510979129114617285214297741429020833637581511959890568769689066157944460358140706535648248412437099933225845214070832640795539762900809647082854703159311082058258450764078322036693952009877469256703591547805057819109852774721240449858294137335762117187848020842707289653140020358541665963740459013132004522334727523203772453422087581618032096743816130038504264219755003513526633241433463672916029744529601063656548729480069489298082343743349356899560250994450184223145415129917352926760012467500924451036831820591946426907094387854745522544471574500123088902468783729578035958903322761648406128662601130161737706782304532671681605699518800918830686161620384735346701883540307406872395942882502314853994949590844525834073932193962401831567804522382362585717252947408431073787184993391016159814862572493767380076404961571793137001180494207013481323195924277864581825743948172429675262534943880737132768765473629451654661927398876377398595660964527639051153234208365555613111022750319800581375852801212850851075049363061580352933096942484851651011641622946382820062709160744976001155727565518866414745831564036947899981748918348659761387767644754696950652980215213626967728600168711035198755537656324342484511077412864146575962510917435181810925281170259842215023550374244893792904445192834948558962505497052503704446879880730637373044617738434928684545065659763903412890506883684433222169482677996700800668606539600814211995509415922701156503717258406841400398062462920705585892391206541543765898213254752611077107110824541005341488013350824513618258436216876017267486741685289322080380125871071570365714762556169207198519851323827641239749433273460243348404705467071341533532256815366185755755175342513488444470742598076247938714789773117393669998964268965480967130490340351782599792475408836039205290559948890881451611824674192147944755802475762332120627520653279437310673409632140847719517080323092644920270276539554163353578726111866221215315350649175953539008077393212160893598127808024928108833802922619440056964405100946093584173699269473506807737677523758030847165857412550637664158036874244384567993083858931712868367315404864666542595170700142755086043793222069823299385588833239595130313784439253075511456376744609709450337575614398294582646320238018382625149328590001974920714837480353475447419603776998705541840284139401820206806200709133274925549946321539120199656816357079866507552247940686046793351379504423395772420305941361262430499654399209355243315738707816668278729050627811803158769736257114039014185399772764961695115571753877472499734821973963047751078146023241334038085894805742861162740586124673043634470887288036529463037945910652815197691263921830029503190465511298416705053048908252550245178128090014654544604803881285607490474133361659258773625595730884800382858202219995976205881108710396131302631602441405487557597291114861667814284844330559902190735421673753237528892863804745991056681680074908848149793029963473788840476693208998525337126634891837466813084082554020066834361808832029017040559184965467995144359731554648494708628569962587825880243771979407449908329492083914273613171166844415402142092484503218147033318151529354716201233886660056293388693363022408307818064010797437502070561985819883776279058556584626630757601604899717325635480471703501394755214501818143242883356771881611859304079374771944099789987939687445859031910552588135226232214971854262789237743403372352363802490898195021878653123947450759211598626847081800290898429926281085782225486204582073379618691131608370596777233773822163943798405906145242471165925677414935446598105049899007862681238894808311526724857252068883718061921016679681118843095540785485963477745555704400909348638659238281160818433798386698966726306317533258073877566841012744117061035394663900817462458680181436947491228060909271664922487899996798806154305023761953230609040330849583610663540550737042916947498957577423128338237563673752275353173553030234906292534057994438925506551964242386248581295300726024223191258654232711271270282292373701137381675225357918096328922766463960178733631824160846313928697186621547896592816687920871700381102334696622922694847695669402271343896575710271483956522806085732704002464866664270513739952584921031017777300772466985708633586114286332989292898240279418995432907170496302589193724265826670863513078686298430411148735848927586486042678587759632562934299142263905245298160271928072809089375649543381277162461503496388102152593887228498532185733964062821319989084925863761316614897648398879426802784723560177422180497523510581737940668073843177262445776035387275463223758407758089847962384932776842255593201448905554501212056494768012563025991361571529940084280579822375672495568254952791265121141939326378291691844068004315281984594447754007836206992456292343742124508840104819615686538365078604039277874447171906442506549463880244677308426221732240088202775615147424038293152766185622961866893816220348024089192349158737121510566956976277672473481897462405022333637476222848782593113663337555991195106972570452370441580486727725822052982745458013693362116416770264734633368334048813172130990631895594248500931307195013386332744477172882058250776469127270829615582795902425407669442439274445198758880668350099783791851243444662817206063058038662530783412821150129315963988783399188737148407768015194788061978901157181126707870739433510329183748010491735739175596703255496044993889210499615522153369441359071488398958826772265925337663174058162004291630399607474344017696951795112966632054343924399714610627131435552102858164536858966566735031007204936664595657528702101955726517527499927369092981416236739127282025115828845484977570066204012879672597900229860564337439541100941106237271460137466419217810468238276861229575563646357229496445175062194420458738080520385321324019239357866414128986852781264390449872100412693421157233682084071203834273729870631439063527094017108398157447207156483345864573373530527064690979566437254394665398146969648603924507325004125111371777968894132148898906290501551873166612788730407977552709581114990957513209205338811822653568489752430028452483040490220853730443272421847054348674528781909628559146767773331830890321459798635680816551665122131964193661011329389549485794851325653741987213909144988815829749994489047409127934768153606571719630497612237613737313846285102319971332692106060975744490634507893401389911591024591578978782379467202792595941979207474635050994417014093682282373113380114045301081942269391493261117704590247853704395516748738653344795642910899760451463065519358850512272360638204515080522666048915639201003500575202040340059604858239346256348537503682422175149800714775211901681141901120992337663924105552224176384621952434651733441044534608490620576279436721001195194526756989708751501629923833326581080770672877174174789806554117320978229849795841557682042802148968461958406923604759586134915877238030817827028636438732897524176318792647229895624912437181590360032825718244270082771078592573205098343675171089371454684962864569923429815608648240981735766671821207239839067621855230511738420199841689095823976692780266040517445045466831055523998283324976248592407468080882939944368217598269069661080377200471211101610584715872919867673023555294062783355957155675633875746137472948808666887805957900145592075349868044227625426902665406439802368648461092776602001810882201945607133141744160455205193668755922409713612914809847075172044939298224753451116493714056599177193130466749186349393190896461993687983492290833952450310862028241796439851358730983147774035606727194085401440150542607328888378256260892189719812173352327315196644753844814228497276774383601232434681336906381639064241155454009599475060829258919401561923655341475976962459221073535606226457972787850379214409646996743749167838239626481086493560702468230264558463465621722424294101897905037750216963908488072188130625183682752991008194423227848594174312438495459713817017762746253612361718741350340964259832083437430486300431652587028604015966797861315104474127528074008698235959990458642073926985802304236613818752329396971077553891465045335622360676421071150974365683593220979909772891143013147274075795114437945912996406546246672507500817631270709674774009366903411643649900311727465935810002502074632883507003420406732473734384428398751082425735152539457275541073374855211844988135500749742351135790619163502235684420496149859553055615132078812035366322783491571752230369610131504174706791506429545155738125307708960104323906955030981387598337935884945110494149743948529176582482365314285490742580011938640064503229553985145080940293031351639216582296712184584522099002912708977644845943106241649258998193335979009248559834222721763031568119046046970268381236994139733778158355527485610471594841878418573235808727276875506903196382669422894979663746604763487128941756142034248121175774007623952997664408794858582071419193524752642725081636726609026081481796887386793010474154266213198670360659225149610513157045720529426472500687521496748825627986710491196454477204718915218928853512952554383697255812587269029796909587813449514429204648740178160574084246172704206511408196562394151446428854790715202780697177277244299323176644704261919308894284387443726838234006668991592391152209237078470218038993381072906357385695478396247595095236524924918217273591277776705807483924031805940107953005388800357111966863126084087940399000005396643609288955887718538604750440010567633660968724042658013977387550540878058490875963962796848143734962469105493688805690868583927184731569932418469178616566082591586320674993115581416706869236373522520973059489635510052249949476332569379668663810207098216988513600574765103087231813795247049329224689335323513380687595678217336530186914550488661434408584134827753449045088102970850364437835337613811035325368772119537248886520920747589609702912372319726018407425915221911014751586327319159517221077142551050343628895756417022135927348358007866063713086202210335082230024560139531250860870488108631774660264295401342832088590361546477169340823067700352382392035781319103145466624053507918318037938321902042134475305508621287660064566402251544643005794503445198995840755861979133206339096506835548439883380751790518254223977881766806272033511983720384653463565139452628519831324854317505454414861421996570443507530868805505945794849495446005338781388635358988731953209093616963134472621214394914813827312567359171028053506139800556691924349876791235359915219012195394623176469708306401450313055158718397002451085950622175162238382961433233131198881026041558478221385038205634055337482675350736828274339417861336569263182196896379526362787060093716637858849207014420865307912476448416081605600748366960339357519703731613394548773168539811301635912109033244085659097392071260689330328434399092223500626313215604178652477445669452884035716082376052836750696384248572093355996709439450912762679799303808885848031280714534683427248608798776666534168960685999161060201504152528966716845363510114994022306687964883172734036559801004699546197096707492945633897847701620731413012539234387824247543511571394561723142392423516368685798264708082397752676284284891780480984175805012837461274573545755372539733987916547723507644862956216865286260159650584314874059623415354986583349167254756593657850679617819202412749655296593365094246629223818523424077414486917536494292113958657150771217703013336579601816746502037102350365873052417631418142884627361101251687070063195610429176305536336797103844927954564670241967697662477865006219301403279941463321824836186349250138308178351730788789360368115566110894717967962754996408613960326911909068764935090901107224148325068302703595969734825876969844035821423245403828185910044319226960333724835991070721533738282829136887520888009476662122119821401687621231549515320075489082555242907865783264385321805860408634500984306948596578975060933289345495468288098663962680445565179837583400768511444026829072250251552644935886336707342183666008107166191493849536463713963170678918475029434725351466281221613580240334967518653661549229410651523226532728210929458595394826333864060505439225467157841628736218210338296092586455474267341189180942255143786783780721774479916433611908225026289839746673578204306687866947314290937169111557635590003503038095775464379089563344338364085453600189429967007538273187387766781789299389798777998447377492657054454078181366674442497246112473030186345847614790589833393355079399879214963375433082490702537145619236938304622276585060523859963795134788046593697535418143274905101425946547098313929973871448765756742885393476243672447126634207744699629848616608112155037636385456806548383974929481184321378675333226288240192719923147493790257656142927311637392087694621298842853236127840661677730151340574017473739119007533031123496856050481336781629318301923720268246562278854043488777854764946551022715891298632671436113139390400538419396107602935383753719306555488642405718953618202703605269824381513949053575056589942230107559198846635827251033091418307039257925837768473610711771151121572880851583490402182927835928538404834395958835049624437142244334981785766065268436041017571010929857933841796103523020109122304620968389533060570064779135863970423484197244230752221337360446346952227099969374402877289702950104171978974285607086337476486757067897692060966138077069832964316507841640390678214635679757314231889818187832978045104299258004917255931514184375114582659042439664164818795910760276976518584082291109607520850431326478646774600124454473739158533412509598747153923832291708217193847625017716414795609186124511636473479415892677582125604500215983224530178625622082163773434658594093783026241832328254082692455175652821020789742886291567041755491571698008649202639758067510127972727485831602519938669887030430896299901836787264395374677168177130896428010249440460694998274849790965239386061871390078593321930480021448223412608806772047246779370160709809974358954789722908630955851872312654376503938998910398953234314588478648474042675560610247902825666535337238157286998228725134052637556691235057634859550338091076647057050698009376426116575809357128237911410816252804637417607167679580297057377048880865052596935733041866608231518360833097552431538648261353758183087393961622055763910215402522045924388113713243484124646006562999531488182721988933953783534780544951774216032940929130161911953504499632077904279795681015554658874515781621245879660794647868201347114068680503762285756269823997089548838893938660649614624233101333065496880478275308468078220165779954609403031879558909942673122803778547911094022275043762503821170665997411018004836405762459855793603919447962376420588608642249768622731838743433032089489246789831027573661051720575085358106556244461901613894621237448249668104823944144614533362351707361334413936964600953561090400570603585299193548537373991674525090490906032478956581955424214268895484344065465785785806655741725004498024950577541207094238050447952507308316605554197729848147586255373716883150042700536360788491153879920488917709097087320928316735971255302526751876514084001826935005806567210744180830840974196039704543569917418219681083206442945241680614170805025061202644123900328061098456160246595123492518994945034064425808221755142634133849926941963074326289515789998382753802404386527324132330457185770105575754173439604259296516494739225517309125499678791432734343499419972979964430245303152765104244728251432169133143068311864602556442900080504948779680706662833302028860704468583544298759747479608500107748006051060699382458818731758487565656754648396721159226051097028324923954512088194547682530988503291934488679579754480510795550284356821606279328127234974855266668314898983589993312216731613129977685132204348808296742228158790501310851925909875861079327434845454983251753414393600779059665026185803276817103683120078659646792256447228774857756980461867604602629392108808486740660185437549695014975499372866351814241317900878643169817339503604668449026856462889797339112450248023691376743835756197983522364746285705505524699493629232547634846532933453082352872102710010308130479859332342652292651874624121714380220541589035530810567127970199574157980004476262405246301801191746109605241224696929216552576471639117771744788328914246826583557775302041884502494751786495244584437183029148106160821308817115091603476853029050031462945210496553406704927058480170015685468815834891185692668113075179366913116490025893981391549948112152566686447294517624797631734696355806300305474492637792667626162811587933941845986449400606701239955992280011671140530527276853004384041991288731064061060387606533555938718067732770283178506357749440808685901853478291587853822235202950343140369771096855395468832941210604686417061904746541860943151837188214904331410393463375495983620288534088984835558944372165927889300889642396708410418654743318443123864861073432896693978396667482109801439149939804976979680250758018631168883131233364240289053074210648394526156628626446458553188370542804775226415233482232000759272530941127388080080968721845533747178150633925385618151091625181463190996055452560415508447767927173562485980425052304688465639295382651610172460972719322448428182488475391611215856693662680502371683958333892492034749613622948028735451940228173821285057890015422860200237875677921031456900856025663459881755833295793609623787339829320911052328917630478715912495765358387259202049096507495559920251138950235651419143907001951254490731182571860949727079877173634424131828675785024874811199788193360221120341237727362716703849566964607049484229241398924787770540429750127915991019138331334283659042941829805708027505977275225324033571560255008263314121414141109631906648323307785242524386496348875749717762560446326285383115206740122894281763251184018495072633849425948667273604185010856214510354683750107657566436217483099306809559557438597924805927270291895810480388371331408899094667484056501468235672688778434292489521086768389774939411541944749617947159199652122707738725054780221051503347501811587064781278616629161015118670458118402847570038310384537272383368444130761385337949049659517142851452064129842793520594073927947572188374756039179007316899026137134499369327081293755638532433738431077038825814328066985127535191792860506200776218297153434124183970961280418654489092336544806607855090549853665206729442577151128517330063602197899806267717010111068201916074925886355545324129439922650793773372977280288090340668943680875217101950610271890051938893387478768693839830836506852776580627502276363472016227925694344228358864925329601842430056479749910421224701564054615438237924887734430776597845247132007038532015081745684647008129894890052239713214769609931316845726433941534990333267144205480581899595199046224303469987574898106399100406801382357241134457340732141060463595692011078000766138193517018091561389216414252727620765844972965851620711100144452278298596521559196848842718366911625849477177993112059281248662569199470880320998909455275815060136733516722578934143013806225684547456937202044981187047240686531547553535216396533864057923606524093057186478118169407562932919087903775477197209131556884461770359130894109888199981333134351376227110620554597084440137676140629971251763931234596065440975275651108081919463095386583502724231848373041745521747559498006219879429404582878441860433786994295368570690731141067359616318550656898196454339266353242711293631329058436582696734047451154081255019254415207153952351624843782628485423346227837369800314078741395275848353590370435163644017929132255906451103481804481435538997819597039251541632362204666730637510004523782590556035514786514149280044606656709731636966688689175917929278462662476274134185245265518487802090821717561490589997612101332074563101858670406859802317391210736114980012134174442426260684287412374376494881753956241208389806037864185855265294139680248501636272422910787916781521265157048537709214707360016487161038875176792003615793221035079228405005587711036859332715556335167850181172361572243919102991793503618725001869215264771800720727970250337096284352259914241374654076843342784219736625898447710862454251080180860204255715251871141192608206085557190509719696862929582578219980291394990350776931674991768236972071988052160220011718537513358284198522825984088035113531789030530002811931297699876259635653888911048270958055565131112024544837424276566031154771562132335928366713369372060236738914682206739838206271941159998974441089009680750907396529708737957611276115446800698201701385241818519918573324405768866107717854847173284958671579349610388747506751103525100998519174207843615450502508594244689768372049176880878010977615039636384729923075310882653885680234272014965353800499946718012616521576455508914376862312338382414226599404892767522677996041668822623922562838995306589584126586026662119617076119008085127517299757671566536901919566003340499764476390639393224222317916706795508871274159109929358106475442367175649398549752543893612935751988831184379678054781889206840391485878911991110295628315026088267381486270779197944467586476326941066832678191887141560374880444525501526663297275216760882713078037368292147066298482610153032184025264638591914921755446314469059400428787370538412339103778368408919780915062612023961902069711681724423782612440455331474118980398620150297924192964225315869003328694156739855980255598625290063707913485144476668179009775104047191644340033481941286893268687356805154773107913643278077984915759519265503855563539858412907148387713322188427111296941543813315583049028184977003429491709836015160863756850465771810238529266441890816881724501971318038127771061464095130278934766101077953799503577347246152143147808440180426709236004214061062811367174403406022803809344574974062876676007786446941150021704867085504881236210380643740857933453642154450281680061513732980805332177692009404578545363655482135676159479740298931500402126294156668837300045625553110970279846847198743888181532598323391244246150994926332928460881027940748074734702138976136224174697169034079151098372539607149054305812033801612365200304749890977677072371403283302444179949229477615974703874315341621295512154424211624714503021111191722732075120238629022119847639641294873565045220473464442806396695001253961891296400195810809609494693416002828834878535691553663637791464879069356950401873693156420083802933147540966003277612095756206684336317782773268708608050632529438854607943793996260683895783115413114886169302309931125700824855932201786716803922559795806484226818270663766416354018461219933156736307575405188035791796173984986891165303010747064113322935458549816507628812448970745842137492711024263516233104050749870988119163523948319736216311541475311327184221745717105979401431390132796169157314581436096095656983282490435797903638316438862149385459347626978224764421123324102929021895139230288944163947735247290240199776226328257356538925651957302689323386987995001606242911133946601313907685024443435617733091770097916137106897428205015792674218511267007620245376869361014861566153503606218852996933737422975251015345491833959921680228394507930706179480679104270339773777791898811508851228470332498590412550353292778590727018639677992152133318742915061043100409881001940495476324146536966361893494839206856421845893373313611677712411523940273106349610269346258084312435538374238688715025677981268369698931837967414105595671175440054805288191776139981166292234832092182652094031781532003236110266005818633368317259086427173037321527405476210559003956487283630620765383019761387257241815805850444091576110089968768928910009891546859031947984751689698516742119709038062792668651008042065664170802367647906264346388070515945560802396470900770437072695106827248939104948250330481492940614608917111735825624539845872622190558035965505643173563121066633170825912921995198500457058441556561176090715322429565571566614101375578421673794796450293235348688573876590747770246828239347455579569982169085345585983971978914297338990711707183248250372938833562666595468073373357367473945275412980282790460859032218546530327111125970296202433528477012734172769342217625337998324055669361776812650360891910532462324529240132973184648059707821490133351741721131125266955207478125691392536902649775549651179342835812216098334755329936236595457905713619031603249468472971262267697594835708551303393450726401308428401151787660664783880151203675996657732421834326592922468496697234577319005301904854983097194850601557371186432411671924590587305661034735688291601828334876873306952360181381235515196270193732198941230401022484555902698553663888895576044331247973775747329321275320618542205102431113508096141679575373123002010070840718130544235260959712661500409553892907917007505222963776125687277335310666892122029001720401420734337889371085773579005425754332923441876416169332268902855280289719392256679668130872648907472136422407445007148057778848006254194186649107734025598972195795287061969927716483509986157365754742685154455126195074388295131328424926904165230741625491510746696063470310332803813062234720280127542604788423782681938657332492895740099843431944215935088344344002999507943486383607977984840178132312577105800761002997607436691753333271962301125334083053763375404623609064468969213682568000018199213139096216611305777719376820641589046851920780270060290762502484054665195832803669899535757089006932618811526642194472869936582667889256287201208192474990693530947463059606438775969424368786035796353465433629750250949350064996599604685826730166836982935305443630857050055143575485569770321881323689350296861075472705464134908058731637278364832984903771360415837015859059824276798206628475428190514354542495789172759133639394906286063389329611549199074028051821456081210198581463186619353790503807747172774515764063762382016531545489598352244277170986967993476069526910088759418264014338583154972341061566981941538918023665711553942201730869499051378392445877171058902836511435273406033353394219234662796836258274935371272928458404561258113863759336356676604458633847386930406862982693458802817858211738333876109240288371181779419650215268189732781720192548801666131286329141892276488941489712183817718722030670197627325786559021417351100492002680440432707369656583811128687709449593532457808792450075962322904892666935161289412495352188240964533783596617534525211762952640646037903956736649775800019113566953292322197259663549395896957039522367390277428298770882238970030363053157721850887288216381090605019174573155775671857429342385337727666041859599925388145685489276340765835459360130270009532102115517414544580371984075187116416325758909500580929066767613622167245144180324994828213247628128112984437510342213489414131547306510066843700687286708988234464669067260903521144046019272458432947092851864429839485925599978467191572035902627935874236999085913226001901088642800032728460483403924530019764950207566584691358881059882219995566141594227727845942128645999336242560012353947172926575359841264603215657698148708747388617570990241198219519143262279556767191569940962284375826374409343091187281739864542629966519368050932071653348017856296325760066476074139153547190653426931951468639818878058520782964171998047868179567963903594723480290255908328162159213973029687198710511721325062194288735517064703084091429038206123462450021153388346459679968585629900872263668529397012821099770848279358154382120246218447414205144549559077853378113511473992672645729601657656081763025314190527783634043123351557991304687883174045084850422881090201807001423712131533682487798092177472150441019281885332589290394403962244763734689447845313693638069298670165140318865583813462274660948379982088579243033136884593870804582496410789431681055322878607366203680684248931524201769858320813045810883347996364114101502164832018982023859904294305801346899274878756824420549021550544016579667039554345838912858090843299420318655168767652628478712547345685180490438181060897408168369155695083030199199431476174267860425232973645023098135751083912887188851009544111121824665162759945972717103334603314807252167290872872243560987355515309996973712403392996522739683169646493194502014988715744664714323600710865296216943738520691445310233447629693956068281863797878185213241633690887285993350763834135307369303837231075900817075745382042961413977051123792029589163449111674609576204003630603877171281443503476974767163411521494001901116912841882986620562666693313945678551793155469644274208068723867728660120864260685803487089657616797007569634003536541636413655017193255652075593715673499140555619440620962695397400116471384756073015468910375216822872861421673754755177925084214626569001310863825525625850802623484389858025876807094349514263979320955827700352742535737944437902904079404381693611278570817452832550921850449596362174202140919287029210614499189696022564323406099656561731275647312323591160231457500111127289912544749262204038630721517871417983658139668627067590857317601592329862272650538029170336670419492667600546564111583783034572129172587686217328035195977357843291359870743844560669013089307462420788639243511607111267599577582190517634871708519189384509222982393254165513493336210957035606347442077484015376902265037790862672666582751020772986057335471700222919850898649211256006525550475310095996939964251972889887606002525807456632165843467229397168852578128260122233369963397687592197018091231603762033766711034023713760946689346927930262718111676166887198087137349209139824193114931110183058310617332437393421746920873050213024145547054107620465913319987305413507441019740812962119306639658690471538248158730574105384219346128146031665294256887448599308902624770536076843107619227233866821640037614063604698684069773803084368442098068903415321379335976474048252388748443375646323751861717074802326967937308775564814735085040704571257306088826869103071693920435319773472379697133560462492183031898218953924663263435754987787937553211475103922363905004374898722909769177236082967310704833730534884784959841043015055018200308081787234867681239828212390287904426954115765448533842203737977580613704862767170704395823057702567273762487905020559559384629221354284208559002800681848860013004068257249559005004262723631988419229530510801383408473188571748722434400403641062079528299127056340686323307262920093350869207885197624072670220771518576360002772944916976300811482313402142852155129702206844949402059870700334721643129110865388491919847439620480069052303182256096586244917536470298082943451259605248240487217407399347445770043190354046666768746625422452870617077790773051241465391090757680856158167387617728509177172826292391514046225760819444182268958239969440311215778184039500160080049151027872823387309184645422095844006426408928785991789577240392040072878389356137715334138926497985157261652974064230512905434827776754271327078427642001692936149237019843862817383026175768015373173354143001882644542463601282637313905214808316975502218911988751783409952943192621858316677575611810807092776237138550495760284141365509420007737130275894490304080285810163114306959198575794563238364192909572978478229853535262495154534760592101679149116578416545622562822890396245712124294912501433185415408516769500398713640273898985663260772751816161440180128978639362685980884763332467307318392216562735640953143295141944719845131800181779212109852830304395694838236101470928898942760539238420347961410706688786008469367556237758413512565562196312509115097806941376359963128601468289772413998143963406860585461077828134066614931274512341946395551380329507068666646017242049122888560009867116228866275198315744159955029354124280833980092635298355521641279977036630948831647405973220901373583503699290844949512731865228190429698623812591651081855716715107558988968842434904287343321508606823474262446301376530607639155229096747990458604306507541015778231879624146120778547888311395540418776710150123520336194327977484378577795654973073538212435786729893105852004329127507354583299332543855414143258766033574015071439691633480649564166696476299900370449289020549379223113854522006276821642201716303080747198940112874706384869826841392645020824759231773409244511900953745529405390103441053441635395018701321037862749091491354115824695991915194357966699375363839026027283789569505740258999616055923136519389065604863940626593850463486923580185884118810980381789144261645345031360697997312447786443495140262235069855207442241435255879363256135543623990549013510406247015103567945612685060806652238591319513114506210879099120446010197985116533519433513417141812924546387535192370415147333699471247535023723605253968007955463000602375441924120652983121748382198363962086074389969125469446837898059196362470627397376310756392648458424089353853360473439063620943049025319312685287565540712582416689850766580006318927413566070232850323838754659538128126784161214485388850669592762092101765366514162604782172077197670126331124669693525133547658161730222277204605036431495701699599268787047392663725032925331325604648030220995159981638046744956351531215086830872181723641988941171631996919653944176760291437277635537006011885640354415151273752421530447041405788388791411168461987042896258756799621705095707596104038722207624050713631110337597493359391583847037434404737263162105420644244860199452287969897061097211629881887623669732704705429940583115741247806099307527515650381766329168949037354645692075967957071522033361092088219061478917744892842730216569686698381439738566739665505252506142551832567524296560802740902513865775922511531125962707970906725485247096921227373506848298514932555405303938818682808211038322033473735706729090416383086177484419196057957885793953686089182507983348271455981243089286884923685752959890631432769840174118378960185049566442655872205592503095549735673417627659000256841258796714203815602195849890668244353551864282061851142181873834630318909245773911221692393394156257745545695529814489574270389953568102538624935281962158670067330018153958804343842920193792946731775404448429307025278288573244057720335319682501842669978042957686362397268846813758748588353415819470506244696158319340101777307391878369516559808566701680500303145532601064116891784739754212541451541247003501921971476323152763377513412133974340967121068701092110654390039191484480763662640850939126629364659695191784835952629245539929433854806625991912535935979413284779382598339753359465944908135057984372438089171851359438955664856961587375230116039298120743711202510648631616201839980202834562226952150635077017154075567357324333968328916257072327388613190646400290009301263942881555943691965895806670953058088463172041038750815994297097466729606370175283979281419922379682209258323141254895166645496347774217475366701144026771647681693923582915143175274978632191187144136557521043084843440443768279075394365669004430798088635367568599228828718196610731497821934488046609790551549573719526762728334870195234039004693999697193499273002269396619809163668933766559186909241600331341491058561783679247241904450269605158575491128553446273653251631057486345189459113498946325845025302032228496256417702061037052487145000427052785377500459392825768335081316879764782968027960101414386599941464666563582365917448519860859936396876062501598579927069197989617677006942558117275104278533841224546310073463492303309383650296750012965280897423250949383463000188204620706395497564469414117516742720899830989097135109864156237566928658114244234500514411082467711105852445808695061987949739804138442051554729295738742300253303705959328323503255744517400703809175843816149850189131510415879175292924782941447051893296621639810944923635277900373959271907387853001011734616972229123610132581786173923418754133079495508017489319173428969464269677211651945454906981889462367766022066577435836549905302256325871570950858447518248144895179014477785385130486471099641557183648387008370854469076782882740669311882281173702963320624663565062226676896487098656160242925100761908604064102259464189393647296549221794744818170740526690895778760616528265689615809489517807965287465463452839529106148151866390135485461921771265732956782263714237649815676048153993886580539588040126294537937346884579014153401563208044489189581539565737670374319713059820122791378535542881104429844640212622600802633089035522499731832172136619153692031524883007764075791308256417809589009990498127509024051754716330942503330165920482915146948825536815871703735093823637495337797952565190134317313297393031553574469043717190622869892377373647498873197300307850002868120199374612719802516166752182324900653940407223280747510439092849236880700407867950458106618724508178223318141700200756873799766067869380168013854777440417927984489977746364891029346864749636758946260744742317054383383958199668460064965398312447046355254275165013416624802370255928487454207848719314020996088560861924094134465435010005227495283597798402963368804078400204797313796124292954948276035011438229369876142041176051729947392972648761797019878838504941967144455315317299783200944865127986330437210024119502958268886889604861714636030193267264790489252292427275374715735248305614035497044569748990785714952388203391510264091058310511286619806609921868592358840691545462664538233208863994855590766545912639636890220415231736940239014922572187140900896544435063572112666130573887368450183815164156432432751890844547484051965087922712444558815053818958390092957191898727007395058475634080831728460689939542485055091795140457073755551309256597072202361607918788872455832809272329489440650609900864613315422211091458295140183133397362158455488477688920799361540675981659361231756875332339808544344755194681763607944446189236847958487267019437743942185803422663173458276533136003428458042121928641062688273471320121675883207555649857548742825875054169884509744116298107501399720963164136050247076718650774433627636091116109970313534325267295949719484166402430263937126074319028987233660266636898269848926152036172084611393354827791355358017022938067699480341731941876731198268943665796325365979654336067433797083240216762758226122065303088525654406058119366918623911765283496281590676008019846025205081721214194577469485319107005636494318661581441459259737350967831615481517624993287755929637527328314287873510354142466761674975119776350206676840677932797132708351027383725984891510657992275545659629600300594333668445002128111378682015955687628619865850065801455446268322110574191292691150968442985343042133451520273676395781213440034061915704658535424191422622395966547976592993021653192508079811092931920144939034597095413166533252265935160811105565643961377482640061572005728149992795332684030867006647401037767865906545804150868111323501448765400902307142726635591251232293921000957098013359618817168897568120544888174214030829625941624755584688319450411201389413803519294510536485779945977805628126270962185603879105767581967745624341164742015527752523604979985181652312932506593461872849134232692231391524897737315233730278888296947995467810374572469075263083475367381715338843553478281813937858965961643294117175523910977693555203144752160903947514315302232262000059455549484619502721400246475564715354704022749592647322331278318872834257699101922869499920311921270825585324031061447683630925342262069604279665891677312026166686385500544673471736010310808968228650480893043681978358675004845535780032277223058187909890147364220405606620893956363831078427045660299188212388376956152802848417751110573139532879264689319454278091864947918809077760144724085701835215826463391065925644074198320485238558137391557690672964334942338183964136973047666992231166238535698361656081867056297252711458369417672925224425652350130037922843914062520732700634172867211211864114421537716470172812847989217620557122431103148342760322858378954494280638313903803180485628039416156851040987425864517436510648909737590970676960094410387187162997965431146019494131233699434019640867224516723905670862256982191233585985512863672004512001924519166889513196218126709627592108123000018850688350083444434769076070623855957173985045703966654243625618141610348905993943157177999211446543316184455056841687640869955458872043013545457931818351671659391639418740023522559915678336819736417516671184382639913728014161958934035641760525629999489160294651470317496146396141092882092361182238572054731805742626305938073785729860326296372501968571821492964562272044703383696828402872187521530153056909228113088624606173676026812363191173430992015048920422338618389638673559829971766895064872026329277124011779541237585626899248088325305218627288654633084313317562965456930301933992256532114699295837167980672593539582854563328383666079149983783013222691869863738816286700718299473235734522942986192170292209365652862920809166741723432314811024384565387643665932255314859066998226667858984992360993442970872694330485019689453762777112475822664017190349433410629104870880959181265446444606873975037159736154028916959679345310066965945375467883583571173878561085326832048263916160275001093482628880413076613851326169409353050388771138744693477356874163410970280699671029631819081178142701752078708214469579096471645397642894390666242452234697384131979216331328374087874065345366425645015131924982080072638732172098507168230063032160830079278449056550974139293796818630249048091026568190849261144147459044228398891463289669643355511431765482142268807089899859101200368630376680884859092637005739020312327061406935309412156596490157069768573308021670947257751805639612627540236548186054714841470598063741628087948562032503084930648232692157966847523743923026416770126001307822623101379259973054610505309895502700890867094272283739845689188537215407937896828619175263819917333073509698310334175472650630430377819596639434398339350961656599515507733060425715393178036280579015297975320564081357079637927828080508700469061166156764817327374364308924989739166569286837289856476540761524853184708715616098855408725888458980875932402677115734243978693071087100219439483922975898638450363002738265513906062210585493077546207823427119516365044609586904798693877164171613919382881185518453562899029788256052589171292129723891270715940152233980447343671000751619613157413430788435576309490569205578737786642794431528182888925845194195395681891362088823427985755528404798001651307693480996506745194714215385952184842203759559052276573914132003383997556557752854660355053432980992624484523373149183344052839527270427231289458250573947918755865174902523012474864549670527269571684463783538882402270331435336952284371735556196796367895415190636584902786907026437253751961330417622519819433609937351880865408291726873830708574263244434781496368912966698712195497608050265173421165688131674082204710718007258621090489953576796841234130877125809242941108817736107620642562633905163398089632446075467170126207828971673603617730928146942322121185033272104181357093231642636026743120859127401401737713049018495695229651089962219298971037281033436716533722599862291049067393719786774561783690042547969453398074894643542562118141642569415823976448179119215250100033384472441385317066365432323196120485515738668011201890869078134453387860702006674193158346515668055535185228216688713717035420389551072013909210193554321311832291636299623737532564752954061968649949812472756728796294391168798644447842143103512380026791725342154953778616060027822721503880159305693579509100003598216134271896244743820515987365876800644444868304964473640814622671297840882522935629643637248574009805023152401020583789304095784428268093303867712965918161364388619006020504354316733344080143225530116231771358703019758096610573741193235020695390094315752905764468199311907200555529733834599335248855998691825223952389509602948830516461119651305854470239705677869990931733089818618803725006436655276200318172476781215118920690039262043744463513226972349793480243153148353332530545889219470770887209910888128045439724040155952889316120135031668034670683300842499533354731986510642328270031924872839444039225242404675826128918803671098608742565324353578209450842695986828447881248862244200357112723960689000543074690983839085142951676442254749295987605749795927556609553730451555180739266384280514082812901477977675384680855903405977072065745771718552739504020570830536450775474889105347768164267854602938684586584175169477588773274047994875841889171111647480856725139557592041329689710830109383405118292754280360449009411124451632633970049207586534116293677391955853568165984581891424898642808820098078514654359925649776920767488192339494314547760209331223873186075885207261257204945807296865684498038565924277795818642574907245551096322908885355103898714866956569052308461970410864513651319800595880078427542832410165293595409504933145556719346034528874242866017405338722813594071212207319233492948300404709498038854177034733821634658231521032014421440553867485289495046474286873104212118338353469315260740406610818539862153686859894281399639966301489606754858229984034183695376882950377770345685717674162945724332375428659626268138811520940056879103977180882119163580209777484126710721214759283152112027890646496842342703734520751416411102787788592128261304100834993120122828646184187069651363325699937233607306163276428692206493720612317804359588949436428940917212808014468498260612306047052621536338655693729220047526148347267807028260047421502778271516135710349112437047973062631159327596734680370088885566172158011459447471178448338018340032791074604403324853622104919058469026561926662960285903713214119706337065568192107176382532442759705866578190283036990779779602242317061989685560142683456385903748263544395349178515055184541256252988142144324021048893519128043671817664911953999961784262003915534670556487386352155304688917789272259645945640756953983982965184144110132567531345690630248205010514906692392626133224379290729425400899703549479001975972452568826851752953394514689613068997850305323187063805769596993125407625173860276878794564500251265376243779183054053727857194473969950203192809032274318487159128392362207603811899035429275264127209278049958121088387426877581079756096160793501342078718101837153997024490146201086660463383892785020611969644069337286402062256518372260148998129329389399490372137835588027848723795458424067346770953617540662116016007549444636495189023584043892108393459946920731732867738568680419194750984844987518887626957619288486792245914211143177466861894433236041410079120478432354115753458121707778978684348674825268816795370217607578464826170381359376408172327700894547540147596300910768452323096352898705522314027510013061746416963868160018421093931973256891785516616799334211216098934582414182764649043434029952285633027483137414272927635146928700455064404074683373229170464394951498883314026284668446180671916060529673991707000235129728829869746549182056466254289638341992200891023389300152166002814575416887398171691696429872306934764159882656752660259434595867784876166336487886040214595452123580007366667055885226566485490214927765116676141784424064869407600891688741820271558756359136136026185794751118463859932034060014294415873701636196296549726054338900108373224146229886748232786719620858807322193887921715420085106216888630358176093476850744926732108951975435107964632456024208503155513709766294663297838034911931439523027373532541830473798432796699345610064063338076203441878208874230214384370523839039386442123593574482706213639481053776699200982373365985282694827182314234791930030544396211841474867448993451765732986937661140135716699186905483587634223126518206150675364306383483959486309380768019876575528510865540237131784186242365582410412083839700393618450829590987715660912636107497735722757028656092548711334203183419270439348840554121884904823135496217462522227615885780262794254095193703206622101296386466606549950189928350083973935987782346800204625033907140719981206183312604367972950308585584231703640932708342209150856431178372775070787377960887931087316215375347602037429624894244852864558078834555030059181112068882974716711117469333127734780572274455530361280510386882841948635356973255607257447304382056148481093785417921677213860246687237259220424834449416884444767227243448074449723084502806985777006563471908576308633670398347930304891876511486619757009558502719904197609569160090976319505224215052055958231910215575643230037275802257292652077256983421519889828890661110139872615623449365930527118934843374041854723032075178991458637091429922834935652249481891575777025959435341113018662980086139877519374966375640689547728176478966399179663557541728536668687571475050381378103589582054418099756362070764524973560181837768243056745248100999956346384802165893262123272990643733713399255678960908916609598342403025445580207870264639823457609942828326719593690909259954360305170601826871302699530583618629658857204338101906624324099023445467423366630401567148472185891597571973992583157652460419037506985406805548455924452852863156671618798006323041729301234818631775437848865022310761036598548197584974221696352392066182128999879264654969772806342994025944166736900648022399728985581739402017333013163638229816313774861219578740611125857791786488760369602098957009108534074541025663019824496081516063492106405402473400693752918970433100428238585390522919252457831995746658060451844619905458442609101655576480536530174592756969245441377047400042503376396527097259222368683817049069590895587224561307324451258370595896781971369814450350026279129901328483301069984210467865909006751365238254506600400207452632252085676273804105530507351228588738000676494568247372150100927024612890061227576503390670386605995894124911574296658221146244241613169837700278648413450902019596456037722359733590971788406846223746195058014643825272444785772459504037188551451930242570008325027369319591827589050108044413379485871886812025298806884787547061691591091971525405330316447265218617267596083759584941560958179258669874647678062406273445514568067587214025968674931088987828864852074845692657521474032610501245560040102201107015016981031162841737592885104232333733171122947654732024318956270580894251407176052710890709618542536050681447832652496608251119215484507233498930567962615132705008770283608917174878768295786581837106746729532960713663423297076389234192380347683161088878368089450194490066053360563619541987882589738742998256313676851328179186123045094324637498212781772275111785777137248934013960252404589089687036004894972466506206487196058536265118533990771171248486502948124618049008879462257190315365991573249782822059829877492090529624635396957535163968331821645684974549058967652660681299426522544690766118001639913631382390821997408577725131411305063238543684124075594506428959403170423154483639494388812852496331059322420577724612067025787159387164319055786172555172252691680056255302532271302729140977233395724653025116524730481908211833055386633513390449009444961357595949453311448166491636917732577777168220090402954544226390831758100036821862401848371759258219579861459629347232793998579760133198697924092529509060661273400912970228852483574710533486174362505347708175250119998495665352700346062608881510364975609951292209323704504894223918469686014240430087855091926075214857151274830798500664952385409527363877732281052186575545162131679212355574579431946015866953142703205375323057830194865538105417621975270924882429326139719987993470523417293830267191793133204079389557207058074938692106811694645707980104947966160456608253549730129857979105645347207709108462830981996958231679167089386377100982190721589164001291834918537061971987540777432079438281016019353805793538814262945286189256238235195014098343472662357628942570174911203063956024769227977349889089129378204200316974194599344265015357151374116369539433782673787044018326183060478887880745727001639661687742659820298968037087225855031411942111348966951585315097977934751303825848109838718687164643524329336520320623315270413016311681649355732759034900680555962670471231447549762610843928834601829048171753235805575029585275617826515383949848473879553244071473251480475738277536950541292245993635590679220778361408030800542932145975510056130324834335787980164908169819822418391225792511995918519890650506301412475914467374378781887119885010998230940555480826333113959806287692852108432172889669539236420479238981836952126766114601987056155578310685106301732507753802855882140045198938837628251498351931942024720618335223810325739296843009798508040656390321724146778928270784445914940853328370490834957149563165826950747157560626846871782080363613793879004097199714406585781866309035317834412012072904682419489372207903977426226781285185542045560832023519814566242089759136838543806292974924797771810820701367513219744964112389745723222503552398284820227200381346612250289716199357127913159852446694506891424017730435679330524477370581074375390711326742193553140174712197846493420621870310164442838864213384118579899986656973349161476884256380242008587544791268553355468279370993973113653696793970243111809662000291210280087783294867392620443396790938649422442086786182380274607070014789172534386081030233177357332950868394935534567852579269529806757399633642202762009992987937783364679951838403887406706967503900702064123684364730903490786177327404914280608448638109197667025344951416216035520280286321085778458796431369712718587706763291426900941255725670650491937706567949252632502365335399196633439093261192366497489481668102346652438913706671224299028315133535027232151940784345987688784454464351508041739954800119128292200416079714501105918827813781349215350990595827720184369542045091254695612659289922943184771186187659093427557604652100691028861062538350309096819682988910666761098888560938049547816024505313184899843422192417323926887791338407725161765019736377357275832791155603513754971256753352083349336075659102669771671219753692323948759567655033012690216417147191374445735587699516669429858222939550582360284259062772634240116568960369288920729397325116496634424255685721366183779141484348812503738183883460819574182411832036279723852902559904235831617567581042043799696190776409066840009122623335497653047655576949997788535611719649270430367729471876519653422083084751353448948720841033695367157940181733058799076222376720527665808041797053315088564151077980976586608479543240053412184207210682053845566934218050363959262630300179396816244181137368925423816142314152574074998850791296915550847141299307049828541332843845592064963821041868725406970144777741065369342350618582526162222917948136843059193068752960534541935096163160271935861421379753299499660610625951491421395608960570105754997431397376022565135044473970296975277855935253089088778885246549350979476950851148277202138599919003630526698099073090587703627467085811243109198662633816483887345450095657768927793712447758653789064476779041964705239632270462051632605897610086942868455036630629789596147603979548399778943484682437967278311881455120953857517071770970503221180075046102503950663783760742230791645319857103934447659617998588191261994111133951601387708919991482978765761996443653332128500610171875213591044162534716918203710221819222085733764556571514487228008524986557261902279102460162498340647926025591455761604950481318295831378401034268299575534261763604496621379095996629546018439857651887640822672052605555881782645647516494091786377523140437541095612946759854588973575669311095413861142780251983056562340156211130790618024459228116304012520227074114295022386826493641862074867226310816326239894312686006455770331922756964503323469107291904855794299556252859725450528060808741630900656015775378153582090002824043305454296715088795064495126856513622463073809054548663047383029505799510703414571093122979650530323351633133802094301999213731869457201330241826930331041936997700403293984848708211271799527569554574627973960294477665315637716465401650421449920522176988481580514014274365289172395543416850860970914314808944657944650808772576226977604736308878704768651775861818291553402634745698033344586374483800558715533540522254749051262061644040904374382374532585162619644354657592798211664394471568712780418135770337473322142266915887894990122032987248734870229252433391386746842081621310540351816650940067074705877826798427235998707076241905230067860555962393970975494235955281681314671667320749617884828616662972420239071628944292297099106678996278729081508078638171929182211609613507392966601892119158941060493745609074643298725520333746919446158818402491216277004989924940976755289650705859090010717446754293804185490713698929294949290681556030863726719914108057811897768369596400775195827267227064060936221019662115345650194964765700215514416480606527772732344797878529468120154321194431393857369012029834538813132824438885549891897648322649412746866302128519956233453387142780483343601908594866718875916459155042688250334803354888636043654600281956204141626910903958741078154117817234689375327095518954036086193877810080091978322785666101402345110765425695520367398769795850026963571250959899956058943902714809595175263340725623050989090146553123176136229700239679996694869095246969144269626379328868897596608166089621870656560504625161012102968845867180194650110116910398340488311410911196344639247326773327203104813272502697934136133483861594355247988157262251992599002619143793373096626954551565837221426803626639543288612678940813826645105194358368056962833122254505085461816926953166273151615737630033149597546564196758597604753524324158294252863550064488896057128147268021734006384812185768447196743352193385066965912021613594942953075256808857650335367451929959764762982915620304236736985194315562851130105411833351389484319651984387022571131082291354227416716956890375163842324276176753930379662971141004756845716529617084013616842588846018685141632351537565411680535505625066913846489999194465032304985363728917631864218306022750295630660889967968996312114124378985731744110612925578232209228853527897658724462923666202679840555212786215192488567348961757859499168219989504549839852280568639467461409380823753626024901606611362776429778720159726863615319763646923401928825407285167886686196343657399010101264511467542734867857797816442528568088095663445984252697506631512536100219138721835214305395578268921281875694582030567454133340728257908427341714669074418500908819391562654408839629216045457646959850090491874484592924903101628117865277905173772829354371711377408918424538732064022031556040172287071600820755156163405236715380287329594969283623728885255698316481009431536004646211154622578483958969506269203477827730371491222494210221855502725959491850682893109159021203428165892625002879720667650854097173884710038715393789716737252248566849715536315923140832862552337533384862929318115238805697168043642823692689703977352734732467868879675704958260127601579090363550095381865579303323632695762655430744871045224747457557483170499823856294259891469923703245197452564596871492844694619873646627960935037069143209354525809968030584417058906161784356524133491809830915326518490179833134133699550183763576242681695964766799169775344202616396548910621948947279454394404992861060745457043060333649936398496815132361861632175134808578520266232401400068578051896655868636514138233696260260575880371315910789491062236331130452116658240221101437128252508861016599171556029463750344490082489485922201792728155589449474240714011345024873886491912638319261818075025513452655480908870767764957736798318426426626204827482817922044906830459077887474785832693453877018448469173841922415528873381532018463736795201138422789706423368030938378103670576519486201791169280596010862887086480066867181614355367753169828534077600743748817319642596555616708533262622994564598078550905973844429794462619403933720987223200161839441389766254340867813555455366290620958312741315178692574365796166257036857760224069607426791938429966910430798229914526633493459758648287772062920979861428609763141308478205731350546130710461834644627960723818900198206676022638117754144913752591070539846790574205193009077041070837897988299669144831980784994877307750157099917243880368194129822487112763612987022108035266618488732916803007202819541698358440789223331846357635635922497045061099514112811897476486129612597540023013652446816776497974363472935412288771563772389592513313817278183953879095565005675043102956507273634741638373854531843871460242061892453921340572536576351840401542644639366286445139004765363952803309715029321783221763066846465224942570646792672598906584283285359387545835554370970249812262661062868289274327726358824356152235505992271646282542941551195616009752737535393520718225897442147562859523663447698233536487563967324823920365899414927138875287408875360985724748676944864336692428795674635535145633677758252096709800390734261162263569795944171791050664275181344437373652467046385637365060209217527490137759223150868614154781091208669743461662363320485707135154267913985500851668503134093506779294486657040191261260017978491416910199047031975336314057247112850006991868935265361939792520363599733175292743015948404488369259321229456579750731061998045205835292159131660111202098616394094182680091931024810350692874807189631915862193703791591147271690471366530368774808094105088223727379707162850961097669767374212307520403099568137744355261150119381139243445312595885705914821319988837040904100974110969491691532308192112788026710392618045405583187493251404957965847686941729884354660570556086198434213947621478036308066830431451486548719112881680311578684104184141620924012871774858876986665129202170992238863533240390671999990532445404511521710243188771265506993015641609939527555995780234344271664881315514722081148424914440885009337302054628724221900546572337840375249005767618322591777746816532631056696836120400741913539220919005655681994973332188677561513444058922872167369801164949802175573515059999838506129897729869079430278420455639751710538037490642724088851748451405928334961840627897677824128477831778368436823549510146139397782772546278405136352747140193866073359168601376673488114185425962770714661197128282938496837372644778410591203461181049398146820056380970686695043340923558056674451591163147884665509751796146506309993388192071260317559440033337289526151971821111414073356238517216305610711059785725108249810348077090129669894332525604273101933518154239770672968273888727281502800705445128870525596631408317482045623798255777901207601915439262696098863297527604725565353304212294783584041501511190729506972363461028449525096962734246261039008448133663344335021357876658234878221241000255382592343271020226345954641219469296107837670661030443946702681310311434147243813542460681615538097252022613280205409600303708289693853291518130389655516279339767265881332289655916167907303243998875282359377219834763730965612718167231885837776960716610647060767766625290881860187343481797540597030359525151105210630130125708597773000668514917140071480627534047514547956740243579864815466229961558108350091101075928746293000079123253188214487271918270092587967189685595033650234701780793466494546027056583039563165851289979673466889697389637233599228864123471786120854167800954340282982016824589887215277498212574469026613102472978563995697842606150627156455142737008244487216124231057443131385792607005185649582302813729728302606104847631065757579211706078900155911951555655860972195556085698862695358657741924396493422632866213221644703350518731259426168998839894377162384192410027435921834816055707708250041987430386226060841293995591147139131255478383870604947345925817967444553793745674846966630368764568915132770503252750402752209849015834709323522285195202894827659745569376656094080072008965092313639855203599214374829034765553282939044967122476010210970203519151038133825012158005446672740169649975074562647196648434094956643084085813626000143032979359610378144466536854811033466982113101948224287391077386013098693623123990847647606929220391080422080287340817720537810699510451459258182189624695664456019033483522708203169958575608543595861943608735755069668538659504366083545829409371293481549831914984329390454466716750666946535621356934342961483266875840983255886118969299042547760046967776395051250494580499413977612239148016198622081819396977140522692553591284747109861782823486556834652081311689224838910993352061597508217194588727654363279699830884211367148977384750755439235789770118855148928275264513126441496789429810880080681281664551111687566599613614478680353653064812391168411510481221329304676952963673485986597902192914463284099245456341450132800671569801774053346965026404083196134323366389828013549768042740421058840998979869102150279225146943564198528142644578638178458440295040629601850498588642759411973794737775920176455747168228566555258682679009913096152524951244568692740526885141968887973625871218666852353182045889752322600507792144806395975190468506865141714585027017823670639760219252944487805235983398353298680003267147211093417773802011511742215349251379540363166397472523742251829944304508246024413994140139069337405797525786953645366059567745583408684126293049992221648866406946542619783340724175027408021801697589751236409487120487110517762481603205135864836227799724002925107549502423129365282521747726308495357314674617456491318274069327028556096408236974785218242676933542945728876772261092990165526697343313509493832743265630344927794009793214345042141213927654645705935924818839897166382487999248233277261573349406258838022308005327422841712644104717365273795627706526991107208674552515656256988511252635370679867365555238675957500976802950735258782205747998090347085012552501532285521793449546253523849919844272564976636270731878732528000419056856436022803288586013648518863874151618950576045753717007688573088259324635726670644108358453213854308226601882658844685972468324145993766500239323185742450867562083985988005673049581880397741007564367994139125454285763751756847598308481706752379634586642633317375806168044709345400992639548595375096212193913063621709214916776060049775498772100145614365611085553695212761751622900560095983130546037156568637899838246408118474993416245591718955394240864368737807498555246915943999002437802725726583116864318744941474648801106070420290144401892040606506826241158416456542328186561445527360009276736489495110493178950845520025017044037489337378607444656358259651695580882062835738885088279298464797435585399655491602344479829769570065700867112977993439396254024428048183341477685440909485599909784799066810084385613432418494106973617396739271220005910098741379295647155677408740991494048073432215987723965211403756917468060288516535360222881781265666915869223002576454328092032929805106379932357682269063601593532765726815057063142647947874607397647785393156927367259878598967614878274136611159178078685500299579558248729722916636089325632648803037053210936057871239964239755457798842905459583289211593145400103244927277228837186330557384705586621109171413064822099902573237112310684512385611510892408855388659736528648936756983416443507977099351480221713835725660418534117963285596157944368197361480529684281869131736730135845106141914713772837760665452309538322919245248089514453411877331150213883639885260040688371217752515161720931029957366243585504121394727265473915227848272418386077320317235235999576048131469006254793428048257019115917022746479774657316534171181369132433404058264763301882753453655250729578736483350609225352624407752254934321285941380546999582768238676914293200498482420045846979610959468753336667195477377496284812329702360499345861877708266339274947731415773576280278787946859975601614387673262122312105412681451683285426211334927663312657056808240284688353872361687610546825118315624024860102372978719617559079793588420665926922363720190325118518755214683075057399432423794865917630295525596883296862018337229529340390698241461475181666360900232047566892341752476514221762394261416350261682511685048072006756752099167821235108674962566193128005884181899625494408830601453354775292098151656122451376993988677362263666240603615268280146178917471895288390020960810511954172309536044640806768225726705959034004698116405268215915306789084105604006510393349997955595615929320126961702039166880329159436161623562257526455956999916627539379711932055017910679876786972543542265763524826860744444409776045614467694776571087283878166428037211520386765842487144624300174035654444290103573224974979449907516030904040509373961501244138976032220348017360244412679800858907447992768346922919381566027745528004603830740878130478649617095423174041349142155365622230142729972983417456190708434315866982874006478831511283917570450887240838016316557743911186146022413172070155723719614341508362814400569722323615237898353797598000711268998550083699546174447265941724118023388737957436743814252758817545883638157664760893129082469974430261623603385253475845980673900225116937496261729637195582288273033378800362007644181654836793295871481415455482628970019710035616722746556965638649979203407427862409425354178239717797573816634949463022950491445785088818738265675567590809697130263364741030246459676569238810339331167077689617003175675917250355185891978290914082184618349390612466151399842748587274694662711567550844900920647433033837098297465619988520048377116655829765811696438057509112533470944047392376216455391031025930610982327965829104388483517632722591767147207957774679717712319348975008068469694155947709315981844205121449220677088447847831989901810568975161736591465875068840243480253819698703669965296291885778573527319553151447162376451761972402693846240236290007694000983416597810641741600308355174369327766124465994491685934521629927205422726539420936979831585021936795605523904898610556861962927559088555194513726433368427265564850688296724359808520412419117558393969756331320159869081927746548456413079405539214323176568766647424312018058472246576768573489611584571108879859012568454061131086622085542924261263344364387686583055175248785372938867091564939740295604876376344179412207947813111355625276572642025033149541741058777326692812548310438341645325518689651293256893275042095906334323782558807485649582723091655014838732074989622920536512829844095114472773526309984799690660320095244837999936638541427063425183761373299933574369285850798440967213533053249754960763431968932136597901318206431313499050372501272547736591846741828994401570271949455379480919330812712757622392189802425725397536436656783529014705344432413329487548716263882975467165989056299831504846677879482535213119558989232305103844546867721121490756795961255432652796512617966929140124105092937090921738317703925842422102111806715040959960811699837420387199323217918182227188813863960847463449648009273618894489911528461125431543434529393613244346870759977826733238627397982924526245065788435567087542417228133340978784929410371105905405783319250775014805364784360078915052319136458981095207859769520493313100135240450135274263179953196768482743418365380821190736241174574918070351313303622793546256092897115634752780583583719940500899886759402813198858615859687730292911156808607713970737697394222455357899927936673014420895645647244021045172915738565570861095978460543346986315434749306881148605913885291247940912646123350489513607546504369582802527954737647383046394580061856722578590200111487341600596573767423583850386238335442990726258826126675961290742673340500340191716674806564868794229032814586551279294880356410817032220365411794737169621326717124056534962270131469814157251885968036413091522908021574604000759590967929835250784026777555548094963985065931815351459281001468554639540629173227364942604813737515098281102257704764401914321755965344818400850977925018914947436126075176963525016791213383394528607080877989614390783317037472812849576193681834833519608043908606625126047649309348045356328320570954076601728209938253901359838037621387924900714859556792451275472812369490408161416064160340580407039622399626851033166118818445844282276639549592548821108098323902696508662690935951438097212543204323228847381025362201578222650846805680333426367871775994215827147559194223490552527521119854193333108518213578845900703898109782658884752593168229629689765135787602333548403696533990160507967525537972109596812644996650578863050482942258033463974383556221434276359016232484253303412443114618871784424769725582152404853093706894452083078255129474899846503609173844306542899317006769313315387761137825708831015133007407456361426252171324180198804238718927068239208564520674648113071702404875621947870338358313202877456684320450988013463048551423841625231264195474269329705998319899487791599330525095207266614796188125845784219497785027481301766981093442297611303455721068629781188131118806637694373748580898302040656956925806945415447504753308549461851707217310501901230252580427192043805029737182830272838698023596371436157087003434898675005412201101480575470453880835014714729770495560357883552114099349775546847234624759670328873084049673279841480827421350331388059022654446562046755446085663823814990558404609724710419167131395698120027885211431713767398202562362917820826528011996421205753277237147525751966663659128234488867600091067255519861231840928558936139390128093324087235257082608315327656836468850118527853399960582645126042585625872062224468659850956172848715074752989947979484249643538376758041914205861355808978602554250443531571647562822344961208584966350713476207638993428033540657080238753502148806188196497807711181370219084891652375614160174099079647192324649501510367414021606868022368791781307971549263246540461789761966432759387844829662466814230691601875485495025734605864083624128600364223612717498419620086798975625197940349411133718480699308113441829479849719052231764129383570231635850667610118661955758802374538722417156548013519662956468672761508281988333275491283049160896980114056548056189190798411634901985419033771351123725477714392422297302859138922455987045364809796830768152134532123178578879388140558415871045502376527286853530213781777789465235765940530940943871845113057261938833142463711421665312495321216871669870948722682044837293949668722780571592565433075293780990644193943417512450581169750446492649703004544610102701994021675692457789466713986163172005152439402261057652065462314191293468593003219983637595447066909537603813986374629599828902232532461425895954451324674823862836807132051938151807265043561146328238868152048098333702124207997653597544356922858868686065342386562762040597525481483321431735894987351143355421972471174349975368480992634606498700254663503288132274378517927699799183480012904476620951663556417623941144647158603616682789383615161899311262268979312185378119940310819779323731689630954536612959375487818495923556284947950433657549146624826268956597865280908664203895127577879390402079789798033347394543727449237906389355903077829902163602431926410408013269500342283089613790087373228120263057581696540897083927857339750388250708133832432209481510102553655533575612203439401844242307438235311340831131430021119647432211187899219324494156569262998105999032195873212702196423910173639241912750914880418487835609021275329793853473801745101068594116634739216655781290917086585552800665637528226253897840472608431970916610623664780534991155310405072081692029977277813867285543736942136931704952973495705316489634531357515363997869069298805398075937900079801950540952520386352325704280981869072425068357172842667471145920083754804193299074166172220077858737850511289087019095893717853884095391641102598720117683922153682627548561174705883987207994716836415251647411483419788367277541172155662966783596817930594380804425244854163071247417037159942192283929317623228198521086324630697138529962975363967372283315435598783425260267227549185730281000727221440513095216074484672421339740770542749577018540380925229422945029778205023731807868569083932683205678451954837955535849145270500059373148427780390324211422262331294813379700551588865751354930591356666292623382426016187734475070978890952657773039340709093649756629098828286870818230964913453294650532392965611845356421981639632326447270754120230556916507759347515403192634890060099632768206939650971865263169661260108871186142542797451563728372100498294695536614021982762838507746718520296686132982559774538170567395439887049475468756424375253550150286939375547198669159959266926919449004230881763931685536675055909800666364382729263032731410047390163756200743089847577202142909894687072858419472314679922992726442358653366553247379791927263144006339287797071328366682066251158473568295125059575895011434856267167100176970620793365560721540806490055956307094838694490401555189651664346861511140942048224682325988508289365349604986693434402691164451641011745891565420130047142995837458900171195565087921970578751637453612819396593686931923842753815991950181515200237611055836948160700214870017236969657059012041760026453349840325148367537690310478325748161170932159470729390757748063754171201887673469665300300395785519120757903072308665598537368168470947984883358688339911324463866839615748576556219335032646279849468072899534266395530799158109566718752204249837527245457947426415000348115998902844971996282610605881185210133977399572559472973407118218355123987913896036311326353310276777150893640458853608847789188066862295400053395107768761232447883898734853757558848902537823027712401471136921043733059547054010430611445484246271940811686955848459201499936772073052571259621699889762000187212938586317151224292058386361249897447329453205146570598341259114200456423552792812124297144426910981898118875884496780997182937070004645741322591027277758520458405958860884804169183305827467243149110792186915706271747924677399880490227253102055660766428341742397546879314367934579307124403021288170951337530037996181230602788371306994930622115261897472779219628170761416379903193458785217456691018273858948368506696016246578878343166048449769200898404527391887785430254670795816940249259462975519713308821603719344051521389540181131235186467105331947304894513575226826680753300873446410499775473734187881930182823530456754108637952129902802692817091811320564907884460343122492135033969027110709421901426393309908280620155071607998760713495943581250577564628437314721805745136304196064492922910361586100535115554430380310459467795377289980208292718007510808244805271577668335915077398696097061568324187943462514624042953180915832761963791871483854363114263247264178157197330001137496668194036464586158073160200113562705031711816403721107085360116528507961236527006061392932794498262649453443798710041920707408224226819404813837676609675317395257289753647112554259274387641475141422856332891022767614472991765763106963721312596742381051561618655304989078137067450097572312310613516379907932510049526406568109989549712988004146030565186909874941759182999917549740987239404300915194517850281653752949513104014316895034191669842257598433713756226870378312195182919536849026792915803633840501367218085536082100766130028644945245581336099010564621136101111283756195642229550044325942320967068703069694340664771134290559430941774495330016685012131166752502283828560320995965579803094917243304314959083737675242830356092790031459731513607404407760959152948479462076120004331651795793199638385938014450957049087859844873327732746288409923082065765087769645537460122686643417564645250309443436298899256600679561317111172003889467648858485964723821554807355025819272365606672890451650507412868860701875794944448811174845895528508378195078706697327851498082389646709725028149113424046425385863592767379687832308023488099981986419611118178683707432281600947562162792005820603213153542377603903781940823730646243882122468027535724861703002806062593782134845112210408635809528275580259319807209276123753754519695481663621846386102966438537772177422541913458925563475489741273711994207991968539311979659149684883105212474364777962546220817220670933232088126003105304089471589781039332040738208893963569754538924412200974784066597150844427716976623291830716726916087487875726052195913213918676355304403804248939504297323814907345441124788363530401854072291889749670892956027319462414118550457871177734105922267478893018077687244718946466368900964307623432950354799542462881083314646802594831020366373235373989791767867582709283802769012747141737565169965879829990843307909194026747003306667347413234938247885310411386565925578703370148471820516893060412678026585372241020764552372450688463491189996117401100811479896400030326589738381993803739842044197065626689876891697025979577136278759615046886247945708753421193848029762778906691939506201872241854640201495569258087556281741382024807972878304613948319854373663749801825297007544790532998818499693439124592159209855862098664499113565592514659594574938703716815678024356875649909700970976084860831129812006182180414372443316037220088631085668431213505185362093480414755333395010829275032234713285975236623351157765456391447297783730795197117438226936255606403394951938580042909167020288324273114016686046210822858892379312581667182981804350234594862423975100023128434830281924995684848210385608418759230986221723650292338648031506664911605824987206517571559224316148178462350216460801767688356727775933234709562340411044754239020686593389012351939547448721193279048951103245140683013527941251256678559265067144550557842654279374131211238516680771458604526783557766125841696465438558838324288399369377506025320830421782629263172795693238024342106340830743393626952056728421725550515992621737190653235133111022740787518754533504934611101034718010045427272505625686898310323858009368596274733863211242942970922488591488693581826039002072548395385660543907930481275368023152342550937741084981889639459429194048448961740888101663277605826332341708238442014911401015771657103285557061038888632031111047169811088906636665070337835394053126080212822863209445012964717686341449196501753766940679667595363931991145161721240084547226948149488257016293626847686691813907388061350640705736675545806795963604589041203192104536713584228660415112013347985611246004513592174294052376310469065547415925676639081796902349869912718787548332632305288687477828005281860171503263979633425184535422888903577000614687302286886989646864158736186342819300066428379302796074344811956973249935413344087776578226085346904876225113745106947792919408845454080625322401308520714629536884904494199904613774235063917485851987254202940104867661092809705736697242839276451455385623914221041402036455019244810268358068515948878165378395609201788549558146782260625553243177445037253586073807720886957416212755198583900290583429863497853858088234453073292105504835468104537290426564337784779714626135651697519764406362775425584913902327071541184410940607717678041732777632871980910863811886766215273470065720307529156476358984977706930989459813093004099276377277014336483789369102194355366958100343189528071914010051106128858261168176240707174162105196324380115647225048793368146663802735074214392730167682788295663644292934907287833503080361002240966148886560973565231083657396559139779105226434532825087363254577985566175789996523341096649206333155199428638257545145062650344457026487960592296315653557687645568368117576274370839908733055893447490679570462817705870710233503271274057641730253558254279798751783847973169537344706822166257001043079768697434587004374151576282997622611117275798764643782207695136947783053366461412460873136027160534090024233047866696783424773735682611653529515772981316778772312966824800714964916490305591674273532785375368803468528976940558131620954548308381661390706108390532165954826257334984141339521310865344799366535264742464113018073922990923038497092844179243037637292028488770133279005394205737426340630751105518782213210734701347202730596240743725601958892674621994197114125205599867819917149765785946700821785892181333038999366746977840239170020665624716332076137478297158571463295484093176898576132101815671876944190681370861965356874719508587052236879505134030818757591855463628336507542149258944732870554380180199879384529722350379609922877774466679328465808027813023106006951142865524087729836363609941022450242911434563854621331024050993847646652616079702635927797014805815580332762282891916316237762410590047456821433682495111036490804969502022517009471094603767404583261034644193754346613386772486903971330483990771920982749089063998715223078383667277514767990901965820492022419737430589875624313221563650384901062936739296077369934838210407661773310121531044323380890692636334562310849203362673279172505759857640440019467205089472825969701742191049442453048120844430340775804446241036539156710255645288663505269761980246677834488431917884893697476711455006211415776639970413450152840494050221223155392337820238021585087683438052828756989696722227155971529785027900057893351220447223877786113025451171181375379997313915376818976946558840875634893787012999051205952371836222882844570227969435845576411480761878783231373335682217724954233992676748735327498196058372808716444082217108405343205881070965499112825974975980106386042023103656573070339205914121736761481856522735070949681153405181149996186444951178287635278383003874515147721486642301076305957953701471143536078560026116784437287956935564617174319379537161543016829549496338545730489431576006610458005632490969504724415009615089783147522784020314930268254633394569499473137960644923790367865235779694453183688197438452001217429651462913154756885467139301618811961909471668054415645038846762345390874068885441059335041887034810007152671637675480963066819391932312047269917969092796848951566572163775327463518662209651602448614662780834764121255428915902544912391588909232364275885697535464970729512317754251328089370678604865412271448530040880832446804273388190257243955623020509082686258408245414805184580962277166452568093937983277912773015597781261376112501266430709132282011374075672966753187403648773192989767463696969201170791416007762611604923808706716979741197952525464553518623940778994324688908075582143173874302188690232731537696284088262534247543135246722385242302023800431026756487813097120290366726854174383580483996848482094764824978453309136760352302008232552697301921724098466557789664471374041705645357019810636006030923894400130601010706762272606422272405549153149163610768592198091509084800047695276910222192590318784605619137593988773703774120412588626188533711516370655416748864921825226637493803150874545190425009063732003642534525170825775764176863484343802570552875992269463390940453426777153560577379679927577564711321525396526746413927400257739014072508840182718880358200652436425927637757172406470675109862599548756219139985073124249815499572361676194513951441141417407717600453508226013941316286938307679978039363888558033727451395693603034948234035136981521148144594157043513928965960772179086396896311785975102075234686120808794270931618703943358850387104385565447383354087388111431430401188222501677078039323003381751216913337365672567387586237630061248387151970265701615473953864578674105871380991913819688603195539165117205046331067022648457962204934091947594276186498669883719188129243695090237441786322109364602759712747239758375651443660972691728512736023998206635470444522557140946265391110314388019288386787088896954850001112720401108601153260765908324310937691260664372502286204637913807163967109003170267195317679719426554573730425570645321989965250059924843234355254642689336962120707760812701051282780255067923071886419320003883845501961212945880111266269716207513273114776717438387581150128605948749484921748684768358102153774400879300815796913781165756700374844179450760961966109194630993291009824943025742363919392685431638048351536175739480047551251822928913443155969248514714165853204161047275322766108854305211394751518773717682129836576411627980871196212898340306078557662572728754265487434007420711942911053189555774859606245468370164313722392519191683009736899287209821616194296465606758449942120388665163392247091938295067375221468928782516846489029947869995283283207379804600571114610963605437020810943496587956616567433029442154763558763470595217254254123610802056459407906081813598582926712301668652063897785835446864512036135853046006058128742029686603132770633321080744410226811966991589739795459877156194970775859530206339074655613660081054946161592200059183506766492006720338256849606673743741368976377852057401209871640408923407877286478773638255454604582136844361202206874299566419751552775729997358999828218407339362393044499548339778136542885313970316022601768941869156494822613012066006466021029638854394975711917614199227841094092246009843935806296296161897002401864518062785617370640150900236969851961601734668376559157411617761466483964188069563772448951208638287694356957877363966245516277820834003461263203256410726250736299724302134944235671604295821878275463725607457938733115989068744000985386279333773007575870263405915358725777471268856119208095565013439872624421530510007368717122435228944671130926763224002815542492533134329677962054508238355584914770467385417261374232421910645611399021533756570605786948863306731840551880242483008322840122768086424573780665969645906806577414127259764456924785955704533011212214746184313153234096038510216133327759247999527079749527837899466075026365426181261977302700878759559359528749569614388056410962222756932653740752269437104991034821485516203064000022992512396542173569785637401306375675408263880465247395391314064586574336046609440666176404890596215977114547924268888882492536915298831951740141111465144000044780982232059027756981155574381194105514449789067106721847321553524605262326344324447390250959956205702322924848951454369193788530079371014501780624439559170751597748690765265413673338397551901341068923645221673557887079274314167141298155391763430678668533124309815415750313922551010743183245339232847341162161632532399566380586258620021296937042405017225990625711152932328663876416044077490328140701706524357441260073160298650507280741195049667697741823316949899165893272921426278973278636825370274912973596344037025971666246586486658322847546435657048166598154608251488204504098657394101466648034122045444155273181844749465666116910482777737688290798886406421549228783640365270983455155418479887882179115170862425418165762586197429213827051692071768938231572930359810162577129261399449699279572499914814205750028714232352886177944400945770587603311352420301942519721006949856322541104029782277662367175383300229519296576292263966261070825170151335953011969523569420914342644881369766123921070863857625765760681389364263517358626765139250869546826344144364135761511898372091370250194893446345861708581744668005307501508272353867437713992161567986400763324168775934741971142016325341300833453367987052207698857986356578441703962571332315381560619372614664472039493780962522345712396819041277135798397746243990554622669885989713015372372294649271712720664910916251060380862371454645381922820469235816377669401235758001262580184825855491461953271271083020302570784761659836754087790055903268250109860972991478136622027276636629780282389162573770711651506461951097100117821172286746380135141911679574427846908071346902099548873712253037034876219507062960098867123937499922537519796625909958693215173761702292108088792887817746534759389770274250027700443098813508558093962937954195206938551615762739925131118125798647454863122965146692419645484210893736409680478956165999672588449054599706068698182099518331715875837683167260302818665734566844238522638397959798763831109925525985262176552194433410764252911684997128093595574538757942794240891210320166322303807588435909876389398895814628502511858025842768017255569962575941215085722903766853240189461817679590136853134693232107069083907242370217709148454977032216527264616606559864287798036931747615730987477331504809639420014158871860106970616477270308544165539047455324677934091181660419693949258258126280864288072544701237803124667710970160213353505755924198394831991777751948887203927214485883424808122132613010647065698685281197283272230307772567102200233913819144015999247789792745266378724651572824862117507647868452952242852095713777865166450911568165819849399470241515181566096391146217831707507967414295848097637156204625725616095028875475488222993775452592726656110756880097012334918818549130459672676082651522624850383402153903932832132690357302763269809092484677723415646019397902164346981181424665057108836998518254774248261393434828289198672708926025664500467625891233049406067156797692507786058253062905084874595039603363544134467695602453114191876670954772114306041423020513902308963619210620714312201897671050602665379411282088647557676920921661698152865934718980792470103339374758533303772515245144342244093531430780975596913824842999636089609756455080544418848659980962444656590707620362149761928175376248325843221282628244737070825673712344036888425401220976823251249182210105617035381216233517443075658752159510728665410306585177093940298408661169462432127845227183289214307809584818182837692116321714063914171094886002130620760366527866051187097168840753685596312414229574658009790427016286493012594771112025033988049000319354475440290551650161856104860989216451332581251902677632608741262623880138235911906803362617089661564079678556744999485610211938965571927094221497770708163670347108093561768905062106053483162065604449770729555788784843130249181105105198339265840525800417996092703154922703870768148270855231182566508314341454749176194585835610176780019111883538278826389844106039562015529605114382712905399053003975449585687112752923803493109891873277465789622888792969542950895272399812121905959382692328325696121089574050001838064794177585278809597267650669095480154647697514212101406149964962452735978310383828928068003875597188261024822620147448001924228798376725764121784017039024069031041709462733980543814082471162086576532937538980190606726733654878249093308511741809383659510236224414869087366048513514253593273800353934083631812146113429185446948863517122253095993029849389301009475946874786698547527580198195339148259045509728419409237496009575271773984086261425177682466349350189049457307910752551188248896531690834191627381927332059857146784700039208509006866664986615495505099280623772526505157771882436037875549361906078367181118645480179622379128735858247141089395232841258291938523898310670943230460568272961823894934187851565331455586688763452808007237071600781114549409708603018007214087540346184272065068690534018967774690893059221539110898889749408032010385370908675225833176532107997049478223094242058034267326938067423952661385861537298267502149169411486195995839921466329899090796672639195341396409202282684624974451534051292229369919891001539492268875711734496826463631961710815601316574348497174464968162567378475125942008341010924044040270379111779796064607774724127490587366464994955084871761124998556096656011043879741930318285079255546902890861572934781104262466735636409888563059653161998499930306994547489973146611884127250163052063988585658874610951911311631418237201764523926319092500786292261721073545480857666466787471161937062775121650364332076188124546041521170791077201252136298256199734196917385106746141678464973284905758859342477380578856986833563699553843339010102355531820858465884950944168369326014031949789130506257282475064715535332060371680569475775505461438642395815096432222042554806463249455681590553295464201062026644445900158426881178321718134084022671248155767560178200618854111120685987471053548070261570875287837036791026046316677733607001308239611392890926356027398310762270039089272990235830591398599297384427482854940474362247927064717744446520739664966976699058045325935237828329386363311122918525983611762856656333790062481414426662736743647613446155914547680750977066937100560961683862612907614464433297994494677205170291383400000442211541112201236426275341189077452250091609978836995557054180932071967951033307921544936294049085265991636264656437187794599080197331564105356204557901429172219482137548231285660549892169103394244291622243373290689938333774490864361888224318283067289531077897679669780576672265372280911923371307966970606137213900721365338815652811089783807607928922252636449814874194506650563148056577714257054968371990591829295894458516991822790293952988676777257754757023160562593750926067134477990041767022846616515257577229433219931831610096967487955071833535582257649989684549489355835831678748448468546516849617288398453823730876517673047973047320322772803706368496404143874123999388305049410699515423590368011031843905130915120957478469834404853364572553192993857623923463059129389921383846136587520592820521669327134974515293336275998950972696926890604192823873255907526550576067896879886953524665567177562117147226881819566630658168576349060315603795465032888534906787162147984210601608497827024356470223205020591553147349389902935764443985371070187562809991634681816807383376827117135996471584150966576347009426965524594766650681364137838422938272917583899186923489244303206510825078791060666673855890765373545240428283033884564852477698652652798377296250756146820758314378507216553878548459713063518183732697099574898411088783823782218603981937628752214134195262138124603848217448120301532534038995733619700993304225685552979916494545330548327011243166148494777789470297422261965899804086792279212472473598797983021174161709423417682248741993180356340883284575927879450654362275294393775613868897677762718541126721237916281664592760702727451384841331189398441411213469148504363786585963506056582122079789533628598257724172435664437183388742558738030601523148290629144414485586723535497099882087134630599593306718493775822323079523515553577312579404339016948274375725333257637729347061534206853455250417685438189169329175097728082226910199858508156669357695159898648541716249505267094275138430823870126894424078726275171185357136372279258222709652053820704731412029114926074997785399145391717152882313024967463302454677345882233841313517026137296969106342048923419219659680398879907751398984397414221402076439541220656900379773556172081050302584532182510238450693039115418107036238228154636931887212149293097200604449308704708341266015662326559324894539007141080681357949268574819056346527745265800725298023574483875007178438855937052030674318989856900942086647717325666758963797218931090209352705502120276911325466255259876810911553585272536929383283609652294325096204810401838648005978002720434750368838794102680251381364444403532717126094196741766345852827299155934289544739626857974642339552522506298815476791239617864560292649456258979941863262025711679540935621434479125618343124238075485578065158644321578486255757356714921648525592771876475338049981616041062237959038975532162084257959348769707240054055803071120188475051139315344881591511417822968707689925654565088541433688767054060459757102554338415748542934692041177152550149182325845230338511969415948090083826668138093381645370525666359343099965774751132510045088513055468978880595438940847448904701298124057232169278430535442170169253810173534609344524234223158714883845817878771728255960749228111066303729613270670201139489075443050341173026055034960308044762116001347107368948054333633989671018916266678351577964947188439373467503310862942058237241827404399806273574163614899673912884947324880979659550824967617921691599315058236213297018004253070049681346954919229254508287414343902795376856621432935452357530363459686186259499765835848297979526294231816242278557319873487628378716662831590257042342820453881366417095347286957452426600073441253291123845861676314535224080515766635053767047174530950332886475112368120217114362983769750641745637457636716297885803847023669157055871617123293051495437304978517828302194983678317503045423685487706582883788519797200740265686380430307983706825665666546934189080026657765323453842397479876925035080335219265641130139278787934275398499429207384012045799789466801977034620145386051770472016193123003388485977682354899530168793965738250104097186291951388031362094881125024674150217097959382340027187810498058171764924678112239428042113280600427389140626744349906597200223702832092884382126925865860109383274117465135790893670295796533269882005089275979207252180431150509274063886189050935240298786140596281487568150479924365580182968730589510104884459229502513266916006921268425463578643024803782969491596067297773986267404439973664820524281531025005597637905252883590853904666464905132032020907443075367589300036325096214064681619062528221672084345109413662288675767733833545210787796129546707799247329363983616202955092285502482441089641790240335926943470121293216886263535584470442260578297622796279505811461624719093547943678233852824044344365316629626461195753150620658194582546206594383984245514981710371835536644181770510343316567843035150909090232572640487398022054461496874973276461650641657283075330102862828995819210306794964632660780927822249324858739561040884686044585377364689770818657306216525910357355247841599161383182880933965374002160344984523000179503876479689813461126156866642449549233779943745063668392290256323769011761883942445697614951846729721877517594138037338725657143280133511182461018656824200422599195878572617869527376715341538099456549008696680254002052997476980420004189689684393475038663577069303628281726896550534212070635102075473793055972902932785809077315470054505171090222059179629278989150479546060081307364965902779869518235632192681428751230707744327354064025268450384927430089300362428419201222261190001392754180034589904362775108434720450371442840865462290801923881729670644284761582862673458577173232355409398071972012312010598801306708573762271377280555305020966682410095150183322138036118685847169130795051743822150059196196578021542804642956583057407333910632332261805904892019528932394894357452553357365407074573893244837214206043218241033477024865888618653254678633467921011991382313315618207424536806565396514839264021248197282450789209133268514800736478844930012047941772973842551974013866368100515816859241403976306355008302482366294176976605983103741619482983882310080091510337608376466789512156711716545104108945718644970063306594475034862101312429898268111020546727371686999864806768900612612941303498882547634613506323972487539914553525393302241748186225158232105885000442546795384065459247059996470814450885414546128557446992767288708251319133344614614610101242229627840711911218034116973033694193476410585604567708369250716940990350700877459301751148017613691008396428625946223935577479599388718658102362331752593915701376222115824022241270757640302120964838562676432994709078763568285558285861320961234339504994350526028165486082959902172993876738800843043818807466275228885127172372958293076043789706997472141213464401172021531345191471829458903978198838196753499212731553123092233372527588964068550493072109826196231828164859294969334413540381021939032381856868306543674039127398176620930484943894832212034425565543761539528451110703997720707941587568584535201841627449181415485288209383835990571453039595948605485437855121867746854852029596475555313356422131083287225073968134052155641823999239409721650768154327754955424172832219691219473239201122332886616836086642087499266302648121992991627690051232060453719587882306017612052627969027690759973384272589836904401728459206307146428690953363795948370602308804087888858089750755925354681884904941984756502571881040426270374826694039621363633579445558483359157882942257397566343833455040444899844652767913989585257540647765664761328402660049223349280786830123814692308999252838870418144714122638636368287276013717824572124678523022780841827195945587293737227841048954373629070600404349226552611219759012262800930123606913656124937938457615021083297767680384319492169993732556593933999613892040392977549729860571833577203737662812145589987914449011424413109821431444058918702044517516129582595254461471316363384211853546069258636350640423942499363818495007777572470320439761039063602040879097126473643795944172170439560629273533766686864642369690593484694976637842770319269894398970162905747770686354304838253511703328247655095835099815908913292731799411644033822219171397965154008163744388760793996538304749130958517875272358273043102612687270238658709290872066840674592807292906664295991104692464079122931379360085126238143309902293696804057007117194455124338250093031685027462051970161385224149388899656838287946431266347413736835793662025307899132077423615931438137029648663119007374600654016140351699031463443783312414058749873426883251607727878133907736259719131014982718576283766682342950334583098180745105885994852553960460783135916230724892968137965233861278575083846299127736488195842850189867521984611025953368960636100832752227812877306055009097473564401698614657126900375839007394883005429793581301430165619133245029394791684570149370523566602513959977722557103251419576468168674951247438661936297674248428107957582199544492037460659706594215866169971243695626340129412012613244611923618164409374412886972243978942226951445229088825714753012623416915316875946916660230117996616616118583861105590302507368740707208000045052019584735499560679637432302070516274910629065431929864464663610299142886960809457913523012428408917687209492569925759392549280736079798942381322511815013164929573214794630971257928603514879365175672703834310133446052914412350645240850635986298248362706712491364256292901346130621708020503462329360023200454296249211255568046116499080793135637107878581084589372919567283359736795009502964228737486725311860253916217251774438034400464741320072280624237962449055989378600046253304227364987866021994901533809241230194376372457688555544345406786565267931241965400370853844352412453014234211585387358264907981214126725876569180342440735975577387747354601225307165068508840286840339596543807233888905096654953802333941180842589366843574249323647362585941892672997122674666874802779359657655762981688598243556573447059852714868053500916545844898368582962297975471368218648331785766657759813674173756818040999428300637341519203317837470310976927394671984931040156084797805600694249884962908154110904341487569578439765533929446105204231354376521573862703816619272841850878506334913681645249969439199615751007981884129859805422239102436428251495293780099121317666643508686334555557642070198196056625311578172822432855252321248253278613114753734548129217267646219751946757682108233778325012889460219844356601655388922946436297754760182451067895321877141184495376360740261538333256086762647813178304560665065383492506136312754607780543378008822467283325439397450062777704551230602478538629697054340927177134326602960706502143860633147818908392913255401511197666840230726254086312709136518818343042186964213292335564409585589025118671328586158976144286621566785575699855356137387484548609198401138798270760450945048216502832917423502646377815422351256866626061074603059707258873239164373729093723693400421761770486186164618368147260554488200835626821058033765649890244792549435145300783105009442703159089993996993477223407057390959750888170721942734282115520836742999302396457775042471362700624508750801785156516199892163658554863100197160320077257459217409604463374616473773554289796996914850718740167396581905652596258503544161401079118468182790334634558220242761117665366154116484146974898024204756820106098974592128946265165282503992251040212712893744792507897257054507632264610732251718417062791794329725669058608188356769593227210790761100566182223995747535156182632373195387442654913022508152812944033589309543927041258814252681745779579342875444531400989225034024606534885138541848282367575406472449229576666386522151518354587799114371199617677907140709790728334147741086852811710171853704598249646976468945210375861217616348906975293072018448495376236884945768600682295847486430868997165903997393560674168252586836984885676705506724190713966878050745520963188934283967231006323936590213212596599835991039965268928539348950389086590775924332789154813462733188864917431583226241703135396612246456631083331724471230935320676404456661094005749140552582255968241720740466712917431073581877161209797049448422129542877705850758270957836866273919016317095149503611349710333429785785362225055345505660483291451886086279145586073401701917962225116487133982450330812029613363279300870217451931540865405737914241384542602513369748000146523574507038222806825036670089618812937330121356364779663812471582464159056413103261795389906456175884848657143637966488253138379405708304819096318669648113751388166321116864749787381149656120515211307260371968992998510859060639563642752990471771044940293641859733994084473396768518754349917099145091512684366203289989003472107210274128734600834614399016244896418252842704691597101967129608080578196848991292435456694088168604365684235698798491278720251499353868427968717798253670856007848590227291288295352086008490497289667855551981332409839220415777721141841081836992965066962929916893938756171833633975974500382182001728471283399339408563321466512739987876533782926910560555151570047380556082769915333457258789630166512340646678053386501795081904645365125938781952528850036368670042069038285897348959034550895845527245064548450804496521773607835251614056113531816442087802542748708793934983343024745835971812897498934323920400046698969287144447408357018019917732804322511127950593114927260736221171963366422996546405709235825248964173010417400906884123130022770551721027988070201962505531630148281570861024956732136258348907979335783543779374859327495063069735737829117221252699648936509627695413699231307160289325658780499293927981570172197164020777643590032199473996244348990493708611602670096216150903983799764937590209446187072042931603974939032437733100447472188132098944756010944507940723329221367745493080702654735688610517279518688414702888579361527155750585718902305009725628172223531277514095990774225692082836314399482112240614407984913913024815795711935880182454781316680499009810893206834964872513661920004511647504005395391636140841682238805942475637339931442644549527251866152427941861636038543600974059013556290195858859450118077089661068449632443916452036870484926250067874758350654656340494153666888318924836786238026202186327545013850106644340980265252548001272480285872184398141276816889054355526399584871687005748526143688193252321797428516859105046020535205184633500843054583624445376758129572292292839697717059006494446403806490297747014976156986246509892397703507048775991088042950532027662250775589844451011554467763002519436924792665441908456633774515494021652186007794451271299235272437783960114666023732504915261946416717232139273610239697118264587938838606287893041126541828376484700328125968548038342100152818541541341919195528846574901050216089673783033872758668144152389667058573012544553687767682901138901857185641154556244976632915695336234855615697147249369575583166650227286801240104787565571218609213054904464388900895795499635154568009952871777702084825816561649999026472192688959253596168113605233031557520036779255937868995223902566431821160851260634754864036788072694540544408322828753610453359633868415992470306558813030943105404386084659545227611147570833346812325789907536094462319611103687372096893865520942239615182768479736621673914828921234794022895298093654689896925522277147109130709800040045127246442290108615864479784423571386853649923019814375310898988237880326356213054471940666988315623767178025409486437531222612255212509039648339662529665992298539549809604145903999277998087661879410646550021671631839256073450051319482299129218621060920298419650810151537599171182251577410521366393829455430807884281189497801403351412940411244091231486031155645751647090761869509897124723682311090459408085493927582086170840225535420542726039832276701399445875040921126120314918449646243668150127353426936654723952382007847923089987387889606443438232700611182878779042830654133165770928638254034013761857300658140904572675186314532675170668828713407250626408564679497086628169188406562112900675884727278867412168100500451062647527299169113038245739095007776024753419340147876367173633942641327945903899778332502848322744257543638961129776319883039477276266175475953877445188210275575916323245441115045979636846121878930092646771961627865183308731469760073270572418548337855397526142624655784386960056353045236282477681563756672555270225791796884473718583513883554015886197560448386238637247411220629206380617847057445620156860778155879835475947487602432571105546773208576224647611659163344350880350570756926767336994797971678547037512491275745807384467147466883710595687409342338881960477864455367598026012379600278351047782417041572325300229191999979768761928745369832986721704097214900934927889560636312779094243188888776363191210517800359222260177551055825609254931642640650522168118799112673392914923596212311483725569961993496491336270079023346906915314358438473211129825143903187935740310764683487797559277837279433091272978136591359182555038743602027849681219173146805417378121815004795399602659920812764736940238956401392927969173465883832861625835441835722538599588437228011394346823999732591578195707913319896851835134444360440125144926343609136262165837490590626352332902547632915788612952539246385963921050600703832346708571357062738536694922206365666244461446051604488223262962353976622377685535864422276159105309758254111718920985620035628966869190685533265816784687072509567356745187639002728915628224213806342740604077679406363528684937023005149929432932100538530477233200463661224849508586257085134805933798636139850281844097353947952607900667902001778987694935517532360939590847328039178505538062731785410699970996698447126291495136259283194781231811478969884694316840780928592363049739315943270142549234699592803768760733011312204665532936705107146759607642914161561143980655785609323014371163493291854119445996693390602843173079171300684883591997056185496495378054074634114178697561994517475186425221663302367637421681549700361968534105362121513273179200971272939404584248285687702203763028035044000811687212350499033067937637993151276908776074200996191042142446441284143742012222980129380674845707264241965140161274215422287188602782591856202188556094676462522612287692475221280426779524176488462865514495931495706319372938987950638435983292331549281921774515225308952431568831974672859067940364911502371629115959678377998612758310755968958380780191156644789871443594885069537026573679609091530392161442699459070360830814708369258738848700586747215412050609284890435238174743269195019577963966822519136138949652628374005355463549440000246053458270741879144508214990354123623314802284303379692027198305603255845681861303152020522521250228037299366546936555924532211467659789783448989993335695358452900754792229281574114097927267811217442569392368329089838454126167393816910159237127966825979549534175872338222524922874954519927615077670981974465991773270664922633838851946038588548153333843278883113397660947298593396919639155935091942656771118568014871557076394151636559569783402940254894582238207535910573486928102440342283815319322912525025995778284251317996122281154521019944023680056286652864890924648587206953237555284511955889380309963927357938477918258895902650897735891575511724326435118703427977746950327504029624234325278258330398082409256133846172814295717971626885803302173281729888202401883914088696398745843675803526299820811367288327113155722187991679138923643990000211710934574160649028760741150985940421102622006034173130954349712978416772204284426956340855321241072714787911723698624365570534079951845804831320773528455620300316096935730268826095540682301986858873923894552141930035841189515508271264805475232440435135075182622319637792514925889652443704839273066344791903601230647163396103497860825523340180453169046315776912795541509972349046503047039228999118687962305297004868627847666215483424785111482792175212143991199922105322220114361868407923470728591631099387746050946592647094467059671664606769276166886929732178608058749177343512190793965286630932035398857289865508612176845946169714914443309436051130950520736485971313351995229251662474599003507668204226491033438159214168084462547325115237672683846330421108790293906455217356808257378628845210335774407436829808525661644634187263529936096456443344891250633097557559530100664096919113278622193420955973031881628920082046986256977757300986507252554050246747765823730116499718956509438086839255614409799228662128892678378628868481474371073580814705300936980905895023341739570739471639473405647015005045156642671752871040186822228887642669246539477857255269661333823529978929563118129849211075113617435026837560747719161555767467821871042512716162051046175388593830520143343008834505009363054492055518923068531039967000108978791027523184000423288435581303020735458952419511532369353633728453569894781863957210152782019712813837151527090343397690152995069419489076799943453068969718958705075983336751675958000939204664785253493757846395749701365592245720356069989003249442238661485642794861786895421643326375351184634986843975074002381516222372984087947714871036005147134711181738271254884892733437285263431033844744360574018889416021595550848654883675040669511988337958059564217922261806485003028530390649677302804890230319899569959975128647191088022652154955378525743730217969458618622960641614105602317717804579117251581680486539454315930899654959593636752693886448477768213704300795575320065152399021720132954444230984197787368403997020131510555412345691720946713287014744128228675022258969707234090826478299095897640717772145592400842752338391602481279233478981527343210945270399787788533057566078033902797336465739355034719923247361568320943416993502401009237887429863149888099942445290681071661783557728287035833614443038824705831510065415012161742071570916915330906096087623842365725892284383428120633764658826230552692345435837925105302436730648715074633627601416487667864247365109156087591760801813503381721886356722589627368619717267049455394296380944954532149988003528780527729014368742480418960800029794085328629589124961584002174128842099695843779218952141051213358469895672242171639612804951972655608795460983515448871957282713662625583873381697967653446494682490050100332813882958222882202570309960875651905243278197345275860790205802984595238556830463631157174439452639528364675847416163159125206220355096204660817090333965045650024404069330498079394837307249274363356280813162323907702196404721018727509450414883814132241627002953880989797368812482901818226272699278222687630384028828722280826738070898962145943602112594261628701310461027145567981705692875100963646412052294036666562863451934588369654981186271508866902684310704157228766039673729253766831414209289935430570732771443917754946869066950380720685320879059698447819663675968626133355988751399587841451063779964156796575294816986238733430185036085867153363009749630925500144463734223559584350547578692421942727650987067984207099869266643739663043419401671636365477211760879024862229641575546120057333209098321796494305998008144291135941858156921246892996494698726260834419391096796253971256527463359471015677780033584003599467829205923388702616503826923136263414764867860879962851215235007815805723897504953348511814133369698741975405544575360711477911714080779753098390677077772964833926192360493120414348204645294029656316469880598001473219147359659485107563600907422056735066761515440344582158035354788451774765184791666877456938326920978151131294809106613075515116525866048933385212422798831898827253342194426396944173715018896848653498887468659286089780338501657805402558675922128443383319435281709939787681179414748304275840648431485593668577231840945775431629471708852163299743560369889806488452690983556307204676569882690787651563514700386844207305977644149466975179194799543797257959667508515046020768449479938651116299240043154035509239590747811874036709317469783967191078051261520302288915269762943812819821165264437393555307006617608747530523700818093961487266328098812767761305161346639685039514206971556544229478316555855017549076396158961067763426205864781496345268281474654170477787580420582865586492240906901763396581740628336112212988925019010803927465510079700451130168988642097488385263487170925575885928862002705771278039011262533246856297190012771786041119016847101311856059999666523689054783346785900692919487978068394854696978469212841813722983368410164403990329347435534573447486475759101061132753124002626267863752956345648066953803024366144753239676046774653798508620924455264437906972464581864975044497732866376236627356442523989021510502042720285750048982937243540525565148365135217968409612437010096299477933320601106801927736646780819523059933547608806537289890041638632256536022024987555694243470187584614467832873521355907883419043270021886526839161433291907115650667524118180311880432603294345761580622389476948785615166084505957284132576684641528525153531344485471382277375879996639202845302288740592479123947377736844775743470044217290002334586134912262219876235909585799818462505734635027406889282745042779132905597233596910778622371028397045366067685045732265028513183045949138403842583711036046147788103945628026641536889153073219951596233570106814209898233276069349354074085982877288483479361642941202531243609954537712206149535906792017045611119275299897034997104051701676733464275511764119914680396631376468224212553281481595210017171977799225884462932355353018245613408800194247467210480992392541209619567921434251739599761089518854084465070642587183725081118533973221431421456821576166710147594323684620469111162966115639951108461235109656585930355016340614282962770355163201861166681602955610517553625386649008174177154977045331532010966901199828933868954864704191804145058834056029573735887260353264902134937531031807800172659198867477186639717223475794851378683356395760115815856935325215505513346856506417662318455644176937344296755279365317320880742419422168802276747461348878765786570235158424265607855483803011445373115184662312222430070295156878156640383333191174559493249156497920375657448891693277414891840961789077811993899738567140066363429778107928944870357993425745073871133616590285675781514429551852643619027212414387941559523877577533731074301195033690541974152902255786594721740319648962220966741864485073412540934840943646563861443235339440387151740153906912879177202360872093822629079748440295555617505248422569526145122443828868939595872108068746465354409151444489923185503561366251249643543645361185922867190737242125488282118387492023716329384792733955682158410499953041920135522253167469247562951318010815850370539082883890164723134949485381033464292197718177133181391918414527383195612429600997866763164001378368900852743972393576888647543430046910409638738151270907897827591242474630751588521480337042977463738714320116890236623314962538049092773738208426723507811492701897593531055628215215291931818644632340015343744491300701312685572778321015993904431050228000266659550957451807414030891255891393407343215368001260331762538883886585741864808709723365334643475928728194370529785164704851662443154641281149872489392290561181954432707771749216834588814143152622101633976156664811113824447214881666705319457276582663599936804836927255626370695787281812980505596777580826780430824360895146036742741217032081149538174434884697718904684933908251591240564133351276254182383871251253128729216024088267859912968021876278712302206363619354943528166640468218687101636900019225276643987767706531087304062678617309274788621071728458788730509023947304148278806516872850766770844830387648841686030732860752523888538086306899190313915222200489530631292650582120671929187289138844946320619938268140787820670283956008291625190669000067301868597483971062161202544354242610106204457396938164139499130942548442687328931005444889303340591652288551644304166335510686514466587997606333444911268956377161921609511345253970280672013597042216948060665244561109397012557033318266421762976381033847560765739555374965401077599454645786290950484391479844952084755589184195196286934949541848048540230283278670169544120543168072441289710925156034356144427121216429365869378880182974410465224371673128092884952983327754072773862466017114404665048401709076600926978739944792569244149924031184598458332461308630640216859858987656214153529745163757602561011771590047241104249872387281819110789071643823848237775455859628405488597147605438828271179509968778600292556883221121403957249899388423464076453045696060982583874954725542405131769641376991374148473416699366167996650774790482455967177578712125703028399042622742640678836771763320696837882192128322907969235791061071914762087286823418808823220607925521060845661523110426009801614493883901136742657750428603614966535297271387516736930031368542412259377950103276339437424620404185759035954780761233236598924927825589664105055208366348986244769477906913696691196076451150660646857639681150337525349449278709352324798118363116328498803330960160726894640577260992603300519842475449124979180710890291195406943627037669320572036051492974240696414447051102145153627665911046795509557317611965862958798445515016526856038646439557324079138266845797993235994355326082133694512806632742573234863362122717780095143696155191701274673543221442428731123018811131001103621414312447661749925057948956424152883681872412698555090885997789846163727367818427319679928976677044568732577558462418988082345078702751447489188921746322654572828726603314339144241223482517135041213217858257406957473725690542367907444634566054362288798364564166760005375560856624775660529384456523478459923485513798294171681511434292584576626827489131150121855693401095783914490998502169055681675108814628852380532509316755056202362484545000330904063583297207457492242946972854024139622476159039452619714135757566075998381516479079258975072291215305374154884615385211178793077293840684972237323646636191821701547551190592876228674947309456878068060764434586782752687441312411936430028295424128050212338646750683818099182759296570224223272179698162285447247070035037856695360243144077211504679121929453034787636951846634601684018784908253867832887035482162772239973989658413264170130577904542324310915255310337641970616624659231949594052392610081620626175208854859796693024446644318768695574098523300380541388667596345325378486637200687652590416263457301721481374934180281384393585762448777448610791517694026964674866899620241954410989151288606325672161163974033964989301322426289063117725076960399949425231321127076659029880649360338070340763084142411879459636828388488549609875521757077069497073418001776830939745507971430910047309046043916568622844708438214953734467616002166496825508731426682694590585839195280827366126592292701735437393455844744890236156652285192143832141446325983304854706226124058939152822271942483789957429656491847440682158373857679095989021316349745602613178108892063182158029001498145612531492526467235012091063563619851273578910486023939714831661220796347729336870815732065360261727041415077820754647402983033965003179781182655953422398404686196723164383748580105015416840446852638482561714254664124832920969873656140056521162148498235750508127841232035110237500771788730613313442755939039979083627923026870925356797039584174617288838102735777843508271266305282811245840759886357823810020911615403495795042652532972307944615436971196717914166172748510603889231156440603990771980894292498424800181673838537217758065218781764511667475958702865464176374006121513190989282179396826959275003463695518529972915481300924768724749376557963490143990161158926268176034669901633962167723723410113465487010673345932647148395458129353654804039309788916990247636592088725433968801984808262431661970480675506603566237187103121906648411806398931835400490667451625939343665790397182710404699422301005587589152501760989118965423371337380854444708899881336731391886188209666524871026233416535950026872459656357981519735377432331855544921535847220005681544995651564382034489634388941908144625079915223059849621670236619053246492489797952894512407645734386708935444513556625974173020888617689246144395938603552703182804081660353678490450227135729454105353078344450316125365707346546609888702142438921543186624793550059936202836335368658008654758197279774382028139502470139694048390872378526766471147335709042106914756342774441608592536130003399375649883650623041681170348110804533255872137664907707740372819807607584715137218495306247523833583360951838842351431562240269515445987102673515586001926195027082574549285246611606086913244830749439055367575890396068003906026703733351691656283655500893604288472461349358058833970724889858213401382655522102385422865980003645728143621328321986608215615387215192541562931479069902066439109107272637807298826476379906559738467430142362756454560955228649882226152579811948737921620030818124080203337106047062366620914829114703960088695630901498977388727059341279598045211893784299847002294529352128239344107600342696550385799773005509642381164429993358958992987609266225204547332001377359404836228658055541783980211126948990671084868104071599174522824924555160371725601643923011254154158399921550640559594324014731419608724330450108620864827913966035284254233372946206790426602473243636309928773037682068956471576015234929775986364346234117155645698521878366726157626530742036604837444976808017184587680241878922797070886813194181279484626903425325399456469200786105272844867849687200575504361134968616953511235949187416586105420744817248220743187155918056725459036090040571004770322965777339071690464473792892529226604102234303450053561938800839009036322621789121242610926805415329742576836075084258263488991636502784249520972822426205084718075606513025871777020887888602872835315649943842712237805723546979959402487402519415955160505791111203138705920433259305115367455166283860544551417977189788432589810613565095903835520586710112771539641070293707488161184245018959039745840956449447429057318307857416949836316605384641767006002210076419712821159243630769279463322596730616887399162891782044344013125822399617831599369546743985457489631623801080995739406400843844917418450767103874658706522931441105953611399476213501251135119699383943226001625068554434636577582644020563697508507703989740692713270186897003327818776983202696745849242455101410069040393120992137956149696006321580237760706772536963531153631454101821780038246975122454053933384428310323726500203730462342866314418731747894970694205180188968333360399885601029242237576670840807052938365359340851494074664744779638447524624558189451187003054694030561820179935560577087364522791299505836784439532083944815042455353350725890843587653104953861518538336176263615395845228442933655806943560386953591802946586891781751650852549125528947453263396778953061536149170673842295362278750667124788771251657477730970025255140356386521317407113059126393064916862508817163318434399820546646363675219230583319453984645912664438447604286079981107235872303031286806481899158716675341150329085195375895523325264713642011363860407868429361614152172761294699510989710215515751992478528646564738498307930590065915932136993026049040754194153076106457175752962262383182593052696166548291629519867546941289136187203516627662358846899264273154005610545349778083850879354579570795181688155870819499836598030126294201534147258507279567459889032558721904729275203504750357500528843219310271293867780261059309803657925494207066568103499496686408197927609616647939638848544504208785232840923852150223355954803273289045251557477883966500707027093545959933210691223573989486397251425529263179821944108806408346965499350318249207168695802582326786478591501062600140218705253981973095546105130626740395213025158554539721048031780490465093969777751337134959488814843000850333490860449463479216541909192320467102311006615378015527121997775969153733699730733009644943966737206966574153766096415042477178243390535211348265703356794139274130410101717071205924007647716395032828521585625076624953266946249297884485791703868491199859385007351757264902101807868520541644753327786515310948191691481426552761333501221953967572047341992073540138910803750205729322360590609019273321091112825302816343000013879528045764532603148732863829364247534590504936593898937013595885252660730258788800041001380938653792021544840211964911285499076584441591613298700662633471664588048811187547233457377192637425676516136951975526400248766222978545845456506808473482048874105279175767519184964493543088169724888829893497168139592713257220724080038492014662611935166948697664665918283454689618178848315424068775835768076186309558805170158551720476326942474938361474142466247728832353249163022674908200854135729905945526094106751088749833885453611817470129230055896069370765939708036912255583986454580421495347654052383938493838583249470596894040610710903407993069226133112285583483684088895176034323959017025215840352043050721198047356219265515719096415513443195926311092027574287690241033850090501807275775757596911405510554331686583970112073253008738141183857989857399015583096526376608672390907272528521329732437163592460819108829646204659357166494267855719544451515260735980752702123728544901835488845830530523852595547465290428392860409148618241351161133329085417237772925638181926993517971460134254310441172821055103950676971982185285954690657088347676537760591722389841916895491581333348653123960250551857412470608403840145535539524419987926600087405743440678545550654363977866995967886645268950243589375629426346903766805655706807193831031154072182422726206383041669138990944641490774071934714071816751914912082906670743817923417463995838421391524087690324467317373623625418875575269585312657455645423870032966010654930940481508871003266796644964662072052382185076709834569812529095459246330278374404978424753937204968971534464787515824355895530157348304655620110572002682302590744579844565889625773190519774048300752568687305445976322796337595261408580146427454875918927702891946601353962635734823330860430296524859382227988883040213334282345496852752078638749095086817337876761877686649535636017985701442810430568574325136347314083051294433990226827451213063045894769559509782040231689810997563067252458358642851148471847487371110378699795575862025779558327313296433092543843369513561525291609102334865886291745836984757074970096211053213190868590049745269925602783637858830504615305751653462723360481794887752524774342058801216668995703911765426199745979635978161432123230461239077471823425174086858088393742259251669319010132688159411406260274705907178576917187324923053624337314415087730171922798533872924232542012674531734913038971283859473203788205321100727196906306576190063475174717027871707497454213853437531069359150412282238077943368107747666179220983715298403957668618483133214358904614763619092763133225542477462374080603851268811721919254305699292386120960042976380231648149434304379593844334806922627748423049008068927760223288049363835800482962878218759836071868114821120621522453585872948665796656376666795065086489738950795959768580073244400385086686497015747910158701593817360172608179361722445988927795925959107834866108751973251705677230615381275226057646358394635423868067033415307887748758569477137594492422251303142474867367433035466770669926243288473331382274512426502394909875317455877886544276832059799982882095936216529121320061890493479032502819790704272004501345067696925869122377537898231847998422249581642842166712317980662974331411673464414232010693409326796357097188382538889704457904107648113303038120543001245818204223608292586759363132591364532949286321108065807984827398462498057223179906932492627241409397752099381095048430978763417077047713399112626253896446175734266401256555459992056190541645671653259137298687337963466477798928672221309162823654776121737092565937647464962357751024801901588809906861043308945006350955576891105734726839172834512690361356285254235104774977732167331683436879858974119202317425396643927622268087779344960786609512937065711236172973214302487479125939717374572462681978364159800334465755166165027214797704029065355750243812410393554561183522693766246048591214409903352753916692535774309470716020926540267670719182308051005855763770990520278152738246915741306375591605451898333863091799800890830325749517997869409041129444357012541189479050658348865448904649056788999080374512092772677531678440963078441694780372628359067980863470793046623035361007384797490309584657892683756876030562100997371894524764833995864574680121576789731163984525249766627813919626516571407945381444908181149084548583603447320522348120004863854293076230984640005031433637161898112728548368913591709712062612051478928739240110089159303514525986954323535089913900572346371479328981861637590667153081457547539811418477590675915862249658331536480646837843858038439851549151370835316664833354709930002880831137892481030605499504773422735148916663578334395828983811905497982939728864510817451359387894873564549195358614107625577364315769762355832492682717330837189229272067125213638700670994332186134475328625760865228433456206344235718174430994784055196494167277750565472702503413344484500716089968330899572649484593649393186706055570998318402383190876138011810978352729286981389973135106079916812413109536390072217674006649178731108885631285123848557999040701346394714721989495857843714064005716558790614049683319865870824286850660899683652148267645619644185800286354158314171326406038301440435993092526911356126142144391591995998792202798582669895923004172943340013715876897256981419262939943154482288939739865632404977508272065227918236713564693182090581131555037642893030062541014528568958769845785482577958809884534725163871474781844932029774111932433657020390936697838735301472398044585423122182241446736298362682789078537889811281556149491745131795216851668500654825547211729101954788642644141000578738757046850980041727208056968748223087051617572021959628891505551242710926288305105299038232470061412564272907735862208620459013157577045939031274051309978092460213452952776893632441586525062704425036757001511737694971557096102691307667574909500428227854403756038276099158193379401442201502108026166918336925468328353808619800525559963018206541920872277054046079623469842402149450217454427039384090353564983984640338772432304604041935188684356227154151619333105078476637797909192820478449793286920438154037146583258631573153177757270939331193470572595168083855363586678922666705389456861449829568224451739065445619377951319954730960503182614616397253928076728835237113101505798600365797484334590471558759378723760158186089350286597592216533958169563859867204002338478468782353166064345386749529759377725438637870624111597968681544410602236822774565879582877255986942207416204383667881805414242589253873105931614605159443090020973748092924360626170888699193242618097924109737031884231637823821643897185860917192621558997999172601845886249713524153144064958818013138563573449849519540746112026886003639355314139228820767038428195584443184426368218148071477131721762577930889358485459265776317069880149830283053332925277012076155569862748326906226015778035966761300213775522211586688206203791154405490973616727063716104179191459003258587701845694329288287928387496730069628359039831600855184464467865083752733930322011373582521925858827516113025460757291482235038461529263257455253185210310873522812596813869565364777444672013230387015451756780662588565950937998969133128857608767158628868631722902665558892094968865176649076494773218730550475360504324919036957079147379913749369212207913734348724921435198399945763040618797647159209141658746822950959791386881660381101284980939196635928165649740011500281039328348368431890271837679198083274737112656889682370129003520437015992664973078831982852389850773281531638971951998657579542826802778047886615342279264191388593642919733814868546195535941956485403260679072805512161783126779864079213782812702708249524507888096244193966147013665410641113998761230421738832809768232637168143130288905116162944552729353736854904202069565322889549199632484103445755017400095818292297627956000919570208316208413489375907934161308667471033051018881820960874531187574993950796022576638502190105375913001650791320128214196391197544351290749803600204070630453087949662602128813887864344968106227608758910676442033556264763237174964412870318845255615390418661260169252715988393150888814245319140610182440845063284942315886135052338001906318260650833967554815069978069695186575036087167872404332462345405312077069667932575021547607882712000619606792709670479471912565270321905423911407672119116796324921264819277593734694914462627587181826911272738528368920195553446513890517046918188192400494732143093153521081681574897673651880448089410141004473217025035181243822661398185893153879811484289970843009476766697658202750417392914008009799145883268882281385464665412298321036008566444061024235439435582275122910694587922210407039706434335399177289333917371824209789991481945472801987772483819408182083923744531047737502287752019007181284946557129008099157636061477539125736185736409705048646849534646787611275897347140998090150618247328546583254245535498758357089167360996117102328584675060906150305853088127957336465729885990649069182250233970943738130284392452094841273136361931027651633319637136178574143976978755003439016160285178981407641941910095308142782089568581890851135183680518701626256091865754449792687895680059685883184490685594627162347544137017824830856491466002650522565613762082538791261747168155525456175153739949200157919281691241476666349183440664577408004989313349229441177590811953097639726376769129386557868000894729480866303819939507688301315150056692774151614238762629235341357182653749921255461685522781733188414853896863437962237694672433620823699646524089938485198601922124276294224710106040874667605084698633060687192556635307461866736116398690683176396455350437431187717499291835959195120372354115982333396137818613272931567696951435049050836471543167437752942336834728236218957045775792916511278324477766862235953278471446286582932505622800055748404205974593164918114921811453515427967136898100097361686115014806450796413739557118060975146488416678653111106196880237023420896415283053517447165601465337912807881798939462630339497917530111806448484170127291256403205228023627430423887060948603382213063028931397357022821598164369539639291175852336265193069263598383224138929559881574803123488531066356224863813351115119201643104692762452930506583543777196748671473607785767445306007006318518233419589957415878896187276607473652444821528196242586731319934493679819546590576644779950799926370747014725992807642288540100373297242436835153199164689107669473343595051683175154750992182597113967755922914590404455607090092260158132473436275341377344956363189664565963994205307240272723925020997058320780807503988051295869618281163205991905779311943064418595407740557520378071483431133308679453758097996149700924199780754302354057643656751069909339338406121511554257543793310485342849848213487933065630444085613358915599270345245297351305242363728426770872885076811860418784597951551371561010635916693898369918131085034661640808473926147323919038244208423485285175048529832800929654454059015601602803929266156878561663382264041368739049026148950324316597038477643564088028164032203196671132235380362631444929381896165328730304615415993763047573325772857915279340597877683290199864362472847191430807539252124206190646306530820508815484236602548524235646573418313469025211539124345456466310294735943858100649480835498771028502396541683113959471781601871938528567019410255725380918675171854447335331024032904916761500664765674625006850944451716798783380051820288678446293191901216072373716365858986953266509714317791808312498075198591289737858883598573356873959213915578056823207865116604197506718951115000897905034736121556796783236689495005097117759010775415137160501967330698689612637907325659276693550948485123421839133405318890582207178574774651273116830908281158362335701390332132333465430672986323155851627050270707414874467073563127175253866810116733499807393269025411197801734337026386822392919574718779667264760505937767568996694878567095945314984203182675618677886540588159158040451087817587533084812700700301651865611683392922167376503380033223687710881000723865051492742306563573510094688705543817388043017196519210629388728137919577783899517774212353736560905078446300202469080971585681245912692827813289926564875205291768514333517481981758905493638869301675909190646942455645893260472406464196212506632685374873261345728917086016472147698299508989463955093750813726390524614125780831414368885123238704330131688302437925677073231352335408530485501727181698971313259592049517282374720155903956691096527089138653158730659878363097663279419939090722914433807859747315649415980120980496501260135510354562091173845208094806789166083766115921712950550318647039978855353594657254061602718867614773631056698386088713166694060816294702948012347216181397309199822974975321790938213114267148908778997570006751799622589382906286356229937548993597251032300221884761483514019508615382438311333896851104765615721575258713714918864968819030518418645587294881244279903819627339790818171665956010791550315362708406878654668040768342771060399832194288464962427570737515387114466406942292105743895698204388582565751907650220723909181139642359789105062035305818128649102746992529414492704593143220467724559922434445494734782419899392297506407945821754410592318083167099788120651485551830890557598807033542128207248733919469400168257962080306226782478830841214424827192320340643962905732447794872120953639271799364355471048830129925631332284792769355964340712644007152021418860846079456958489501185204098125474477420050729114539405141373700109867357311894829210887519532111118239671249191843489959535852240457141427925687415026386385620746801528912558572511380376334391053542864081656748566779714645203854305900197822550875103757913629155748018415275400710437145734665607365414157156697332425130058306439887678895290808196930637463136894244935545118767115383376073115899443083643875557269639207084886070025840475002048550034974878472742180985896104655994687442213483311636921820139660898332147440047111512218373641552733642098231379019662649937135600003346306426361882282687448564910179758324829391970423987575425983558696059370482956272803388311321955475599428817153757247089400226106764093468595718799925437223530160927876173362889846348851258328680007675093256026380807201607891369809469718844040787745046138032604220148492160879040780027475808425855990897904226660228921666450731134022674739483659964928149370222536989334393059187857877930690482591509297587851859764414436072224917125907776247211714402992268620051826711851390133940061794014558398352934867375459323362767052302627218681013489664146279431437684839533401390325563239420274092201766279366355831980516215791406059851222099432899726380386432243905350187379663569959544446369459911114501187010456474097719428732428161784901769722702150380639196709004045443503672625498426333154896709258596673047064889539650712925258796892135888106370541879249694033001485732573927232518461633558247073508271333174857085195546077797542127567385806374730712069199685419434180650276736893052243669517254357869494063092653548791805384365065147228415580589246273755414810996062094105308829847985201809262560392551904386054081098038498180252575876190469676803625111878254027720042873444805984333877805421825941345305392828266952809199532786469713844266248779789631954872411264439917128927045505838310954941404950141798570049581089806546493916826009700309616217911699592175841006830108434796185108919809681529452938575489425489461862318104236099007369135414310383363875632388971917477862708013893910215668228929695330835116796790656159752866372013750961706678890152855438528096061458322032279863808209384114126553397606187274913292310327412579329798218561991248771084784852297855653459811014452489982600521122935654813959598895936188843570560553533875051303726537519527086614195026927726142072138399420675158657259721799204225130460917846650828025611521971282253487248805193995789253308069652477387103274456573434820211457648991163684271535630266276328777581550966945074910426461274065616269945886356028725955128466054571833035776975077441291866734921237355416935780789334256887948172937362066493039693940794917652307489355428432003730757556121613652818472701173100934320428779252362288860951296865688025094900066448592902128145317443403998781851856180542784723131684036743838075693193414049400175206842822515548962359666866906818420876289703226176590032598445162645035400745559117293239765435105352027109960533326959018919383285017641972247735483997051612601363143467695653794460702767226362365844121072217091692341487444589755024217709140873159313105404634249865095277391558133024204468225917675285781280812313970330400484130284283716912119443586413345646413632059108148676733501873636315485241924956743180746262861985477431042476000672758306830588629476862058942162616517026548437800187880436195933215162793752993294452573167506725422992865788377475448453340145673318188956700288610363529091817642181676619917129294535811162755699084382216274465100585868283962770801022292908530383647690214768181998339828084071076495133335320054658675604240389661879486987501829509734337851997619085179956287399638006209995953836074945325418552276850722141497173420555630061592970001879757714497620819573001216590395408606638258134735278226319358606196696281216523087592733160016182957782377073240392128247865000071986910659414090524061336794480790160116351377185774103069799262758617387781897767275172003786342898535546762580668584166805259944439777260916042418097218733046303574757502716706361006903668195666150968417757261619687577104830702671441944035097502873113034647964633848967078759299015408188954381838512341511313255327393414128305722554784452934152235863684296712320189817599817533040461633100181925001248067252349606903991862851785598255838718409396949105257506490015953543029493392732692827702199612205506193052372016375695589233280325391439224335629688857245030467008639806610768410822274854851642397291508587668427445434763608674546423007010938978497674280786439768216467307008117644447852341547490574727915931023038850172470608040710275977375871795162621937129941227455190991896004124832734541003195089589666149546824198532528815108281783637365868268218046535214273843439864670877785470149983173217103003748181005318198363157399919703693407512459402318066967291843706567120722203577862905732279716424964497638212949199378912737741167063889355187685866173986348683615172141765471107304556731271016537219955737535323143620689228368011288900641635664054289317007604064170011403244956323794634475731428215079848482834177390321518628310479080364845551049361735745469158176685835758131311551272950438886917192769932759201731381920346548710051946540504295527870597373516286718424629629008458037538722740887974351173269443320608891194981764175156334546192425650869569652839885238521808401812757519585189422114532747862926684093017135121977243788388675207781960743823978812951913033581994700295688040267315952470649620803822797471772647479346119693062958124669971370370469198307452362688601605602683941958405964953671989897801930992526859145299795193182922216485545448723786370625199969004418852096316305769816404145382935057067323343586274749778991072746571757656615246742018489550200062025091492946705416008731379282845251909149974034091628100262524047065199971204668210007196905604467762082817524985197217306482773266717611517545958832639727297851672638397074417369728892091774144428204322164473547708011600876013015423643694450597955436742513624468272204538747342741952863824609371103817504355069931344652709926805455058842619499319957568115464968696398355406122895229174450276991496085055364705587193239025329469656073721298287294892843485379445130662890296532787695173538294316385418298539616777664932182962196597859671694688487334225603179649322169401032046895022714225761983073014456279545467810325192291157220035099324736850188854046778401353868711846567518904366093354315370321054610740536875642079853569347906537357589317496070013586547725380369533465055979723328052590113445066543406867726973837911145674329164091757044193309511006886041084016978140916734952182854467036640462891067372606651831450743952373745595553040293138269687468017032924429796717525739839195787944007496645291140828226138906462286559371271227053742340439314240644886348973283209427699313917053855688877483444453532967026085784719919081198907459326100926810099360219402703431738872842696166734759877695955224836765088027524364522495437816634648840117285259240497637971805879131823953218888324692665277757032668342914355220615320518829807349413628127189050053665430667681171888644432452243440032232353074749700515751256295946678913681025406951169764992221364466524544169052651252875792584032481144096047712749436641396006454718815839716666751284702089113207425297836378491778486652785255444406528879474738840524106742571494212556364963553645605141614283341936056690879716436012805631316538822736266848518066506920455826348583058716254184656016599238708092002083476971547524843834256265765999766058518686263679527784870478015301261008937562701952536422634288860722244551669595186474619975539693262494687384671232477662408644231085438748883957847292913387753496574395695790326041309736718066364836734908588238758319339496974656570392391752733102355350630124182038287030075016882653052720534470193655503617770789090876442420940333457789872136077846616568986337200063831129565488969171262629301093064932057901070190439989484433573306260250836698727725326627119456689313350735324139551887610589190030877604353966120874176240646870400591040788502940842161396823123487236050410673855680422940907708591423318590817251816313681207332679919100597346366599197205856381749638241487490938154090230593036372430720432710837420376639990527381245775102887424294023586378076213228446018840829248730526747249373653708180641728352357805336709356225461491744639441833132497225312049404342731211050345389060021093421833482488318450593083985020216479285252769988485267697369129497417071128702797124494678735077392291998464901429762531385321927945586477284637612525699270705308192320025688882917939815639748943908597726254048252580851086151660795856499203044328581075962624787702561197063976305255168501100841234703107172390581691906976853040803944747056429231128119484350982476926366269795751444336266604028506382113262267443593431230580395344224910807810404271256408534213350170758601528231256823583601604144375257253079400688554236421667401427512223695150280841312859584581534898880742598810492153795795438410877267548530021223673448420359860666298818026145258828631858038997888968781949469919964905025718851899223279945939337410834412343084077594961583373180279187191171407998034313987591850918297397861203705093884564300679420301070234100565378704708256747728880039865743836077763868290336568300271936162300830371383586038632345127512454834527664152802680051478869473965255937046743600581140449398744297236762837508613020315824781015543026606915537460863284555169865416710409095618628228347563446569974993726546038572901820255155720856593554221186097442473892560670646181089103757787703523406589595571418638663460562907026880119652237685751107324722119423528933935563684704605607959118833991556524363213821210865927781081671676544063087219712941625661448798124134064328335647044509911519249097011596508049603842994027519735538802602154435527772602340143028340633448501479555006971906833915208401194729049279758800106958861702293907178982677548363465170417107595834862791428110478422816764024276925368753806751046058669268081406818517732440734416235419468656852479939198679923626909928021594783942373029941730815605738729874116355931853859841455562858569422368687950436984735130993186859773411234563298660358010057059266798768423883239464272161908140798754367021018153664913490420899039348913825400339837460103511333493553839757785398744151603455420266056142196846281126657213896559506292436025221423609355986790565419357910353441588079476601363632296413907889120910473242937559780273438962929592070813507684553187930669498463996715621686898584270833356238137713782984131590656682442423822067068050419242684928197575024217258389038881389028801532407297135267219931830307438863193248938539683378018792589757724511947106655753825388525081993296752457673341158666472542370012789792594331959578175625690771008983707899639569781557004090490072354514157721060981957988217859734387754412345184052986813258479121608614289123569716847187561895070432736348154070319370883817772665947907280370640401573148635595284691566307781914591352366173479566058479953611490527456454353240714146523012730371684451675412333959905520069263636419681223283678064147010158538077242037542891451091221381428908859500407471266349421084388137838842022262508406316085605218810057305069491700707273705075933449479267713707424777289392658612432262325519457219505616591370643195474712979641983851022062353075445358867111105758720693827083427634956991068610235497479502283038410687714647087754995542083482771767173488033124490951639759937238427003303615751310158169118369507965966880978046646505531245593231663653041238987212736820022594707453813640256205475187257763705982035382992445473675351777318563383539527447883208494558328976994545203802560969643940801456526016666476862628470334167650360235752310216338993923805950486047113197421705195464409815782040176822189803475651857236691056675969132575396879095638539722521590162770278731928660947625215429913355532232824721178402307040923230888262777638717795995721972293163414909990370622433164655518396108083537127444320852835932512685185901428744615875032712834287333805372267700938406180060139511141644744727778574496659403706100587814988991853366077665413897750785443747466732207325582132114157524038536158185924624645315010638918637552744279035590198374474043049465997556571936460109045112846673200066202380193506856384278687791660827468862393144723823621002753531111584695920910294289659108058371294344979139604752732934414048605097444295954847302306740307046524128880440235899760100971543104222909827060832898330282967460882746114583776417091849063095952243741435330806522805122040979358358628788805033027674074062878340076781950690424216497209258867935445337015641111423938453043570600355990765339191246477223458516069141294054526109396528522015331987844590784450750329673271966498362015360077671604136369359756605342666207398374595841166981257998338724569177503817303904779083374991791237701833994989348539802542947043369106669023172984685782227035518572464170166639331663894964456754694135820460231682740771741687272730209700672366015075522507771616797112036819970445092058200147537215385250433411345457636734192436654020533194705988814995438603024654152427947279254594083061454420583874207559572890660503727391851593887866425040525604221997074198904774391313112288836155806554691290474732674683691338127951483999061273306547045246692525409593353760082514657117496245810188883585864398567337076045535701208288099921997884641859526837004302206003378696070545630627729281033479410824820768746196278481434179267455028787207487915879092461774106449524183464514448695386728156924187336862432071923162623820332901185236057397111540318424130283610580784031352007879146679924627989234761838976353518268826990292726557456056458129185984392050038245441430787457687142166179239388884614488113938585719074607201585601756111820037561847437032458853612993978792148240333844591219671823577836002558037930654525114758829728895875497137707569962424313093222811837757438262769902288892226096381884593771922874672325496671370131824693912925611097942272736741164564810462590928626063883221737317432496001629795948204373104157814041371000797458004896728598513164934126704763722627623702275314334649348664307472353009438338228090807059362375140636515303908516051741677908228412017216536003850823698742542230497370124267026881074695508279373361293070326706294570402564451321459971861790440474975033868109878549837565850367853846339245378712472544535925713762781772867804982263675880902610077551434381335409902570864060290788018774102860819544343234171080951922021969317403155888194039488697241983549451323092293730664865625381337411195084718660233606544854795412400008591364061822848151287452650585890097951031870858624984606514826879003391650693756762529259165033738446725126214291207899271530991587584122533357449313313244406006461261030879663789869053208368072111679775861407520582970753365514672021580940274643307465892973322380673445270551175775502686261984188727181736734917237544427329626937776322721199018394679204851599584093022937625282819858366527193458879880753792932010715137675757892144318516356598405764412813771986442093346887076761485358581366719924359781221599938838366005893228662406908831204523515958275328546321956536805997900829222706942840022778715027626137553022814492729728638638535474276393439473688391572299404652613638461384786872381392537245660434669951034442146203708337615489536485987970949244539211494673675293028773017809305079272421598235340242740237347433283087047926973882029777512796815252437294054881539650395068330092985408142293501511254232260710346008550982550899414747990575281344907168147923638597281562155689992081068730176508491951249028165411904140717807765992944177440805600518408759291987555947712279432575234064458623117163316416092080884937855667306140830075016355212105161280175019340789114338310232627988250418401987849285395189124537787277516421256566042137166729900726682564281445743903150441898080302541671387775600343933343584386685524335532995961480992879214347109006061966866320479967796473635198190844543998474092038131854770389596520177211718871669395255427661852110528517230601737484912589622722637915309324026228380205395392934625035887333255173216251035870274454556410361878709361303562507000224065151066735058092841196653178348722129747010144217046229487988669292604380877397838723603149431369759656057888289401351227521099744739331745155173487262365027895389369141664590933167809108285133584452126309394196870611978536043501718642480025427715430914420110412490768402860887503284420777952209715024759264612931711574349149981111054125286548742027080626295111260741228444596646166529099302174074417193687053926467428533044624971962754168521130683138237848402786057805763876555736868719586019790297380148011802677693079775800256007490858767274925820085388615037582716966211720645746233601513845147123685518819543985224973150156048069996843666938949952991251971183167376531996994485292568412905664121121245481045948044751363536985137204659157174287475928115864944871876106705731714607425697934500997872585142999039106870588050952856059179499149491504300754636344678724697905626348450752937417979722229345727150917606938293360035365432204214007208964753434620801227966033676971081672059281981837128837983436841954799959250807212280240902874051769811229528531904437469410516712354097244361598075787946675886819581932971114430024357212366589283679298115277119013845475741572854644261505838483053219550130565420294467422909247498675464508487280874047234240802888195770835958732860113241870742735020476520455334162069807050752343614992144262959551057736595802913121760013371576431404735174588381757366227002980820948144585110931939814084697401285709889594862182421850133334065376382895323674544172870861626354765011817868476933698148161518263934445030460068528197467599208580202521425875133723177835973977864128101886985589827904722956042461870649961311629548748735891978857612725647526103334813920024272803903291247269836661252894194470614692441457441611145378876295438280019561999465389124012069229065046004077103347142856519724541800666207663635327416305450714767692469238921920273246574603558062854489621415968686601093255137128620991463070357170970363030015021004685731821593888932878628138412583976806421084855740678605873930187211068399310657003341612154602584824670062466803675377619851644512750776733041891601049550703665972904177182931713942323686639017087046153259280629562246004693868269621065635329680090766171809258604110949230581505936384160460595480550652741663119758399981865394822109365721424748134093131141348873965604802267504193406992874181769894090528918507223644415354166695129774619965582820848220831131144235453207635679785392931624269461241726790521655555682054779619966065374522236943708291833666362081997393394294105892869559085802102518293709167156234005486264059583355974361813674103240323965399349527463265593592255695810593542181788964365201715813517613537341319110738106533147919049995658086462269034293497680336392319576633721606033108045491489194579674039145414634764541588830349817602309780752472038744364628340309265157374244637745320440534209175332205257297110574267046215224289605390213375479084965876997234795198752374889700706152305397148008933465138090645395249031448952796075595647310077386041253826764038495545217483567103222331067646618601280997908371469882469246204413892330770077447954152842315699053784513457819243304115111214631115717945968485831604371802161051749285229022888634269454247010054049393344361984074915512182907401653190083981947073098236781194546240680791225630617191677782499515586721414478436584491201143422485702854837837302863763864173597747761570109422659177792471130981569130643281552947050156309636193455603808792923885354539284873113398436711736461604091123568172903430659652460570223110805012174657185904346747027381495798193340055233520639185654113400749806205859304324918982241833695196543597703354447391295134902105059176485811048787684034979821160247169610583402237708742590184688227904838213467156574371110658693896931224577588485754940816976091911980239036220363178536206482734879844356946895505971567486709646119287219677468253886194941288109409181912996677631512149119318601586216133058309747955416346171815356926102405789037941666249656808110558551984954692600808327359742018057577936391879717659033036735968417903239096843276989270505383475555829604315165154349934209203222824733292088512311101958965980147902613246641501697491391957723902545481847986665601094984529406167715124922069988525299950111841321790393097803347065672816906740932550781035138589850359455178009763671545661307789469979251676278703470212213408094945931273988200603958404058610345282231881902622400790938436577295584245771076398327733099309197672289513281433285016360015504645839253720067752549031914491861590994118504725799711084568187514043485973441512360866771094757030157030693189993957944100899653767876736345228434352939639670245371869918984335875397968237912085615125650004770492902495466864644796377243150648298232115189496499844976962979121315542951851186070549582350001643306317400280374549759397044035163644561595318891773637643742534350148873015780159436317548896984950717033502933076942112002005586999551075516606968629200611765229767120910416494960620862588460452752930250456706158349895881583631321292164081379531644617097754111293343807276204233277414951298285386181915537345656084321822382674297999035854597859889907824192121690905303675414904107906160820081661648164781751471373960751549032180284552718149933088694158627388924130116954215033754241478606895355813869723997917458228826906383160912374807638358434404550083190298995599901463763506785002706047550553207413191183762677799577521102742615543685344142268274687471773395058426177160735894725689842860376493594030542629437091372642480193232155899655446714909444166145162782920724740798562024189899155552873890862061783687557229941125309150820150509824557268916228238194533501004389186286976673770564631881419534006578586358647060521467887498850227604549585360795502979289580031354715427221159294783181385350329828393849682013623381904065836781419109138584639746190473686638400192119382444303575325510677500718486697109109614049217962403920925443753419227870429093440187229112899205083399245058802830982483715491761782812851796767587789251579271884790685379305865152262127040265369695370358838852855728845446663281779097772094421898281049197657296289425215481482194055274362783746464702410649889003049272460842867650072580888345187559948708678088188190859647510017715215206888578382410386432397795462307766499296773259418456931601093057172175470171370378838110448919464369585355057229765746713737617253197060753799502705772319686015542951182930841420538332819566570876629774429666137868319333457436248006071015304192896851235942351256197746895884886692410486928723410936622584443905485191586576339325694356442005154580295556346821844524763840141644058477314565532794754254526737192975751383656342424392202088963959967413129440764043304689650732764506857869123897136266017789831535443008715539997067839549588970169811005389133671764699758607857681360350741958464050065642614261631526671362396587914908276781803398932587881663897678820228576224631562544984735702549366099125353034805766121807857304812071985019105036375075733942586682381436024819541111926288538223119628322711565299856984394097943317029671461869576854257823263905063024904267376796154466617052598898608962328709913040662327837975164525552953091044151923998417492246338438495069081967310979103950322769223956398992301674805453351579318861917929674562877555455284442863507280801256173599765042942261071913633292219309565818307165214785563959614627706007033109700996987983895139348001665755082875608660556426588272627875649257088221423456158604730784187171223211706892083545467662150049675388560859773556980751008994256039198501945655160124555788045448430451825565254230231864347875488150925926615506400396797724172877799355893679616051657820778997932956147340831177273872965421605170690064412780071657333625278543930075113227710608893456068338425172449729537665926184175018796760442318008627058097363955018210540307767281613754871623082699797196436241949271956374079619435194930687289910534901109040401676428702207418670742492712365200966545385842840729135759640549365718529667252400521160805822128904528725814701839359746770598387630062230039705928211200638273975657745103170035071828376534208275759493422033848456699487809869828649137553898285605503808316849397497910187681787609001203520502892215488575925493846238339928250581756170712012724121023616341522148400349018284980916921512595860790517042326185558264053048522101347442249879321093135952207147033604637774884198934036742913715044892471901205905294420101564248844340916984265893462333514964450853184580166118637538047274418416692631722861072505581072341472943528069563745611128243713231166820174365769199598430222269494804744551416905357406037801736411382951011156397242515074676306969905323115103844756023954355028390926192560043810035995285821952853153279952826203821568021098092318712862486109027218035219274622877761112895671832235463739730979741443102431074224171768433517779127916280526692271301504046653644890726209206454012034625807957623566577109753484315410531448920745018951035584969950252999879977143570206410444806752862197691247299210578981009927832787808144653848729698080728946140389050939004694810673226559347159059076998802952656949641965645866765962768806509242499741744779651848001663456818731624547660382550380911417030167932337760799281949549879836351689944931677728904299608130728169413434080498987195501414870631184087073485095360021528965967300365551825290206166620250549339610986298060006764303754578009564816088255930197549425469723285005861789921364904016906453955175069081204138490404551532039862136612539244116434698240275976039378590157930246515389985739978311680664586457105904171746711171780641353275952025961820288566456090785168181445391496605860314464589871770293312132969923607880353028997281164311643179738193387098177736755106535987791197390631707351223716107285173395873799735945177230978969993362920715677292332202612330792165526054526591300703190353310988403854289196807889025007644533339366973296869986830472876976667004319519765700868897178485689631156975167822894577892580155520497782942423498190763563690658871746328317381243072517721515238392894305757479899686136879400103173207479124496032200175938928524523668887142034602242441228475768482104841073425063939225101729910812284524830247132637927916313570697316191358827175314648803306092327798556895141719143788745736096315424291172995885000395449306626717915521678476206088359755397481915688361801221335202811942920979792463629555522563205107853989570066238770086488421168889303341448252378055732522662757108495993326078845100811235755571606865500360987186322119978200802329622389587395899972520352045087489418580364121525173951618180744070584702225108240855850203104494758500591140545138572699210160225064138482939034303044887971859501435576940439861502590555454242115933324047917194261569531401660573674636295437573325929328405089417584346112133445843112251474506699208175971837605692614166408847209871779172561207310735959498820708101005221790196018069789527647373317343869972252208608576556396507312652832432874884128691207894690877485357172154129869474422813992999975651426677298874088762401765971743588911570105655251315460788933023819035073735898705847610853560270983586854415961950515696450397928717453905361407933651935675603398193307809749123492592613650822301691830953814924108119651425885446559460007806129983155163340309484359818850107938532321275722441325188686270895241614644573335550086868889777117138169500045580918266568325512449294305018046421259110720847468810144508744386465832015471851660432298631016289479687735024315479550697950217012464114620340797092599648545313384165141826478457567813358912945691134153083569426897332254368043226503376014245069146889958247488346542714773112574314487080794528562591440327672931603585176711469956046468776279173195382878027529994920188297062699167833608045967902180222615729933798540518384094268035767052429913970545965307081055052801363998319881047844075138146060238187415383821051898191794093077163945943155531719711145539834222404239738520291558414868749950502321236624627860940677945818151962060399989648829291664823362036285176711511371878274841307453655753302081625178465330403548978047386851290422535762910361739223276539133478630492058074967008807753333817950955472400852517465947660283304694528431540694816142722740572679759430617190858122061104513860186598668385473660201489451657050035759308309922203559281503157742132528893600393734098629315787904892959906608581626973222914542501146350235104817955875838293301022224031286976746416001955566804526772751013695937711787950359091975021152868026882437319052735159404957519676671004536586783976048161379626530885991366378038859030596974871854522128397974505815038506614986965439490654423174136093750753218819053388786878199987339582291197106467047171976172073380372849929738685501386914931694383162892083654359327608663319429238102868579490171632782729797171980781273986998144643684223057208041234933258734273442716509355280797469753276756542749431326419260939462887755052679888507576930281073008761490706973934270213881923890764919268731921067318263814399286617106490681902820586511223063443805170400915835753605805373205610922191533309254361855596616744185520006110286045500242383376407322821269821787394167954266371069340170843871426446834073637580609585407667415821361930767315456946330137929454215745303844060990536715975989015901080192335461051367762737607458401826376705255738779538388155402564512951399615171376434685547449220443921081507317204370126542483256422988438690886172567224684791238311516811028406129400506770350450664437881255296997045068308500013437444983026014670327664855012986763515468086250585151391281654836034137814148693931217323718681806264113858074025603322575586748224858271710931121952051984619065480118535366376691223587245782018632142781145640306059595064271116819515705483890506352229824360509080758662773170931386344682205004467123319039190574164550577421925855276022247899017090638704456662425851425454563629266785194831952530760969213957446536784919295948104420198168168927468900393249584496515471569783379634867074399982609847467298413886854589395320898721349586935811495474726546246610614703310664366873937518961866730909045980669343034029363583551364221435906320094196583548365260942791795262216728083643175139185445580702755057284731902615594867971598584963547167787498765140693066966811014055096721938604029108682352005734485618724311729189830559887378373181815402837760685398047750601167540943113767745636021769107880333718115000247661769950700021514053802835706391363758340935460665654311090520228749496993654329899599362865244150145463814494172830350674890910871569827296508890628409356323465103743813497991875378192081185977088343086297164227040696442360345295605413036128094323359051160395433927819042802937020570479795635030044115874712008890720803818236856994379607258092956934112642319714559257203506391274198498341309797328684085965285679626241725984435600986801048479408616510580906433376534789791418256132125910210686090499997303947231843576745323391930280581920928961224772289771569383812668361998217917484735861300899290683933879977885443746765807137765636670606885129940446382377908724134683538579807952979369441645806340125334529891690679372392410646415849623199032434079198434586419403871193103950431410829839531847347641925079604593241180467684684687229083190869439664271700296441206906602727646032080314371589683984593531086583780253355532892570625825548660580718030577245541724801170151386023446043702673826439515320612061717996861168912714291801500668906795817394718348814567654214194207374037774957864180006879874386756439060786134278597279539004674290013816111087034253520718254260245971821888463847133873186880394590057400309055638310260653612063506505630412762963172101356647538416102869460519081093035901830423925745864329811016005776661612440777012699519419930382403940644327761881240033825323612059300443457290604250350270622953509655497296147837279804386732614334670152156580083014455206384005346195789662044110786375838242925532374155003029601490833638938673246353067632612074696917580379213290332382845901071020946392657474716130239375157512457290350972374785596114548113784532386459692272826708437428194515788034578763570024462971003785848740945967197206644322621874354290993496788876720288635102299959722382606476981444219676872168870123602676606267061748603937971924660994306922192061540076792985607235763749954168105140558660648638349053157277194950419730977393418173259422645164509323913187793669611523562688087396385374773601037009653332209474537673444171748683215492081381341434859180936796996397159971654175210285831492592744826436213367389290281160754620624476069396502189778131032304227669774324442735604235253031943923241058915923067443411262192666752893549376230239306467462192588785806202534465142555338001282504383800704818862717193962757197613845273775653954955454224246519613496113856693505086252861843711587380337369216240965781328622519435541217649481548008569202730276346918777113651588529672238034816226902317031169691130548927214507305921796765736419604265559071365717812704655164794355212194296672247433607968742187862021252009245643316919291085634546953421268676162619988458533004598251330903581338446894569846311279545478765627551556984351068342597696043089961720640019081644478448220953087300025749578689644161519846203726293678213322418845662187886770840790833444875450949518546650017360390847256159678287264102984063218796975175832768857444636254142917224067202447569705826043682772382069531197185068445715229409005674460715532720579774171210273634667783484199626261944983393813708842884024086634459238739898611837796352401187415597807671917405072918004403456707524729026482395830825668983393191257218565410420042357405150568040993256896795808062577494987553143686837030387051879236175624575279418312038906839631644963952641426410206969514068403267895074337006488050090787883815141775188420815871647425892898210657436217546691234050446263443168179398169814908715012001944312603900343906572974312140299871517476852207791536012868053838898216301647849431417251095832512590956276023598661413016117647964686104632984812390209744924738028309860638069563179565362524695946516869739359061271763979701411893860868272901703662526277922101369515282268544041530971639747661086648337344618102660696270686402848148401442419142933501589462208919301760172545223326521684545189388288862205081941610040975284453258063468613694151706677771330392532994908182452094024456656776720348236345674899333427069945756152023730970865280045579998763475162867548137268341278519475213830415029032548980603664830335374957560931652583717444632990311116992614117990685309712909048821031419253755030722932014403602949691835226855406873447773658019327032691860752023122437717319516919322098170058521611736998576069045456244901323060381200749043610763417499107556258605322890623926437705369538130786532013503862688881672467001926907742445364641016227102456952920971407017102517032738369280186825955432979571737576167731002574844066733232545208745267055358138868629156121769845701213103621761190713218628152903095523433690409031763774687672478844102249194797025925901600408261239516509297683287755071610222368811592000616200072851697878637578996796463803953756264375923706652237904851596890519015154153110905092660250320286255778253764328400071518931575437949670335464855966133873818466809643901630760369150962886316469561678013551343442495944805071955306563225384354278050601792099352374689486528625150706386728620990580684334104634498842956466290198011721864682189510097057630139938054763013219343252730840745354726429864927513987029620630456348644086271540923677129456399329596161536838818499599671549387922429182669306902345372652539591043407169884201873269682895766492032769448998446969825903959131267391751606382154669334969233764609958068372717895677756851365560947127290653328130279898875670281177766476563478900049405368591918071371674496691946822170609761656916432013046024982642636661517548583280937761775918324094307395328379623959768968671870501945201890182461809098622543636957283468465717854470902989378999629441438087860221051030885677091987386645978040028007335287204521863312020992392801047876457494644715821618849163270552092473476662049677151480885035198518454519194099309787266311350121697143160554203851197605275185224804363989342621185248829986699718394198871334168899441995695089967157686760881387611893373260920779008164776966969163643527283737798754031934710444431252205358632575471798007121539810090195859207281590236974518032962989567447644698758917870870559123585286862037900846103665356766354757383445574125622888738368112680912134797159227222940747360643400957117166021647417731895835385882446505591944600681106020352525154809559488464631377798779240962275990574518759222837662804648900178904273639564595195801708025394176160940558780049660499696291373046220599796826406188864944707980138983900069116938687569612782495245619626348926229186289185509704754167700121408557312422835793110510929277309039266144025089893428049012317446260321998319235460480252057564867320920687829136379941806978152343581198855588803909112502254029396594411143366046839952494189039945278860354431071251308264705185132669567620684486724568311383753008225960875188051366347807605554662793143137452864063023481576137944495086271395124085743635166302074096051504683088909365279514903958825403789541135252892264630519617917148359052549022042487551078584426174083128856395178029432925909498690360729691426472599187593451290543140632447392204987685042537748622402877437639602825488347775610229330670683235258364148788903435462823931843036277570834493088206865020305159087310255650291145058506362873938843791510299962859936411485787476474429650796497833040522739266287106249377119348114801461931024028833757846644675940211746937938309950416639354361207281882212050621468255142051263767315622043705443766101195600734434364492351518870948722878871813125860852108392580206914206854052234984388477487843130722022778530566696988146031702677209145526217643928314860819100297631373713474462656887301414110714432022071638681068229612197610026456341430872250172933738640222882188729867533025692352431199067828894134330098907786123569536627440377603908519258596673586341989267699809494163848658335746755285038018079390127291457572193047529972013897912534202360338687286901859839412650064433154037485689713654441324050013987658957961539278808964334244455747359867591289373167316093730915455112158874618225444355437392732828681620411532383227986544702836468164928115331428464581550140891291938972278914665868275598936140886681584358071147397239224262721096298943223245944324677012023366120526059301776969558402233259651518725475915929023444462272451285507452960228306724937120356008550913810454898335249763794736154818800900363213319323629193339796412301766841999454807251749495672340779191442164679061051236217440082848098173621010610048378240078790317225322969815860765269284916133927917864312566550833555780870772267959993732652631520917873978013185414538199137627428103829366356771097771478238438682792849025586746811688477720220176465981472293163930493085187800547554884127516240083017507396574025250897994391086910089218607911594608188966464955005681784878970166784082639608388310997698273976949853946933807811689622003166513507577126606901360401707556996630586198484373046254381497310801273396954568511556365405464843160745056851271973881103000629268077642675094444131987544781183129251744596709068227355368198677786953669348757102532752747346046903864241933155613640796257233485017381936015275548385594687135676074236814622910034050409061862062866231550618352334543842613542485605574144122612671441049170119809049102112396726602058384299574222980330929617690064094402799955897889379624630416524114964311466386215926291579532220423477194667998137963868277647160274872716127485834993943086673410363439504705164826183359694177167247359760092695846150762052289377510869471384285829959413903515192520346449133695209148387001812845352280667159815271343039368786761961677279362341710251779706775747569819520321582578331230860378385654663967133292685781684072888612732757360842598441980175642379809538196817535484548715113955617190255295601348822354092144258081084952445271653372007606638082276813700978309086032952669968405897279482229660358067008308627072851169097521531892731477809409888069391621014904054347951089599137462737817965898161086189753393839774876829741245769291305471956088590816957661866667157467728838527156263625479239780776839487475487391056077152904428153174041015635548580443165236895675347760748858715925938697835646122308014339500382729664295048892262443412687392072701527591686041544271193102286768578368999120739558279838850280324543358603306716478213688573074819265320484699146649594179277819356846657201216078858330882422889457380876594386614210025205690760460784647014688196263377107908668127506875533107066743286481151783620911294943325561546467367650010814495194027016457093754957221641786290086886584784573673023496166292858284248360025937640663635280955704096351578467071150970314311834201892003111333695452643585141292134067665696191709522198760476911984257974219308248190297899275639907492828173241384171306814696554807984780973009646611292028250984219971024840126317216981381563258571431208653926014963586359297871791893655320879796748313162211966606637245754651776313408643220894841251605631136662246555203661472757651178612830048645131211502703525077262836688785766927789334702879716918261501470430293446328259481942607647803752274391524139031044674647339384494766664554494986409060528373413769348843551299749016398868067569515722883420354695679199806100954188123168747225779903403415523264951390250572362796168821952015981803598695506376859455059242408963687122666509031678635727402789896800624885217580605837139576316443882609771194976066288929836448532349615719028189814845030057865567795320619591581616339633002358011706008440492833944765000044546810242822029996211875202910430858670382659745479032619629903438333814878982125684277192521992508300585327186294429039007420648464298260198834212764529575570874018822519725559979415826872383193063955195241941310241651056021575038485999227103263646420938432338551424567629615353173890368044395043203783356875152875406247986886769117008681133179999188088649958853407247704268211736725724618947818314058598238322401861987023455711613846535457766606401865468439296901187634593721435872800588451234877942034160392815894808308582454548744252821600171691914439379445961077234176816562261452660798024894570143175503217897832507567889054101158115074404029702305799434451181051135061343937074351457166420131425605099503116215928709093491113007414695805844525928663800448368245763366066160611911663111040575715612059463716213986865330879297156102023059201379076676998755891386188451173001260409149684849334584276160070328348629050864091002712399269455600968962522311537185944395124851648951679207184684740203873340553183621775994068572377014930624019709161743973356786669359673218977740242269931931981349921681443015396702254190381000463407506913060487439437699807245169855716895011916394593900583585006635142464087364202104714352435439018018880763058377040688667103129456957047693615996381266969214814573679355925152985919586248743856152146680256594113235400264600561168223723908596668759490097987086125362538568026323991155712000922233308686069384016961868799582297024300404509678214276850949780270769749004639044667782800621644913804636089952644023348508381065863792152658040715951843715369850690202584570859453091624987585867940889154272653733543378986762764225913355876087738645903663870315706046520739069561255101962425284738990883601851442445695183995621432585276278738118764272209310341320041031320048573220456053590432901846964149673541957528485289632711938907051130562700659594102079611811408496586797607722029337231851293381541346894607277438168974469121362662939829125143789535689593088810364899569154078181777931881747243333930640506332834850017007029836268155136953202928964939408713773344376111789381600624324143503089374857942821026304285579034876439732868533749084258010887214951373374557408641175712654195370575173001167637472055867591258334571878957716787610846523437517183800848843356302247718598598094045074364733890008349135984099976585314515365178073394432540314133422743348645144268534700076673695390672260802977098313946862839473601403236666759771864667914807307069172417697013662518744706537062263324580451231157801503974887484282535223019806191085619964369344992094408768067848134267142976431575877823193244660075141039746318670805297441977072727768100608593813068923590064378507593081062795460358727544600163187119042985515312691202127946386604531454540702424525379735595944399904061093499699229037074066254282068758859739702762312256897492769887984979688133109821592167258865817622591076770342397225942322121172701966031501335173291286771278380419374313075521553860946214278664204096015146011898779376743001472412547039133745963879986900622408065472515034448837710361135024312274284944075163049528694085062423517608686052066497553548821250593427151588335394526020530218099693857849079651065215586479401627927637873452410356843975992152755682542152783622472743707252854653828772281660892933557403706874486725126442449062923208646407727317769068252069558056660129977602291636017918981056766278411425965607617541376442006053468950625650346746954371072627496358423411558563113308301609394865163484963905508621549353814367908225852160492836239077730156801898218013996963952705028461419701481630525758349982136311669863410201039117437719470229561032004529146727674269320291367756801496512572356065944929639939722119486457519890090955971367603294508837040966357060472204966214962623140538223709224918221685115397763802441293130330823562744230081218513381193322802586294701992220557009253143613661299905309167181620788703373097544804234968619481640837332713597860367076785079027005923041234674643159147010777770698337892101042412592664008983273062210856330943928931149897846563473890325880045945046446076699321892506831885569282376323482469261631827907231360277789218191578808602186807582354114627078673326644201351678178805023363302828625368216814765231167286412669300070145253873333061917186948707757754047359389350020795740765261319289311457331238919745000475252899125055433049667861244686000762275031916097251843352769768040883938660196075708167116874653062454011841202596932426186805247766439257086029274567826821265276582010079283416074187671084848459129966619578810342696809906033702679051680455952588912425659054619824070243574574744739850243855269992569688551265206448557468352821453839459190377234592582191437735348767368743417801178972366323484358217204907680420194155397799052968920739634831847822536428366042783216963152294846904104995544307119317979468734033925487139362683854325264852970167086610822625605576057469919578080317389679886224061790178412822238254445821995053495936226876722791277849845767342917220890405953550985234454084486546752479093586974091499607160521958852767426014744511119516808834615672208936547188823933474582750592042503361461348853680756825924771756960423982926891395083376958706447265983139027838980602598739437888637442172479586769962607790262698003422596620335916738185302115865026962498295111629569264421680745901724878787184690218932262513126683947231508779922790674354653017702545255721400537482794044584876752263965818241535925447968372081107630821705939180359937984484674153430612155364653270301030023707180507423832430247000291780909653314390608211859606732623016842122193575718726544265889008146550037098319802414531827491088116556592757368979615952902107889986184237962319470535617367554939239497593013476838305934955854464368317966317624818425698735411329980213278076627096938738796624478762139803278351902524164863341259200096298599153130465217322696570361034641760529088692477827529188399893724578929395272670481590843072203248411387434934434218323903917583379883621355232025550821301536354327006052337022346846421334738198064022020711219084543797602870386431054526473982801595684963313106909788862523104603009217518726592393377596898274759270358484686413315846156346538295592848352825111625314960158520201198914202647096356287426880884435513388804788015506628500425548776700248520830559970922892638533270751760290385532456117268381230016834455598920379440582529850216028762497683417825039245089262008172425219925481323728167463930185817891844449957539383192507823041412867565214985162443124286050464634310280880352836507676695808159268132744551053331410141333485124514757754352617950571417768282892587981298812244873812235959138007520683116743784795571198693472340938519698407988227178496972072830755027849185708344756797741418649657181683544962367259914688611167308297334753867808982947326189463811322834767331172829593905185186761150286471452104885697459257493432506213421864000236082132153178884413437312448144106118377268803924855220288218570436444145185014542600167896677678235502148064041866531620922962423854941432358688222634606694300588302723005969150518151120926724975219691311015668657185139152181371207272565441071325411058369721245817702472651974519972862757853025561797929198620108971769219279116778503115242007383388408976481342070590374327666584175695421889125718291489946613667966237838489189957736663280863719261845596565321707025185965925633156127507300308463990045188860961324323941299351809347724024530120982926176131374775300770377294555764494079132976792334367187468974685452827458197714677641986608229950456572363273332123836820102418470952055437969500212050301095424970776008405499035220684004495843437038378986884635773305863183879319665921548380669049288446047022923331503587297604284461976037621629824014858258796680507044656386279669072613908110571193083083363288999949642243059252999801453908960319359836326869328801732053854646288173035328678594388802772837924177738082824890423067255710861579388688880647880708558605538351477329917130787801708483489675714094269958019296140643459336777964528435636850478667162890015168277261788960438085477504956192884192269201394783984361185090475207635223432353563443512339719020413063448042201575718850032787886490723023423330777343451545163911375932915407291025197575827721117733098009899977441048694240713526932818657078573913815597202382165355747444130117971474992430996181908654353049851817556944978444551569324670753802384584742603509492376466862400321380779625830865069450765825564811896889058198396101338433240588210817065520141202420218138201010089511100816635255692094344367847883724249670778764946762074196035257046873110360268514893689294566030826481039381406778549295799798484380526614820275545494126036801406474913349354947832296607372587056336548017423414981037293954930381893435554593341913627368195293457524154395676365366826298716608828392367827692879035896702014343925309917673692180346585973705436452599781569461120894054563409080159593944247618571833871676651419567445946518949612251748068437663556168543510874009140606360367288818463896301403963072301061003255226340064226487229048301537497098863801669821689419700449652546627336065997712446481321442163542990968675592493078023365758331899461950791819324140198258551338504066483871668965503366354301586014907529349284194745380449508248892345158790006338117505072376133288269376269021493152450745834599861597036704626105860850797485784662799951423205197134158256789316459899895641618261268550205946321352730412630157484683852625400549815938639730341677212628378476864997093571446259076974365043395211541598172746963928508529056316223601542829573280407287489935814211008377862751701421644661887465942156947152531986539989987355834793297503066048555424195028098849316969143869835464910859902968566234468338924647321930939873455004037414073036578528002478285963983711764698146775240475045187583815088900703661726544174619199083961521038870062622091759212097924759767336171914825538977739954762258094553688780141417908134265878512526398003449282461032728656680442785589340187029774807254905202805333606056902976938372257989632176395771442140345683729050781111230332308154864714400631804203225489074574700263401721996131947608193924671298418482466269648672192339764878792312223143670037032695035629309204265627477955741951625005606855411296011048956976921243217446090980276870887024631209263526224798874877625473592736622534521901380454616045353621749404172528578891807538996875593200290397795613558463018687663038990179950481894500954106938808743791543942257748200584284341788427014691845251385410498443676156871382022079951311547394026686971084490427173885795458059220145610075859847569747401913364389618375663665970931383145150919687117834891826054529544686241002769369329215638482829442835609582224023996005854275586199551660618939705478051000381601312807591439250488865998872200939050340637714127904131476684613957330251021561212455985120684694443991994846990809283609394612822509138875624156493583453153264399717785204450953075136068286883095326069088787926184538778834557602422750246616337886421781942624434631993559551171391221952324808753738893142704433124402090567494919881045280462103922790879331946840126532414104297538551119207545388512914707124074495585245182410098762133588403449138601632152700964617916183701736212593128834509203020939812102189907219039099187299105283101471841301638524007620982221896344872086966456028471057642245067844075524906242068651263193590007439731116474766119793219203962578213858434960607374176050683154184262578925964125747435500780215498522306385361679762671239789896622084659551088820408438472235662979050188578599446613344863021404411974232192375731474776098811341613758315918777427505024290325929785542380560319305340926426950901654919381037796979588302475014471344503349949497599730689353974132083834281491424085082289285318886156828523471958253001560394085856538379530327869201342997839739919942612297028040642837357984372218997759696251295372655429190027418683920734979995533254357506308552391370749911842986346086464301498454875200938558915672149080412500837806565339929958618770761521982784848095075907148966638333640395673180729502437605548581964156422314270526229429880619070404061350058710361273864055857486823096261141749241825800812748629707089619931303161320251453373385132525885097917097537203699206165434726466474035055446875838549921747126589446825317841986068471196468591248604695285398484611586237060081418439289354634991725647476136916193921635998205876138533575157064006173083164676611958045758667655597512576753372539811986709190064182048727696609563799313469617409688851868852017012657922328670497030896744032479363231058473335709034983956618567433192604738812137259061415910136810112878430850163015765008836674783197298390734055625829603515770058973129310085376748539064646435358741637749270624324908181452029830764274195755152865680298751709856638969455291854115512800595490176773027441389498451278977730153251574536733548277785804434396216396590662024566513934506613319652535914526853100573827234872387509046509392924620973587846065731711382307071274715798953374303458295244786517450993834054466124188536733489647208467126051214645476247267483366232257241959913735033430085830247775818243582328664329811200885206748915667499619184857740199077989417450181333476185989201812560178621516565970713132986056279347414070192695422315889517874051226523374812208574232322827631575352618666066670930617556396653157627389305253296023404904644359840485789086252618294883894034259437340640709795966185380303896907932750233897701492899392916398242550666329843171287814211904990020622660660403555972712895610938898052766869659258520197806191121927139862095859860597261218370790874934067645510583495748063894675771928624977664222823175622683728846921070618861238731482558424262979239944967831451336986879868867609102513790444576427063568995024527577153193583102591287445823186540627665433978319912342443400697667707845516243792875987500536160932406874523199646528643401954819305955023237876099853885375001498372465932532539305014805736572449145393247591642774872246729056306299796908427999243656697804040695582142032452376912131863326507187442546451758927229466597025711284880920205018851170882394319178976804363786999411514688986462135612995931673561966633265606001891119085594627244652643770521514460390838647512559253508195994195511632550543524510751668539993095771799919385566238353997081362989839276171403918408747465414075732475535749400402180251283731954965311899218074284729788477663798597365471932798283403414046546530929619979186670318646266679704642646257028079028616147008625446666074952157645888966704140354708312079766559359365246838982344510410885764568550962087465974044906391163388861671918520614296438765076635727419214938675456588818214500043807531911618668865300275024136697734769987530632017412544982066870714362145356179287211782948390077000294006647227067093305444044220621445101818471394780475429352745622512602884562750205721168498820722488911983123467652212585905347088974701887444326606682197430323863332369424710387007626866256238525199411012081791087698111101707263435643705038954018017647897579712833066610649922668662068163270587977879122007312652881074944664389627968152393157860095302864902349890160934369623813478825065047062438693716839125079548516582471765029727776988802596173857106543207789526801873066482525651337874680694243840842347644261320260287478463025213176802301504208507910924922759555068740281915300308853838526195749361591941686913949308108312571822936233351817642863967015354710517988349625696828747620268892971576987943637872407779293236635017331273053708237322575435824508010461427564024832210476439635822027316663795878595254921849724780741440690116763548318636004355332980311368865581586277720655370945906914163381895844141098438655566479970559279971573157304481127018948649226112125590153110857915860865254662016561737980437953061297960286249496287234776453607332774064608359656436408470881219190362446292672993381176618358414002134015610627636343934384044866434496818908666063270023093579443857962527624096657747694794078949829297194590096308014135601745540653264843993522010175847671813089012128874800949810953293382280823502628445947086553904395052294940074327634822252207069177483759506910388002915265781646777772688552082115896506746380706552030899072622857450641624830250191768747424659521418171908680105896832629099592364435446967741253833718933051795533553543763723652922635785390929702077078948641185502523801404485062192682243108591437691295543361411144773695535747069729293908123052519513569169281422463091266660034011607112874934923195358588087192584484074076423796158587031845035231624414325744807350293326778658528255259248138215874524667776139095706268072981011443358708229834719462281753588899405118185786361316366474626928491754007913673776275496113283261653813486638363431096207733389046834520752226397718004406865757595447769217776751031673633317545372756266600278490468477433737186053908815770915659680868842318685046810451272595611019325649466704017068718881225817225654495696009295760503182420758321780583625459023631111961347494567406601696201371599258342595747942448286450442623528797131584026764025510360257599064590002206305340142575201213864246929682990488454165881679074888992909899013552252630987527561466545738858968770414308616584314312693940574568064566073672885826895666994744751074621695113077497925036585130826716149242855623662355298901269330633144910848032692002914493985020740561405564954516417760609815600046484854100376980722586688580482613085371667370260020006306155968139931894347428961947759150389891082433279768320294538004291113886565537053364510580602316727593048615398752363458187744669214912032717616733162814282275406762264468815436548782980849776092579091778428299844021049952269060261294012183783255085152242070968252066212036214707747340298675727332026833196074950896945450353631065713488671038646358445396795196426101757168675241758669488978354907609019453508647997139159994864592828918467653927377076909411962760013846680655612172234893124698835891348228052705538408542559294548354997027395962403617634847740102982580336526292951393440262659557592171039745013975302249519639218351178516581492919127220294011608198569270074165770127946470894047531288140845970054849392833426767392842670701757785044453938941925861792786797343037636313714614811954456788811047127062642858174077941511656521662933241745784236867204250363927139902150324131690860291020173606625679978940169047976161792914163339794289980389783875398223709301015153204992957300823628633758266621800896996787464519922178393778265684099572369138977759193139824675993945001928859243105630233536100320766939807506218184001670452232171219761615141078794876201396072811176094729662011180688973804674441301970284385033503087964860761327903220334596471364399098919222654978629655416342592340029185352735281308983137304280825551210037732812438507138079304898075419465671378397970902450183982273951469887872508994130853491244841206133141360069349542579985667204644638221003000576033965637010934624306651705302775361597137637302862845957362034773470544647872894361638655736679747071866578148245579740151685475570617011469269394127507374012304453343583776082230557243220209561388782029300850138261046170972133010131809234536728601932905048571466581772711658423421756896982774699964977580190716127731629633233112448974944093360345132249161835169042216921451744731514871052678923582555544839773171755046344443838293637474117364848052643354792998386851224942355530130389826154734691246670030921216658266988733134789426069502385959623954601842338145702901885582356762321570678404564320747587816643411697554915010382192759192141871080108719842631268065275522006168908183578446976081155036903449294190280816015769559565035938788930061773508502664256704808621978165569507860847968624508448034929002775321887707194132306480804137506455029353818978291364078839745275549459623012658194138542033396050156616872232341323991431324355133910661806674526199502734793668206555281830262292924435101602470561284125526673136442185151228841785019059377803673341961076842598974796126721947373816325826600020206400135048726588323455996218123595924467559269040546348469775542110733258354870506372055062214171218262080713074902522934826300829019016140549443015749219392649435921566538704734281165366167250984607651920202514317738065119258077985806603177929326074512674557157233569657198314627048748112232122429508895062850019876012379268513259028947437518501550392532085491258798525495213526969225251828188625322961542975856726133461185091622722423730589408546391039762072489114566114174955957675349647775502616171773967715541054966245767528168418410311519331440295384912493026101994437459715337880404544568235925988151095466264257283331107030533610804628720803792046453695199220910019474654455189431071721244781584297896098333926028832230888428456440190596527400685886872214884677848897180158752029840709195728487339850498007561683534809261293254265961116800910537692244282010692053796954346280583502182645144471029301567101731666681633452390460291684283955370350793224400924452204799279106291361688374965461178102548985180266198655460998846947171853468579413983788181273972982970044523873079665028211897256039789573587091084411624444747173467159401539845594971160562471044271691768056931708292537687479537849191206202824588521256143553767107380397597870412304959987099930718994347251140987463080147961307465476229300509787190892470676682306226844673922718664352121575697480183759889492841325707211285266153484813654685149377089080702734749047173348695494134294697507008841922110618069539625268127791950046721813780831842260552704483052590701385064107793806171141127931699230893023777755310038094898240122631323279101480400996201843588289233054931963898129830967870800560969894876864607367790473356678049165801963693458905150821537293113853525975893999545791926526897351262998923668936982508861179786485044467314392096919173447008592321641000422834670372039300966949652335483246307668417854105775566512033594003721237047249253717162706689746895368332980297233294464211477360168397194902900188644623514771182430595328587944906265189111056012633294489862193321495971130126661680582267123410520540490066520027529373496607013483103736358407366521557845834375317557424607184049577120221735909119903165341811078234430178171064213588857391444098683934803621778684428085516405045418707874986076507349166146856840621368638186508534501023774768807491042423852824887404992447510994291375904156547008952656896016996413023980507872762943201275611011416519908033924597250063244345508075050459279758164759592114968585664858624697590688625707253230009719006036871441801186127521519447254147780089012505156727521223858984464071444063508397600973811795934090239719986920346652479760938723619239265014001543063549103976410653973804787131535145943493004231999413485991956203457361325805524261483747626909551396946050058886284085005951551368177416601849660528536424242907253900576015934509314835639668868316285061069946877712635376452622187362626929468454261243189594650002986496520183518282268807553199694544657507727197783364806710181052889688158114718143648400055588090468072142432034481150137518003548959930170749982900213219145249301793696329733481205733727283995512152877720913489310193795105530275436372643314656434077879317521415077550499445684441459468631551473236926155949173347589310664890624740757462359866292213812848270705663032855733602946873575455101810604682504865576927671858513139859675910134160798739711943278615703872814678810586057574397437508407498500759264652139780448929234354303140448155573683365271477644369721100780102773842162134440740177330222409609217164162835876001054257826407297746318382818960884504344663985839765413505942483747035192752767723130367071461160627887356277001942873889826023464949045046049596894825992331483703153877190004008128044125481051607934126502652746969042385022239880084253453901463189686497510110738244381045460165117332550245652976132970460373158084195196347670647891291074172436564244585711334973004011149900007565426170564373135481195966935485352867312025839674443293710076215504447431413900449466098396868903359876546356937354740915943578245698031962223068135229414958371007765971661241961819804203287620765571474897308315030193298396884453849719641581008110265334932650971604723185895532771485264173471925900366353381593172497501455611498818135856522116458292403008207930732740445405968016867713099926392285573274854565411475454624293989330845084717918042593748654031379828062615943303069313404098833079407712122954869959173980166863396096496629941509541957414635898710713340470616314890496381870323430616995634779977174578902943314471981899653560878015729693406324387598715445104201312926059292295437467990213213801467609167585738668274491082720266981090947029537708072384367368045567909583724038757357694116664542764012562527964000473023963757606018714726609776894015819446480891317519721599181129290068448436740282345570095074385982787442410874669989351743302318066024304564857707111026796321506700816226238288728705803747039248000921655684178366344300624033151378839318655565849770927761338856103273459300728225047895253024767088761095800048808924561594177559857474307549033260681468217212110874624499502570185727624524159546339364855962040415568519233756705310957974421569101606764120106197919835119795246037083699845941385389252173119397570828217923325770295328926772947717669389502718350958896910177523454451185075617275024634965026288696844913445441737522979599937730297303097138733625160921338007756505584589571078294336610666508718974687741232737501008402484709033788913459589508128098907957059465450064988290557519924850496563860795701105851323609754904958562006071967604855473820388704365975034077440732367977365946050534564651169911418179726913645152241750217431871344609236924647629288458616450486915637773162649704358490388151161800640561176768248723603068265628842317348056653053652834010494270753863929746844963282513966254975854954778435471572265734583155094344120189098474207041732480641561644501979926836864685163600011703600458272140339461082697600091409578700668711873422986390992664125822628838178663359962541000031712985555501896669760759813854434345754509220491305081737307702375968897923030994198878133865719235605552282477412155293734828177190087428035775574148680842028003148111142838200560425308337526811687834995777660774658578145414231666000080617260377283543322263656602289725006673963913290951753119197152441796824094594844960999316907113566347941192405384209933360840144781096516893122858372975487139311369640159893013898811664177539368775973224437742009216245542612738841796487888847393037904679505337055939254779699210062442219266697088459835729550329769197438818176284714203089208025029332520611061597378617378888796651367866979770038137594854183770903095549605866962356608155750658081002721623336279864599992994843624444177382124433471470446127056024102051211753961982507274715727726365242721489394789151695887899941015513452810144356546608539277046381348321751510336353789716639148455750485235337449392171393704773224171207964182629561596717266388767175129588087709493762958511781785856391826652400897689191139642895324968090296396335112896172158087994036564569434987002104710646032862393571448553873682910892198281528537026193347386322910690731514126760688168348898913784349864260502533829763454611189886997242957771612874317608920870276650286718727434690533860366056982914320402487446847055920571297912555638746191052417429263446364732330423484285050673050295003374502175090360539266111900874713915367501185349650285403642807290803763096472500941303373268385513017790032663434760882220515134374051037441861563124368654222322945498896690253596998030641447680030633301753975542000699163776900867812280639773436875663887039482144316057963723252778897277593322065334284237220680986356491275030059667736925566955488999872558247145725333990023033731041591352033485389694171554388192850973581052568199886365364688358232892669466829685252318315573225378153828323343222074251012529273327256635338844601164266276003102905531880421508485150680748933524736236400974385021917149644124979988561839434928118273670089969087807473318780043760796924877801610356653570408557262407933237323090692199698132257688882878764683641183253463310125729691308950673710783115815674437602898162685311893240318612979041759702347906858693362793790143158242428369200806119424761665069000183190615883234863305605074626219477140427967816091071788744605004787465390429623743763997793662902693502161156012564658697332885112324732147853004007312653620706848454468138503761314494836575302657838126570920769363069987727790443311349897982016172845746331387883438261890313476956225941911345995686968337407196491870572406860730500352202276447182528633161370042042432059176936078518445745506090765111283370351078909699131005889962484951625254564321952811922112049400624357125835808849071376224995876620273984362500357306113606203473852484305892489300104290730944321650076646478221612155524376446643661255923620826599799481069375269786192448282431920228819321529417917635021642527379987882647578120861782060652784259058206065510446073452573745680814185410510093304752427740784687965979381361618055165720137950969806725945499616794731718897331185654606634043203999510952704351217334361459028618596320944145561057638119883597145062273163523229384270715346979237585772107343295425337500813462781620736055376068775709835813797893443800639764186963759316758064070049715164116879138895853874167340890581102864663803907538392091339237165970981549450616212997422840847077012454511651604018720322932236905785580735023907010397361148069658662050068511710168986352684744798348846506865635024907368888889961995512702534322434899304107876727693841316543536242092019913628172652136983749719096986417271855364310060178829605282332212943555817854103300296792600866644855428725459534092487189210406609189928120259064629138484140477895784920323126986944046783484522643785686194921177890474339066741325077496629993054618224815481060186993256948485269243073444982802827657436968720763598922249118735914718991690362001778517963701453747489703652213426413462705623029665310810854011368520621961988007765073665767984802838749025539619478119887298496112685409875035759135518719051158782732798972927046827584607014729797097554573751382941475082703726212779314919467393405529855633144597741439929045856349694970755144695956863095376428552844566639257637210018172037909993228286211807403017428892274583822240190774613483361171394210904072733430935393313148352218977425628671258134749416112891866422669847423032901229605615562824154140233260739443263120012904227681953716267174361388399974933565174818821941425406276398176023094132013809984886213104298869719187977103227772230754336100566254542579826472451190668749488569101089658766751537280298561476361657775394083911945120287430080495658927133892703438883946983223596646452336469629037335161567104311926815445959163197819589893976502716132890986688629155854791495671733425045733790500336785172029470168946245637554274252817787116611985175631150974593133477805234104999632918722051188233749845728975549181064273853568282176195209271408595622973470010212681246941675795122067690218190587423081176652394005194529891470519541698983964921761504081147926655010117401130561915977535390200779035305973789059907876978965710926554132752764073577792263330093096797264561269847421668232326915531530000943141423164219737684546976652685646026847242674835027027498517456575290623833256578260684616131214158568309403437641512237985391137979057267686654779888013507364838834235946759824965594617736328826943612965015270309185335561807290753739396280267416482518149077605345985727593561626434243207493222300572787847360346312286703812148700812861022002462387738595052600754527984834579327661981095076095509130747569975140998095015305761781697201252938786730746836468617540107392284415027993838149592285206830861908048776007761691303093574116057579889924914616723830953505914756808240808835276861507071065714586271053596144339292501035782202796970517456870577515282138105900204382203227716587504156972865792341750751355774253726143695729489724592736297012439024193941793696454949594157384997563273522930264643323070523536598444837614206547800962282284389656402722982380272723169969003386101539767131821854949973294967843516323963226980574958685794358344022727158891459677071812773152560922135846163409290353475957894525906362861801260169994716587367448307646826283952357494574760945036167150443699350863298451681517054828786621527111771614056109152694698096877593437810699071262232379758393597334182761931941759092206789932123560219204157357418794429208952573799732937873182000538613515434156475675981521219615631143192882100327355848641955564635074035899961274873685294415471336477025161212011308856981483303102934132004036802716836809586594450787295714948871874814081669320347265443916983435756909122824938053056439016705200598616995672922321414021795577844440807681370458971467820843874587209132206639416242072993388927359590790329263120864436310838274452073759465624185014992936414951934825218273215345172673332509916089408617567052170917533687489742177508298865854976464017787597852848881580031577480466082555862484755511183112758184049447355742283454999437112712968619908438776421479337810337526344254114996553584864144003307407598124548711281975754159549271212772614930556518529005000822500037530596827898784491760708796715125227054692449834320427235937157224867916685226759686064445897067973452573582670659222857145034554764506082069065101591651844648695911414874592565737658348608810890411862721019006618241483723804412264939852380369259362195301960760978767407014107165537863476629426164542345624419159293528040289863780687059609738948524489078800283130422371999705527660627086359689588320208831181447198279189702098640720477947752951548611070900534162527557859216588109695548715401640705924100501894711673012924842487170207918494826299619870794235905717002545878500817206437414732257361021224409099031316565268591672789736098683517455922654285757661214149760770915773019739614794739979002965745543879773177608959809321206687710378242809892033104478050892957140278404907288323840827420351120101464248177756813725468118261711778323394774723364386675539314563443141215496782716308365583879658094604859536414281620588815433124149450957105924036333893974039038186899066922445897269847915471254388597236333277593594915130139614803813958108992053899085491805874129601307298565305938761364465715669157728064967598188331084307696286540997906608873334670449206540707416567495285097738070223008096181483521923580823032343178938195622263518399938440710140799070730326260844668505925032280818815633598056161068323924729360505885556037348865160504658183793056819228816739361937667830097836206419189774964856219223293302547023294669586811852781680672341080897378589910345668253429484218320988424354254990157042196980852468810953299953487740521191383024742253284091195131757221421807039645979404056436885213971486701556077953392055090996510094607124550533919712174581664537886415294340346436483553260297707250015128528082410777487777861783435728789036617167520106293963669388676973622734601017361247398492610044168077352116646262104056348227504557279548093642740857270055171447342753114654270719416407095970935399184408515384170629898543516348287197558608261368505195411858928480191346972115975573057741441694197007867716611477164319538513677817055551924087473613863808455726471188156389380861463922794681334548789029372296482430608657963318041798859695914046889335421975248216041960549602805088640306925822181954540615371449597019344583431522563230725333255241545947310353207915447330354322374911681386808916526182150827155567969407228980574231044379534874151671605544623257158712231570378850803143565139203200323299465101148668523289384820702998795509257228577879982002885748053128331943762728007910862161808365477027648374795106998813607876795001503057589499829196247366488935649125410085896959709126268467640626765909134816096252346501289467614570381841661428021135659443074930099727874938456546596963124885496194988732978396779657171632869114717694139546636466652965313101336431800095051104556746881803950400766931342724008109404334072010534613692979021902541207905315101084681845802537521276677735458848205246877828632980593944205587549662584354692912929132633613140948238504507986139595436893727109716841073448131410935190352223511522549446676687587985852925002156252953573692858946220720385083054838888061346843822332607109401629827922901603909765702978002735892536680109262721687544019413989871889008361686107171074638468616182531781560751683489078328842940948000529443873373519322807973271437287795476225237891587127722904110813120792496222953680913934425506513209738444797177524090666350442547168280713114432167826175542534230886732574516186912764587212984263727180879523963006032752755278747371736464925548050332370079493703014986910388037243077298956501878497174462167741225725358100602360733695608957569610455868767071405091910722419105179753645352842360893197435750211621936322539715576218107269209833237457688103129697741739981862618806296944483412553443722634039107141508871876827923622422501273165392648891292674390524158062797566913783471642786542134204818013559206458037066435582417451269877901684211801183272356076611333098486566705334766691538386973638859139672655450589477988662369057563000931572005485061417892512698262250112309975526975683938799399532051964933842727769188536075667466396330494280339754933750880413890950807038278176148666232223171346449864435148436092816794688113921470906283382903196179745610025763482067208396276465049207360056667221046134050167770913482140763913483606471404774455471674525212998872547108899785928891079614619433915498635485133582318025853265765421289471866314417793755249565572789747748357963937537325119195335237113616472400121893707327514678384756143057125097839783846486202582831121021703989831353088423829210361994630806143300933930753955792897598356108285555258723280866705775074171575081223124376515290706968749534083012841268530126422555795838028493621247618360773421359476352801604519462501969631953292190575449141419928708792825453675131833338537601779439614210122456783364713324395326641710000090856115701848643593258977002919977248698138745033196880996319781297974389558631439452278551271480103239340929574860877682526804997750988045089894662639451657544051090800033323038045146332285387571116649927123660053336918710327036563411649450280521932806805643250252366231432845987324728646768129777732119350393041167981487749550153681788979283660039458112707248878269480204182343816438144585243908465074997596294190271705716426762649265529792546592666792193236499725301327216930794962919095174250944991337076703658062957653896452552136345833324631057586572625962177336518194716531192337929281641339078505966160865855454265193252102242304753614337322901304783960653665009071908678265609372490526336393851891620785756157419102007176577090057508146451006964215048781363397706220990649276186466916907772287102605616796691692385356338232958555676225612778335242471995525915748784288694111782294014873178990243956611803669259635646359323087099916093611920285021732324547265157427376320253904264614689874013029562786647280172282191242030554183948362490721747747373205748996609986121358699257181650536023863977957212911099330362196860717575414769396765349630488386921477270564601422322427392195337798536735707614697977241507496438587326281977370502184599479279581869603356185829616154784768417693686681807120102987011777137347595126947316094698035013813540461260074722162711267495117809210096602150389411547564700196192730234807360076697024595594959349355321063655703031171480033590402666353421298540982844062821166436137408050855618838106621444908322669241030706410614134749025750134989127671928711023946924544499055341554404024810883987315286788947901310264905977040463504489057727214838558915823654921316460654374777146033730299660330394975877574372237948328733087286557873190508222187282630446296661745046122475530300861546387639591243863879415466080485274181549786258193388198544889086274260416149893909053335969298892868247395825935249804427857788625428227270775558142654986860096623247011060660961793745625518479673792177630998070382347165394052376537205143518117065941908129914128668128235662603274313509860442487131765640060638503173293266183893423472579736633562241074533686515638917736678806228804655344855896251947058105189685881380547462755214754780752664097648809152759897961089964722870284074680416569841379945109885579615229787859955367552782179184748192694669410910541729860199676599156720851994259631348163531819617963020615093794975389153918672686626186652619229348478049897929446736029686403724797200519753872825324221921398495103560158115910246490930741137691400238660826490961536036797724265688919650057461650003396866482193088938671051120195613115095136178192211225471294615107804995121269141270031959899332283889364283342411429788138451010117666920175500257473938749117636115730092740561465925739869539055853656137619911007018044372307289686366556585876670018877738394547820888152486350423278672797913005064243491254702308133628703349385163056489783416437893662273292875138795713184640698226050870296114015723328990485256272467460717755189905924989569934489118310684908515297465831106355935896125747395237228097939357491930241253404911808001978500364007891765778883704290783513281952405440826376511354912491605259122250221651842777451549916790680568725379360652222247889062902920451122617621447302824439911707838910300156499038139277074981244294522752735242513596279271013360729489138268498007803981334649294074080239709230331779766466529944677845414163543760494009380338115104131786722307639624125062051195493088715502653401750403509715945154646985331589118061593323007687046106925159674410359821566317776763480866298398266208421392473700812999294389810937842718665073445523827081521055956469562400857867273778861679972064316159701635658578910124242805281792404854612755221722398293959143525052413874362533589713281577056391044211136323517332136331291123049526881749971942340758178987946648508004882666640999568162336526903983969968531412183742614989587703633895987770450231824972816620884441482616114731619370088188388674411938010575382477757949534717710834703297051261149062116449953848954832351877056234681776037907994489076792588816995167323780404153518945836131968196667430572272148260209212704261579630122405075677122759626521214094448336751227547723511448020743831560783383367515335054549457836528521740330543068879755512564082794965711032960561306251571954551277787164571400821840632487420134596404766699949759285886808492071264394804748113931373341354292985142021004567223487400239461677880467973747312499721572868332263020993417981690994004818535497496770326467725966063714300907046792507091211637368247460819557773831902112187793938102533967963383414880147051287418678746006717211048886058643543544562189858905967522087122491427198094549783736558783569294533590294822279414236743892868625044018273793729293481276770259801751882638614883329602065827080045771462768451889909461734150533355669511841335820199538924454167889734745493618759300320069468343388063187339125219682655205269894738509581880613973768951520869835497493436058822083606973300816464695011519881341821828802422354670109553285678855197402638222549998034577707210403745957407990634978345698581750802223641463564822104902414148050567264454097555462760926510992472987236925184678163250992698105710878288374311991370867155381436314613350246796420545519899365315572441486186802131119028487674262702939035012906669675273360141403766718970476552445955473797517994905187474535849868412580917209213445613180112463720102804970662732620295961397252574949706977187136825251510604416101859939881144841426081398271068809628679668740254829915920885434602630720666015690929878838022686706363960551492379834969584509102952943302144243554914247542079692109988552322824637236945373033899793250817877574594005868103774366966570706991728749385384276766111533329279869597668856443916833546967839828161941076771592974984757663896211174324049466120720558685693950980530876890889527113797296370757896792633368960751086168164270714653234377426139586643800836324651035614023315112623478445637508030697085749768446671893795140422409711475673349345536453439901005388745874171520069435213627132070124267921721869903761455324883934165939150230347468450873705779080533981322988058903407824921966006297676792809415286049967864946458982162564983958309908613562054602503112094996095019822862360973174115722380364935586170093725825465615587285743181249897562232987855463885862556264755983873977525977223268625726060734911795159977016913469737552813248635391123967727665213451506332395342074001479466903772722824516513734172870050898953466337988210383837197142765979449059039048824094333370848869736702991126869996115625452996346878620327911382367886458206761086629914692984981253675402303685009140008278456490814121532718984311880479416493751806022598854607668254464232835345271886822917228882282889208803407975382812321582841952334620063225159375310185281631311014113718778163120633848435068834426166053001050517260817183099300762589907426836677033026597061772181923116858232439458258153835762324526756513553620662469630299335998366502250372928591069135612423549625620119001267887335355227431204468710975821855925615820618665457260773137140077815003898971316625772371255908504242767328284936096528623321231624297154865887632106087406327879821391520405936424755393338645302008361409113311957071492809985791163865202199880770767952205370052755197804201370367788754386436771781231618209413612856486752618163459633886077130408443857522901124146309878744370668573574310894847436571066830075253957731949203070515324495914782624408807370646423814426171691309719392685850937252861731792551139129637679236430728785075744343377325493074009755241887294347924750682275305703768928851390714592295415962143120364430855216408146806528834680014516734937464639285224536519877873745158433276737259216169313569037171347812426419776385450411896818453093529009385206949815169845119677412714980887302395410720985013683111587667036943096552462076833532118086281707879417716196183982053236244755422008605041215462936829226533609191564447722219730428113619778469468869120534368636283946710048107354016341976718552482308940563351462623034693709339806137295459505342288583554140433421207642607165597746982530740942055418348687883496345543836142514529004618134879309736288929033513776031136347291389672224952556914624181704932355496303929072261675411301779087391354260267766523664292648656472094905465396418292538650033310827667046751327966526488071498101640559484601457314980066086801372974452469596513801266434894820294578873784595349692601507388102175477486497663903056233577615714314398709168091384627858820430172201256909888862243223761058559741990055212288862932816505348243722041587668595381906604395831275621548285499687981897252391666337371295132447091976914077708514270909771860976404819525701418568955018558416844712001570993390946939393490357378592337079907311764377831104868195999683890987552866725176857537196332349422407112299736237782056634824644747970511488147556936872780479200078791971028559835317138345031617975506180041061535379781270327053795708423007147252498759749075987314251505290657898351489377356650872478938517842134228800993593550671261525977537055215479103237260640349278519775769803750263983455167014991326102294694292864878570914105610320756326288547259282202249432870332331745781931406042768284537992398405280030812374885564640965616964241265960542205204877361907238049973779976006714586826689200874056799834484492713113492059636880110385753877667225232865332242541675282690629663487374682111257163854973286752849023523069137274054245262727575994662182060797432449649566907147534309818257048119780050919694298817351614692336694719661057984577875262713712930813736921523584589246429443527836380974912196891211998193406087048110138084289219734572665563237786143754519801210588077853956596494507501015378879982291712338966113198186358997998170211001287482064223624820863705369076946082653883292514792813530863837500489291702577611987389477683029295115020681719663111918422357760686225861278712697334625504172261707314405709968811357326102984457764007118218343015557629937728927136002324485424439067165566912934399910490604140730511063731058740564033241407343816816693454326865342850030020495316112827455118947818407410258377987857413273032060642537958176424682160116765859503132915830440098902714230094308447350294517212885802208096344653632689251595586132465488621878111401669852483241981367676203540420967454960986957761610984640871986294967558111365191700406257807663406813174502082407918909791521961872546046832416706042494452511094976086227939493753543939842977843683552596559287131354535894784648077858731577697547864546331517021589346849624755713952992029196948735936569955172061307382150889156997357935919628711230771877714560916436955465998633854492915054147661073269586615300621203249786888021944433947141309549048710792769877833790779152023244276551614979867826898062659410985873289932928923416362926147899596402998975691224948262725713588193761103843961171941287489817711368560845795888506825553733471579397440501259054412850565175256837655757455048491325357195248275509692830578932145845688113059207660068632922515515887965588717075521475239814341458040986047912147239288727474884892351952066420633961940216623233251655874502304265022954482321647450521701976782664013480197265722835079259258268148980531198572776697804158038881295159657270692102362465923456293637416263317928500782641185637927789696984246900974033071297521569507500420600284420012552994905788262919963974858430517623407124780674803058379699573609100543485976925937571484407891344248429056638898955259724204863656912109285386044403074017515683315707197631158484997800352574619912617773598161557829817998750141414646155782146853231524422567267661207574669450384757513198284234417726889773629261733543766374827808333516729837786464166299937618948717020064419731523347712268284476833720326321959537882319009800004123202107144552679963826051481555911022993458283259794060932624501482720647627730748585630147632756245877567142313312618570111696093640607458471506587970728584267418757984243966567520426177623656613046013488838762206933919485292265020900512317429028420632497359055963897011264207461673205023578004641030504875876710641159707962089490153973635355695403918344815296702311269992182991135897308377060747256860567595418895060440065698333610623186479557318317768821612768737684864716080625158172677315706765937001007841493720295862683693252383968228616156158499884367919248047058010047592792187232605351179002551901144635002221399616178752208719798677396820622206071153577795538331369919458075636881549583235922841254869884295231075909835019377083696638198509920478840739017468248787363921930226212022559984764757570231225812039618724548122504663762340430062227505299937423821254804548909218055810508675559230841556307699944010148608053169774816960390261294596091791298535113243948486318855294150388340608198562584246250651597749220949780284071757566105392215357432704376774139493245634453072227806233530957464739896141856011571240917255520263245445603649088426152854138173577771575289795141182664407665823306667365978320722539429709326881017782991937490109246484015613876564777405790325238431991426536743090786766090076472663058855717209878619141499716716403630264297888700019804223886556992205137057455081651460343140391090300266609308431638885972010712381845027724546173183492922904106946882680202416053802067370345950796928605712111019144092969801071386167048284052889307919762165003316859621911138289159866121605836759673022010514585140184170562350328799068505488394888593189632595067761105861708333033666141198220605157015965256600403677956485022764063775177628473405729337329862559030366041203973586422886922377541611227416810698176021948600355663909166768398387964013809790195205667934699543288528903247601231506017608362104172343061606605935415508972139417920674754389032053724739920279622510219463321694763023080641010777550666884932415608705310933929597152444812053858776704080493901486122665944629369071569273292281057910328379920498426811933930568106465830706176099967376812257132609694825249280020687357613783317341968354604217428357959654604027356709242590995921678441172775961168856658367125650704701589261984145966228340023930898553294106844501014533865540746990268784806798476393943644923429770138834026127766359290442154981308262839837231877675290488761824538642222984985730246980726120720277238120754818108757725430444213474439613058237870492781021700634514470807005729060465062204507034783987038637362920100436027907027981920261201961875415364369045002040757982487958478745026115722984629817024781355340886349053008903765078318007185718185241847723640540591244444165112122430877330041567283353993577894604433967087789153181818130194263722328608528833624899686049899263339729972938810183546122223983288955590589843077949889818407285381146744741808997185976092474002687184721145741534348098303982587942897755413678206620227619879786742333259849654595749361533457463162973157582916836455155113382901887004277925624533707777957203286649019174823363789479550921764106138431853610774492320457602496451284401944774519053790263715959363650808507163569973323300833520498470968736064881179387461044644353983154112074655528317259907613062843518107373890805204042402969736242250522887591051987861692355860965078548122733305177562232843776372623922385631352970053533555716682885038663978312369275903051102368693941689118620214759098114857447182993692242606671331990211714258952391506678708726781965790089988261233551541091902370796772909566630728020568665863448048514838486726878285928434488481856093324672448483708924506499576401855540462282391989459639654616822129549084955875303174463146441743499180074884142956990131152825051453056219287714945759042803571247822864385735068573058805078996498926928299381141872638772710518396070267067754702869716038864961890444058231791346087475513868925206251874693625934408065507520940050743252162312908766581489456279503432066401676079747032610911250111710197252089733811107964660662477054327230741570575623800308153723823243596411084294548196252200013334797227455251322472136404396961919734964392648523835366632512768902324689018443835662170952844261573725478745815325805275642261882001681235562104875718479144814961711778703396277799881298034678051020006052383507597161652229367394540124888806677843877597742284378145685797057788893295670409969787646551179673629401689354333091441867517820949167804016042117389373438225120485501871460420580380929759968608993072857885465432637149497791719629595093942414280064295553559678407214293914142379926308294917925696575299449594775449482552463633430899610237216245087215840099783885207314649529370085412974841921949027860192437504329691970100465642657716889033870177219188209703513103357978486079612924098115948069334923095785912553065623583941536818467797854300898680076108705246115053081686307084190074362865225911841508477839824665350832331696728388915465697281219382974013032076661155160550950330781122013797995887744159136681201880280515243912655662988807959465371796353370649400456812372779315094478436035639867036258990851172659956540967756290621749713551180576425551489307045725858735767755289912587154644323742106262114763406904521315198030311330390660164252457646472922949069171259710758850237501686430079928291833299026834973285235893106250617322043088270692315161659501602434244261310901425499958357783709947484462028523723733091978472992857283233778097922126576613319458747872346661381436963069131568301306573784000395591053425526334575952417945879093222749546050717019289783225394299664976191373785286002586093789893197116327947775725584886871034811834762796013037162014737265941435818298775829381260237129166332388712281295896973384870689932333597677272217439149292796818093291239289869300962344028990834966540977413384559819837651507613569707245017886964054238678580029759321941787907841849238075403204790309685597826837283218928066083449960704229991594043050293479305076446844267261899944198776669523307854520462533981333846465335274450130360999636614937489522572608998187321801084071796962651334989460668109127730627430854228859398651001730861797897104454873742443333921808691222368505534095856755476775174635662064618907760579575496951088597560214597856675086802695922784714013723107831537177551446529881816428441566029544624199367063463419147052622428357741680769607008837978580264455420393085691885115807198503979372600973103646835510561089259598550682238189109323873260824875872033616846465538102317746055036803708023290976737423623574248309934191595762783263752757585110498006355223267003235845600491160944414372937712729740773698654736318016726942200755930001121048617142467049743364056021157573239333882805063893324806639667839658453760661681124593949369899671285312452198972830819309359305178922788519541079940237083729041482623417016611350666578860049885382751770330340268241830004843350920681469697172461325953267165419247201045964413351906267593761745141681774884037860186196738393266742122979820025299893017446340146571975709510090144413982674676070751636723872852360135053227992438102760713137608473010907150225107778834557762053713137759603760047423192178323788885979531501933445330249488787862006951135741478811846668553738363712448413124023040128642816765305615450972443143150469619396458080573213197565968811531002309159588891120384299301066887667079239567163864515779102899060564271033798650647601909786068541254264427072597119225529903003880129009923809730825685339232406821164748027111625877839364866344510249442188988289314628954729234348344739121860349829583815347832044094838078476743020877722614270995065949274089426483797331446130902722433600296995213720277450489654384150849272016558760213765671936481974078047500951049586403498907336807051815577783604432355865178715484143519512652451974611216489215594140767981894461596756343682259116694152045938172419357897534858230535915885524371916848264020073556800836291889225628129489497247512256690537498227305017197463135183234431187571208962197986841738727971353510830888142960828734816520232339191998263792089899349156561971034424092155962266088260237853270604891510493327528065461886814113605048861938492296584984681157088023796532599402241949362569149461074733995832868219109319344355664395851696216090223742680836746053851085843476720549303251425015774062796532379886763810920956472012182089890541112181943637233164329855418250139328748114093291262035783006633288238286879692189307722569154749532778369515345420408392967501726815398640849389930843464555864649990242752280062245057491920997481423007509737165095940079639457955614061274242321662775958616173728705733706957195663442060816483887175314409847492765756081510544709215103505965511268927830311241517696822834531426127841950422656857475323974027672888011023593350214838241266327182470828298555350907166575482805753232038429079516155753591492870293962818041166841263709237273157388662486939862534189682535536304734369915490328918078428958590586011755187858285995365081580592817226747331011685585680060557190688833012734055156622764788255608729511813459032303138268761441641341956788818591384129162087519824132808810725318627738466305119395577656220758094332616071433198971971164750923118082946234770703258207051805747845194859868490668136059390515596766721530750636512751574705916709174098150541496366633315461434067180194384351295262853283513158926107931197609042512120669957914926373639114644064161626713905367291944523516531658035359928489465895886804349887192556059280076905424108765772868928565905590865036404710417833537128559964072432372638388069271930014130133828455568079003618908338227201688488904256760265749052419110816980907064000730419976784787412801042322161095320165626558618517920751912418384804424803694396426960955214320355782928329039710788301187716813891795252881562725991866565602441871436301605799778237423209340807646086780080563659096650041371326658132249406677291955640277624645681319662966194520171897066611178628345767025786660085070943989342555693054694309709431276112482969262268580845898960646934163650412693225870182614611183306152203732627368193877495295231597709996561092112098851349815896792284404613938729889937013725412817973033853584820552042847388050365542159605767549759903930156799893551747839169433668600668943558992450407577337919564873603104876897358835756680332957820949972848660852395998060838840730660847219992398302587967312119140543380739478136412004211672278498249449712113277576242710373248941149392926770103742102706549013663691424864261980589149395180298871416551347805845556377227497799481310583981940545115086182189490259524139254708166425695525093068086372783522295366189435098542566172998888240122676199799166079660050859796680254816722312811353795663311751025072721102565286816151925823544743222017495652587637346880312056255377523123336064952183967869191252119542213921462577669725189431357605467276569797828431107525045296119412652481687269811483244226921408906760644351502895227416292130301079249910857681843500902255771380647675643579718016787075825157360213094074165061662911960509104249780670754771594147645151717374724790702301652342995448312220039954115174600467408151012328168964700401295534660172280585022521313874015349346656008885161393877456019193252010601034538681517418181562780707719456568489584911927080514286837018069033049888993400711061602344835302594105394932790216884171476807594574576500240183633223473592804910308441821950834766092320066978724754804174431803862421121395429166515314433921936457932747788499378329272838719477992085893584802221560993349839731972788389678045113068049514670508878333325317423414878230566305749000028092010097029595857090138614046620828526991205429916388088865674205196955455625075987642243173545102517014286080645920397398192672600054339601298854084051858607480407340111485921901357185770968065416540657909853118982436512797446656203973886361245836457041472130256624868286334895884745508342813145630288504509111891248469536143044432328143807545247768266656612745572093675671380763019140852919078073933770743181615386852247827813840704967809837655873132689258734188581247678885480946409504403021989082198606070752929472941798779661394266319756540217884084418321637629597585079319234399039466774732978159130462393589227292958470531613252550702624282376891588688819700517186526762207449778041275313196312557126126579669043008984358847675624842300331503439544739078740894061560879011822044839683765592659172905658009412709302023942790410620731822838648880243298071855037005328678626190106140922281857240661957344861267534143469317990415619143369410829121771478662177350335982574987441318788521412825499645748052493895211775891333013290960695988472777104090176716590386166992051419581852404725123685384135369684618413755624964046894925568795438783511100360237347802709258583728466339486737978257438719157024505241548360717984328431327321562215728571103431610493280668047240043928680692242337138872671454367787605005422517170511429333220026619751974327204816240380784189478395262923342309670583929976172715602016473043919283396695972040529892182941340826386693050882946088779409445998226860156109249260633257763860618359888037224049732245412454026613052510905194568556059933164715717870759041350525855038780549677507984994594218451429567710639835351607560277632354114154980716749056498521744244201190833926387905649144307820917465384510563979771111845336174598729178727485399692934737890304119309263860922132159776874201436107180886156018366705757153676774754280878097749248611934177214182165261972703877039698710879387498981326143119617945629923681274613757458175462020287902140403584565021683382649817040015284459309039851184779891048627537958895733617728928241845723326643644185162825788845148954700917189978400531487536996128859570207496225107992993431332830202312765656044412931252995601312014522806417852045356399537669695967114850100402583092729252640971526803675772300097669004414196295927029054816411260496942164283080202249664791914559149226666898367420568084431256853169351815091825438593954829426827209351358611508642891893844927518374565792879745190753513612257368241781950002001248156673753550799886271588015352245120597353171815284715657127887379196041714790594395297977167856821447673671889790678416009941695958015411146885797601999423902056392185355868706797840008172219998945251146731606919620103561915120572344222822255181522667442435024137322718942580618368509253605373918203032319529628711759658802898752002172506863229094182322040418043349987742313336958812978123095357186488077475285977973180907443175880087371051371055364196109987470477480904367349293941542215678452771952648727215489126846077882354779487778957972821760974625722932975291804265557452706126664827690948427444691283427743065854054575240744979368505315807494007262838347260180074677027549938420231696067369581669888933677146049188091862277762671299035497562234451563562877335148298164850382709407671447256010739222251441305393064410493906690038888515223427396528053199914349431030642902513610863367669225945500891559973172488741103588907150536394457239226578831286200826079637694684769637551092682052506605747922603282304503650586360347020945978463638189990433608811769778773717681533301371748942645939772182915943969106737218458392464905218915414605530756817056480127706953613732054400468074231662938390261729080178124344832424560737082636964202565329711046420442595633229714139727186752842716472371451255327473826290013837084079386523365729279027022386274476120601290313120201818551006016884319774900643049235299473838397435112343682587002154311500924866672274762285453592151052136214126551903467062400516969385228501935876590283254715000062910082673733318500739628750639173054678500778839568141343440876052247557133359963781127879724557854614360412608403544394815702075924917216871021102426649530436149878209058815741473157761328540891121442075025375304082557416074093061893272323842815088530180832675870323730081160675968012954404719443222508602299442557399695078551834262903430714991372192290439486560724406188309762473993511189462589884067393517089232157035271400299095796519539544219703899050114955630683503585302237207771563285793450135132911813198206902594537229689550620303483886711679778247342665305405899190557797738784654715508087521365373331276528642676774437156181304945373221095075815535721177473537224053435714214028867412842135832256702330933897577286931003309044660714567616496285714872567307089951138222016074283383704502908286459025927974366044501136215711037506928280628362490136983363188192632653987556762730759041977764649821851929096366691709538307621185366643725120299235005153523468432796037712538232549521348084491693873025896805493637526321738334758977290479848723100394709728955692535461927984977087094310057821125159542640667792124647710931254276777051774243055746268936952992291284909693671803594399746317252443542496325067262791704384251726854547237992391254191772203363915497164075457712667002032671798774587306297367433437257795149935214282257909543048531889616105006833246985041612736381120952182764119516203057571987595712347144369414130671498606125999615718678070160620777379096165176089176216071485885407126689787638533637413829689021537553812925875758492149594484068548210100884162188863344607033330646366906690599112368038970338185380697995614199944234952353940953073409427415836265229139563382148317712879317134944404681453904898113149091106970112059116318189335968698675602009166766805839925785526159647953815648221428201231175824298349227035801118835589096842726223165121140960531237993494242442123812201157927147196012627539809976718939437348167064342552122052134245873568647987950877565326551933042671150694728218459443758889484301133559159059838650049094978902259920168875055322598507468230159137794012125213963408154495357381684586201892967645036375528074559536401384524898486378093338953622275451093110854012844906369873547989203055643338502284530671368748499347962445516327853617420864011969816628552511792663189130331030321691888186193325995276098585864094773185073447600620196668664415918633477238532601964613543911718497254446751045645682462255471394184038924220693534712001052599324040330975241544143901627246633325300769793067365590310853331521572812444228343257731566986589795489834548341525817879282763464614375819447962491339451516391072232520578681410654303560310850375234694291131092496343787804689347447646933555242322150650238171001948783173926779642616650241354845975055739368906580439100983688096663988854332940866695024385403888843915624522362277810700894924353719910006916994099567774816956306665946079625698674465355602721929066386375723127008766707192491291259067732779370557930376547169411193588895562081892118999870685591684508608190135037394893373822905865790308524786543746406414868283185017720203505418349495651364125833879213979555411510792748681694670440942711649528844996543819928959161100939251611098380279829240740481950569370161579968685629582379574803267634386177870482757066341130559134483842916920553591757433060046873408527786936844772914332618297277485485322505548516195572205887184936876672243776653588008802897301499197536619003786915131317109174631704736883074895813488160248590037023611938784489757526698244661729605630666037767260937171921717256797402337911889355836532339504287256560073990812182381764183749265804747897335976608749079549371315295735079422999588245768986297045052052433667739639271281214680872138400564608313292122455768640424143164850050741116117684403206112180569599810044387851578883145821401444144911438474870086249222026391580554000182402556019412112140616520497322895149801869358923447239027412030458653113795216048318647409864208123386183846876900767102928761470684097312510289534180457121683587427112620581017173032949262187644027286469649186427227945023047344180517528826495926913902384400897583480632878841559161920711105414888174034951859143226096319799300026674904496681955745343955474644666894465411477783503948666464040475573059514219292173182513415478806622891191509263225584979694103285624487678675344079670559736262937543962972070751317873091435087102151935164823187066200729032066980942044146692390908736930962811251806128979811047479756200996941416992405138660180908337404415181020088757126894681650196518003316332866974442852156631476947952579812305755830489888780022395940549552876465230092589300536563926352531590509516818004643438683880842318049633689980939313631305419997249375055721328294715299871265418020181308096420222454635937324669005286024828573307144764864466238980470478435999472129343502045635608912608827405126540501908783522677800774017530825417993262793065598118276407542779069273418968432110954941812233685369952725281796250964326746892068762452564847874763586077519034508350570233827221388757085691127374869158432437025374797494878187073438468566182519335490893391284605970321327095763624446624282224357787111030612136418847405990885751993936147877899814766821641360219147939968430405097825697092008243460736117880164631359914465497854391207499620592695323342839118119502934897994224838413754957870470074327118501328350493088622921861784588026976419264371948273629312834880757649545137010684841567950912350401510719682966435448168664236928860931566218853844950399635907123799531992294264886747936355139923491029721526877965227538996633079611764461829993598208170112172846482800392768308397673499058506336145801766722652861888025474626728663249061794673934006007364791672312888176021670517506806866688819109676945024274902232941369625095891661540369464593173425811354498415524464606807887765642499989393321714671507603817731570598934469572714179278990765907995028102963966533390474752687999401716150929316490668402213001703024605244859699893563169499011330652932550841534416445276996960700638353000853817328955785197024916659548763978562696487274186272077048615308664165192311061519863740881688044947397710278199219571722428678568068312149243506566151715212666908177911156723230252224987291099821773412049133573319211701124323799063033909696219404138489515664112857613053961758332967416314077040667414727650947699069399623249056507827059925747886865252389528225876728951124968515235606040196840153320725441201623006383121680999951617752727369259318476847560059968589894573880782940118301192639987629178239921024404988753261878798825148092684844409247235682155217284030398455086148266937000212806754180568873590082821292255097967123796481730818206059014170655771444777006049170409574158896876413849631656030482358687159191927189947515402041950538391335534621608323097866860826374620594579659120141634126883436377144415031561317660914334812387542473817482734752110102584631437065931999736491758548429980134980362549781236075542772483649732354496698013039468426389206723881312678936184235678816908684146427940444205425274145510480116514878858025083297489293051160950307464583935485223137442290722607016781549966713975522596223025095551436843587402404768768278724176257002961670655094678336731694631361578257086905091098612373057147627191926601391195551671032828446019205644164724670644961693043900897151104085231974139906050329552764184477852267899880169943545785405395313695329780432451780440804582156344758234331858449474324275910868885089769337348095197904597972009622933379990019995149068218486015984635899872634929708243376695934100394160878401539088171872566576102609219804197884292861932897909305454115905582826214072908876831183130572297667348097263177323510000597814630503163572489175754135971053509931315053560068315989149705792930209563635242435153948099599318634126234510774925306441377830866228921037122743112796467130698278322238385137930776896605910671064551159003144068577186935550609838863525450954950623698433789549389828066358737102408669462160110591959441489628374920397094290706190740630682680360181809539998708458649617983469278743774696012945952918723117172730648935342590913886246326915981379051445392027829333198032831277256417277177245103365172867046529601043385152370087625730998918852157053691023912938494062641198124277569683000783086282104751211121206585989476265497460087106674179860338240591475320654028538387204100444097925020702444479388506682204729262951584075185930037900292700540149949305360698458107894375197750566949101089043458177277306455617175048885376832792214904743531462356918141376307339209342608604322858786771509173124943844728316407635333564270261809954443165744978556987240023441732174781563719388289153841773690188505345625610865678270276449147622976355900647154733080381263796237406074568882187990413142168433532205957945976663760416321721247046738217950270995682897203866490274965659006321590130670639550851039767195636986751044372219068708561537583116971785182648405646482997854339394192232781671867455710395547541534645127197058574829320267907110970988729000445621560502220019548030389273963514647782391368774743185000513505196149759706368839119234622373043230222453037839309879966675108224761903780683802573804722555161467632132281125439701465351648622815070250591148066485917059197750911069768516488795647605204961084840904131499288386996741522245980337016361671095789875473086615682035629705793006351591238806429976272495074797138730162732478681652176570558294814339983334791946632751499953054143945330063852482746856463493677241190085391423394534064337280973424643413397648323349669253081132952291916996610452561227028838790652643067111452422698679609231656156592667765900551864261514559540710855866438882952311711773513987822634970091965368918773217864184378625623107740512445711016059584483902281629703379984375889630601707893902922667735009904257575672767941093608340698167443256174505615561584505198267143665001320961459107682822893982066754925230585373778995547186171568406279270592115204003375653428335084579254032902634177099907198387325700238697856661173574880937185786599587027683099895681161357486341878021305957586428570369458796657233566409927535134608684085537554204338199419865533285391603526418695433884592490135097951340450416756286541269402252820783627207856507441197794126120417286562932034638792027734070532839378064295555291321541119090481029582720265746246076189046933693544780987752349414662636973833729467289203421291555555029149913280165524622971339997306376616246679994066317529781126677388919944396622946761042962629231056560560706814278689914478441000499196607816799386653846119392181395176086002632479867566155110250797336845934931400596503441091805361702498790702243831782928956108896774182376142807913898923530497562418733016898603195420373300381869885354880005749236008398106532354760496155548481918753520755596023020205358775344934990825245861868153031572243338550347709464839180589746129209357183549495054793827542303195969120277712651503059129002739486577260198880373365566953430344530040720539445807129984140211218432839932576828639299032724615105644086492979938581232153189187687971081487620906061190510938445942689777339122405847449530939366358343494921977029459474491930071521530577483688588582905276272237574797897448144471661223771715101394093227454256114856641154073114480393492788411846829692986566905529141398662112863484431278958838973265276176618452949786467662569091175237341749886746456008369663868668494057407822394384791984168540948457052379221847913720881431224549824776064851016875206470047150659702386396458068205359320645303834658039605329385997487650273615385967825180866429808787073281639208028929267245243953980768948508116784034777406705580099768743156271311505972787345829547054871232091626199992936063781233421658739498688894307878870846681535330081098040710412014664307072776089596014492191497342839026733415766944025661052511699286977057982011095203949141713728939529681121287422136920839706369905745151615976134753359252033602560170242094380200124478905605833603927204916898071619398111152325429342668339392603640144494251147446079833365960983509945896258993779613801234200396895521865377031023390713909209874684037782518372339673916101114193929577743694474587876574838757258433699897671673062332453822596109977360202989778475715799651610994112735198621753947737265536228584571608122240981993949852345980692991557207732263870858003190857832997668798436042351390992574190392353521073704528927125056511042231381715977892561023138122489976823273981028692640661069445905264485293238355983071848394860684323629522945006953140414572470367149861731996450478936484486272073200204583679363851246489495875414453237599093375005416902973799535878571632947921079142425325564281275491243486438683666782591703672785183260271012020940117717064650762492716289392468329005032544925873855046686548601895315550500664364790176415937230731748376716254155270126399819268816987756441744928541845972980480064145286454795455273980591018892741904240538105901706291758383033358130735282184132355418207465757999706890887395278506946625348351539642299360073038536360298977629787127762202581296962838096900844770611854823231909411815108967940804472901888987800561696179556199606459954382713597828380535306261068089442748597323229988344643140934383270165590715503571756758212048997973157550823251681581987139771398518373975485331836006702209606643359140625109339432043193325600936523311164715717843411029827324688758174335981672788810712214057572155421157733762494227271475418863165822907283625384840789795353343000287610675705890375287760911727683199497062328689953538136813601661939366889164956461455389279923614881207772830188622542748416844223679308634024068817626046023027040047338898064460005042528065905135756170787153501088278547351736354728273624541543369065584747244385439247338497448220672333729676793464276176083841618803391817949468666773845196650742337885089037071346344515148505931183828647257535629487783959402792501134564551083511203706371036086147325851450114662346712137881932771195410405945452266527265740395648594584843200312499018838416866338995597385199411796263384936172050455243780658001386767009116867156038159720411210006149378883981142942963991063831781623578825734852014698095903862450021313231589108927001602483212741375198279200470757962509253096826070193074311895914796060096971371607208486633101373342709930511836662626579350892000393218782858312713275453010764769481556895552757513671575303602556968997012403058593637500664163320394813314351932006452503808844636685507100296722451498333994109628839049782080383133339031553816400878669111170758897037636245490245568449188770507344199207319709681617204683335394954883715645637623914648961283119232205938595124387558392710452441205353022158599303891404698414130760949949992446102872550454804332596074396361521608327474177598874516396786456898293813729163311788331663081921888908071009147048425484368733327894791435621887569945722530310494076765224491337359478439358230909988360229954079106390514587036926624982743152856067131264059131730551834332252603063219736133454410999716800850105057668070074484550382606779780708507565023436475285240514095698008857365851670674317113386989486949068105990935654378445240440282443920597903148064135413647131002290080961369862571065313714321312561380171807431701186152119818434718334201611121221416732754712646827476704464339284971726124036086112282756128367018040188391857673668267211898317997019148516896055730467848716623224683914556496963938748960441714473258013672113702966444058749945310621057861061460460753410640639940307124186497314618659573265755799410177086723834714392041324804566123101085935502839449096592848345527160330899107954609739457385988927084526180130329866223279829257111352053952635504491352730221376907345894979146693247992552072414249669707591706386795091314490812329639049835681828655027222586847638474111279820307288191552869289115924476956692565410935219586883533664501517908219068927605844005763283962931821875716549024233303440921651127962195274501857938871478774579219521516967721414683968721195618943526402872624777696372144612211284600825424932427615424558657750904804291767761455727890147303897007280162108709226283693150366552547552557515851415497547593930072189686877297062271589378077308255119349309396872862892554734239850049667209862680068023232943483114463413731980676622820816944167331764453172332464221982810635729182358901135817859814010619721402514326855842205549072522684955208277778230152303190095558002619306178051529354529789245841407030671140706303307287611867896885697215646506649152622740939910272131238141893290317122684371376319631171476066140683391085499246575293282469120864161072629591016056223196079088732817653022312642027002977456968482508194122997526229126770273087667484857984594780952206024919031347248221541482706206557919160437387927158911087398458738247353190333663471422168891007541072938791425891407357726545219962121699880413493729974172060035654513767132990136193214521229756790708511794650031810581647034733307179205098503351124335342005049108400104578190304029212959054173848105476986712276288447849178389077401704506722156759290462973885222242355337159927882543433082299059251274539801921699680468446150876914082564291001072918472532624060158849226660234001133586270201330465887743367359048476645494638746175338258667042690632645303575099273346692576417731501396974579502186678815258543742425257640370421855891132308486897774403322983168219836428843272278498869617802617058114758783353366263631343379110424024215890637992465025791429331505195830873997008917047967085195214776779947775167890567266774303271425572838828426001624430204005223012204313207886867263423434708621115675646953844365129461742457543095191363316017443789377792815077781505504057865191418935475600141791960633010533077149743809344211808369899587566528144099348629599560445692552341612098942708519271403759261044625709961246439645463112071571429490196938893004633656261947069541861393645626538523790602393273666266450243033936784060754896694422827827531605335581853386764122376706225286377332257376113193118654423662916245777778055752354103362478244508742955282388673340337414062018293568155722516904525259889028593380074369689038133899329620061669843464506431300886826494499815800731435768516983422831151126187819140724337471054856723215813625211889631143682661975607080883348593861342364992066106071813899838499828730427389448500157379480646106325998646713059081498027269699280269799063867640968567185446270136565821612261557566531168588023504479379043936195058016449151641289343057535040222471447418661608688485659198072537669936747250168975171003616774351351559191759712515662056581626982433971077323158697875637522721044545103637036438277401884599721016505862685849851502133405547407289087431376887508283225376764546051908196494082328705568219673034271586755951130782063307391392059839272682540054805202947512164215791311355665259121145082547183537407212173804922133687750926919780477734274714173725830667485625174440637657152302858255690571818150585790993632761691220068374389080324198250617453055959042697163081785926643395426965900919913804471438790261658579816970367207978825387044228188078070065119006086062887715547187398814012414839177620778970661751505521247428044808425421578996122301511004441143666622133224628141535557700797662662127603478035242119826946640165692745712342371615524847427978359729640924404386602371953742724685313241805568582360363817719852009597080446429310632840966391679354649903455203929551465256128257665101632510779391632191367819600348141877634251068183748037016154502454587209454492770715095041026774557524299216666401820121667663313841534717095508727306536270994152190244027302009693390557825664373965476747717330357412753299278754542365870662577389443469690602091986315066927585212557351824792061788112688892129081760867682390737707240278052511051982377888851417425504861469556512162624018330168619566932931444833977753240436664387060462248921466338294228085927626049502387111540980432906999244980139092456815713025386385236693177317671653459708095667147045603383062342365647421041591173094195922729801745577069861798427386182596823449720896897360224973125018771714154341713468770663916135817501682517447981557808402289863510170998308429393663995850032161157516055113291727412049603744161656786232980971109405797945581200728784678929073704675478076209095580990304981474210279954142046828005449382851941720420624864946743294733021471060562052381225387247985096967593975362680345488797748075978109396791499934319458595614258656029970378194257577692269525593785829149814888842309691660518213704065012147508799746159965241344660463005124678122083699945994120306719806941043832092400731638072825613529369283953225651561945244335302906414334034433461724015635236110968542268371594342869562826948670932135129850632459591675218695223793582416490668434426821597367223783518659719487795252579788660877410553107902403340893057422384427577855652372755428636958907476327432288370504186871016491865612799781160077912837837797381888817330907530521768169197233901165232858129544264538055422773749023674757392001216058863446109742664188326882816383005088221846722127829357479918317138160102337593941553188165067601760070061431129487782790756836092791675063860113649446920090812599591828034164916583345030269507249636268243047761929952276618955649143435179638437843369991460429907088614396330855994916094237413357385534321043064233006254937579228648583125564528520250594397222001812849842460604847526703270948921620922627443729099008866127935676733147445556594302109421825896623955458266891308964541508622681190097149377045102938677172068674828198016043667412016734523230721742283035372160869262351179434791004392920721209189842785042788376769039615565867352319462012264218423521850672711563429831190644679419646378886887004732375687774403047528057605646763965649215758680785504868295710896485651256798283606024151146878869028490373953304867831014014549019068183081501751460689749183023529543931042373274034196473495679979134945676766665182307486569447239230212872603842257760239393365251368330183082222442943854763065173004767240021550796457597355686710526553363066010159341050024344579941600700503055055040710177462530790819348839042674483332689607427124592077639274127011437309411176629902360560515575492952695846217665046681301445224876268287013341592199939615439297635322975276683119556514324877148148476397064780880184092398712862381698928020065761601959268771692720168055795681455913692596215106844095851419707770039206286651849348995553742335616795679466327803994220724419496079253970151539102275982449011787268391700845278687227603711388178931577452304617093878377486388085688544843314265675389776948004519482664689891336585794722945875685713787213292350043939040545727777353203487031754077958409960532642317514121897983935444861248890545532260375736108626037001374091665176812405136703870602318831976224293183571622607087110770581946266009605740449890976038346657594594317185766037425655659671753576365378056637942876504991179686178348661169331722223564276033641245861249425219527225871775661540430978410062068309995176112163824427999278299462241103495622262829829484413988553194242306909332578362252609179077293115111664494177290603903556900103283737785556578716460250396038978871922522421674526204408884080061034411731089782791375817331856053546591994326328325108917985516309793045284089006986221471300599751696615909666084152428781970613000794349425300334505010375855812452149831014585726476743527240816696892153084271715565999762085068107270402088055580100787483068151536665650596008218892032932659499592726458362887087993558181347234963234947536392446239943201689909694808422826080709687293032695491828211321611071000292983006716077100332853039156290888281272955336285915144281585196778271660001558104614329327047253396250070897781754736104848077687260135740745390248506806289867534956818678109737062419183833754875905772433565146668232683306385003776205833383482826820395479106773674075920856407724077283244085070319728057937290782379378163481437244183443100583758584227523047760981824443731073893298769203430464602749223703725010002241686612254747331135636434661204747888239209402540366276493665792548205988699201256333704154284358848411525573009930766979337332586251657096442599082546118169459983636562834362658871962731049273287389171649883895279294341430681535076605155079033906396997745123395951341260134301442749097374697490026182801409336041986724915559106379412109182373830566035402055046274031388562131721562502061822458342873132942461684487933054756469451831451579601134252646334021994531438092647587378464938022286520212147661610959096389878854525365232337739927968031800211226990571601812619961162171892279126334371986033363681966699068690725876215196641696366968555323236294293546392542324956001043105205527380052266916873429936944254179793696836216090466003728872556685390805399414761013766330627665140282931211052406933819518737251993440077857350095112470354258138565022849270391333495245905928070186200463559567479220576300146586527248821287219731490559750009104554885823802867087314048831619156702254503147591373467820867350657320216096584696825512124898958070125007555844271575564805253504570914081969474989711376210769888919857077813004185589713636498197530106039509595235880698102897813176651081327536832383210176547155545840961847822467765428670582356885402640373100502673569070157432438232175574535637643238657367745322047831648118353835507812787651054111353351021871902301427795282998464238053895059975902125486771703262633983632337485000778729621685414632651577440092639200805937511703139228553627447462908092817517899662888761414264241494672946396153937029648646150943462522099281837983794454864079136133886950619302760985649332557905102187989705777221290139003923900613592860345334482277112349204212983156380368729311729254269688156527312509319417455473233475961166184462818514700713128894010167468704701480514245257644932017970428428218147430483534528897039685373318680546265914418722518616574826917684864231955342918228215714515990816756198527206105297985618594926750737377548166974443778225193944934058019723188371090758060923831971279163551531551933180486344326844838644668650404465253745984182562729567122666585618955389882467299991164593209887334333784454772808928711560239004027812734894565513918247955162155380484772903411795006049857316275319458176940208056545826387585139210619237526253256056417856754411154085136583321610310584772762379058612286416644443512060378214475831899554241164285920445042940416246781242425773038984883837334393594012675832590522261823962932375405012759021224734673710714986371952109102870142227953189582175719413136960579710646713118685982339085581313790587266581409863650929681796527768322567631374366767326258998772058113957849367173617697618854836177584032029606395719037387612472815271364812873240094198366641908539932150145122964014121247603421846208311924880933064964463146596746690955718629682884305795923375055563155885326736735834352272383534013536803877946170951797277706055829254457979615542804898851057996223765915214714075448840832289446305412608282993355574707092543917373956280487935925075366675575009702007509912965158892196133505309459858727378633419269297858977362785649544569921124486127397852643251396470867666252136797071189716035948808850432136028565986253141359639139218170334675781379102957089416344836685297248889985246195697956112908923970912011354386955526680771565664039158064060520738666433032094107455530274386911238070540054291010765780990650632001115259003910280197030145842360950937954379056515990575191997963637593573472261830183274934861223838741950533409121202924429512575817190027994428588558373375216819826158565291492899928716719298892111433967428778805837522229283832345192396288885910836441155851208940836952735026566531568842412961575617776494208672761961760708313445694479061075192141620777482833909135238027644124445492508937998997752381912837164138144006326385285559524616504368712610740153869798547160283757964441554022704645770769010428698631702925152165358075297805953148330827620101507013977507785232871929717209089557962402065513197389730127639039720140076038352203977679284328229475947654449779512803914687509619002524979142200809312593429088537070863491020306548419708569095107212088609894875840882037845360611900397132107589065539874855703668376036631329316511416123145689274368311334880429486600452199971938506664157125348931590447207967266531213774332188924320815271533022264855050173414823650545533985957491651298741959043329370465109208787668991000353112990378218590429781298738087293414905020972456597107017505087753235195425904701614335011491246493954525247074437628982713313412350336619906576642968679187783636840610096685655951442210712083220025820095017948776058138400785213585327647627655081640187792717751794353354033165848480533199558080140995104932748883877570659204831816957230581857172300108742135329270023653028935212348059787722654304356432702225750975954716734848753592034833525860576785961347997021586530954035315451119834814714326460616824253925237172164048541986114536884886198384427194041230796608608042082262556083444486290634675698503003355005138392616607031433678608129556652804377943277322473455547532882770674161927352013698470491134224421171881511093389330155631772152283710376455371020526972799438143359641619144235641329173388179787842937062112845415188651062382823272244026265356251579178047589615139430193215806255016141189147626596898623547158230241047503556189146284142678267958666255217548345210968366733096452793934259965311324546016257174338761535968554757808558244946502284747156397238493490323938008880493306177006113043714762038203452998209635224567416273438653396513708481708450577318606665534773340030474377948120875498027115853629054861477871451796635659074837159765187223322191606223787820079867637037136427255147568084486261434511823589814679208801899106108145644960120337276486609540338416625479627170637020034031296264328779365181875897050045070703759214681132854898776145218744214949781492829381918791288347516429196354248139533080317244558666568938136858334572456233249470964917448517014450445222333291726063980841547870968469364756733367624866189904173255091470218179762677862291432794364249172235776906626591435327997489689399630709753764237857000057371591599929163697920792194609777856987493289329536027267303780562833481918552026623107406623692849889671016595063688796236380518599843979000003139377505599969742697438064421431128098349298262993465229227376088745593703832802682556597796417947509189331964686398910946854096748583516786172530272722409506462384444415941940612102740230100015701753058483636038496946823366196837916219119636396168105222825763179775784629018877372884631282202793985961298360058295419665910975383674568722459663146975777270375572624922916898075610059053091472670498362494048318513420178796379092814511996769902562454951904791422529350017044553146498783029631256963944399623761486834972446882937649999970470258535088826422179792153232365514470825234841635474156361460527101117110639828101423683935920884829348889863118446746167910936752995158021139290153862664777572892822654155046453709649326041853155996508449072322995322265489341616798611546648848595891843099411496162425998290938692274033173525589637597043778750709473473772005221097132728436899818095069096610074516599457056727431187552657092406902202415415575597919118444710552894509666510468203383201001072397272914592933929069944247798985564115701680333747496241468200228347489192696520397953653738408604146570664218204400963198157042071984675238966159820414499162136342983001461765372131652341927045183060452642617328153090935659461228178726142146540853569162574827506164568486588834943104209512668930216074502396267811132130488414070100963884325789977775936620668588904371053456329680022060849686297326714626731747003858189467073404215080936459229951131190508154762531934122481646730460700885233907092019069148152487679626780210039011757755385034387448852483756410129338561331352484299253491119552124688702521351860631057677600410579774956754855253810263430726940179023942462506309727796496695988640683080506325183842441134332741164078334566539940997974623998599880891420662932392195330853065510285614151371736936052805237554672410748203802127883080270274749886612390193419268691114861864432300679051409562625107786179435177718695149287734312828303429189706802591699721265616838592509917510651980792376821699809195285839433029758887466260804770339694387522842094661308998799634286331586845318795274012642194816748742547492203511650610638844080690188875208362826510315369460513887349024488662152079607185480642356603390792373866344833164373917640858152127662142861631673131744294938479247533750918004715152511285671409782447183629928884460149220797823104453728868001187904736769379829898737467551266736897917654659988394136099322156053162265217457472916584916742957655816289158104509394066311918330830231394558656331468830730316886967298530376373224371930164221293503502485655338103136925957127016663860644786916368956531392054959194035342004167437436843398264901255534982882793920045447229912864524504700423518854619962617606227008887388670043529195499456206003657346221009715559597667604486811660213112099021838714046904912357705990601526995503603929996919472680322598121821444981082531259718040298340611349091842148866058965222918938564431831799711144729758520070519530794938917059025342563610284345276831133096325799704016790951304275797931100060390316695507351896581805991230540719494185906200847650541355516818985627115692228650238919542308458385511883188710968174910162838917125331141534301187472152874717451925389157663718822806953001360397453328269430222458498261140968325782740467354880544630828458534216193922950838564305828412432051083700650657955695727634344104873817186373860574831414577593077912574211956728362706960858037229281187186279658289781572931740276273119683869407515197192373282484230898409149795210605248731983552337993448746688072717583499152912975322625793131354998884033077492228201881143215556249120103940416724048859694594065102377066098214517904287229139876056465701709212502135657262472671680663911746905420642870243875058425406289793275118550703636187458207266492573932922879768365480097245221937204903012298769108195666355235976027003568501259418830005230575937741748648383671500089202667956655580685177527614580924873539011961408897273028499265243737275316852382227722103781335502457387772201990589620211522747592921175182811892902521742946895204200192711023070709564211706135898918592129715954537889044223922334107131371947727844540176896574914281050163940531922321483460167628049748293838381345619005288735551140258590070797585806933301684126019459520034378957713356859852194485802024287479064267364189975726722617696793770991401913491933192782953374570373791598521353184958070998525518081133203243793159057255975667483846957989118052016204027141641386356653671867026567217386915378714007046722960642487687133335617054356259051456205584723813381439746371448427044101340935287203890350019849028691122094715297099835118612635121227204314947141090253703600081382996470244441213387408607440914975010518007635285487585610233935634815551352785116903161194505073439245233408632617468908476565418011982718978658468889401885014778899395452728918992587485342022999574603140798041238874687755864048400948119700198034356843414078082831749039424316538672864845972005393357351615146462722883192660745418584013785585376363270608411723413887181546071018082154212631114118291560861448396965620552758945857090746853873985762461746539437749894005444433520844167662310695113083901734612937611069938315191416527440939911085514359076188099881504933178963716849407969337505774933847344861088544271317840620015349140844158186913938035329928501647305059806694985258233361302935359712708874896694522174967100761696595337254804536028349534996895054042675706901491867790103963858742011656356100199815873023880126497878185034353937297173758079357053940466316575658959377891335404533498276721334325209969664623501944467611165755261347076893495996318913653653656565817743205238554371581358080311376940456119786108253186591567895909509576880179415621091583986226854279030725416664669550299075773145651738582222026241133788032547522735849574171831266973341335980579490459625617609296816599969181003001055297571469431967983021325798052648359094136789497897944294448860857603136246566351808229598928701516787067011379765004802047334840134526637788535076534578188652026389446164268401320467702396261510418775211767868334529138822023514872552824890464453943648199605926485939966906748033457378685234826903316609054134267505583014665684136795905559084714916714669781634752453756942583912352991397588322314941415466355544634648683815300047843728020260863564471145574598047836464102638991423735500881240047803565551637563777327815741991590302907464292000858109555498831359238835385763358003019311083295332785348392697089667190700383110359101329242392858455767090244633263791384669051967694805216490813425209416891517610282413339361957499045345032523983739364471393126110589820154893497937882930723036148787434848295769764172027621255619975411775905197572069844051367868930173240774977618000760147041203729779381724905158409069523344706265994176888750327467842535175793538591978925185178035732716200465469834087664241209521854326369438445901644334538479443299720258023553506174354849400697278063374832386112983849111900321301795072595798713323087887126901689939552418666296248857771557640697543946400858020320909834623260159739723179372586938768822387144607464262710646223073690751152751926008551855376036197703195406469033627736411231899319799767174177354665065756431228796235040289397133282619205296190992318770215522023335679795899543399837467187574898253520783722352677296918380628099904312866269429599694900851292649116890022283762949737440933284726405329840568997847701454594124721288187473859824548824490404114853141102023549646946622730980220153674722070315072013584765949697220316390347061856565161419535565183307091772716251874016829181445495691438269425049243106892853207356579544013797523917105568710569790543259547993339085976920308805185922336296287614939938306104653495395937383457409684173220234197220774713482589194055086208264540668097917556317918811713119974119596092520182835410786962991638738350763036954063290056125350318645276525410375695863836017485079966063731387535495189531634213997803488262812610023537745616459186200588615652537177894492561522013065279146295613650908623203327202650568360167254504572041166814363632552141934840348618217909846835352824863026636158796727086098700515787636559493961563151768939085802719915436324721622019752467475855223973071427593792054910135675727006741250719726997274892138750332855368623750108875969101278757522073618982664339865209981044693140132913751524594644298182036288071939972142182132707768005002622192383227679560368605710727246668677710905675760435547978069405636891402114673773377187406542208158862224467749658519673981114943341102253428111827658602395651427477036358747027819236423191100582068279211495180962458775188311859758945411590735829426163231439108297351257271933635949259474221319907088324052892729051817867601663666955615837812825444692497979587072581198013944833899597564686081012774161212706425113753942490601094887421844494869460682759198783266161795050226895274497501114127993387103422235789412996181932599888267858789704114820285313957846480119657957692949869942478966552667258131618429031728360606560371360971289245385647079583602925660187550428713501791986435437850518032335524013410300820053149595758375948979858760152972304227409095016500352626760236407157780775284475018892045006279273472284865685298755258287610770353003101706961233832420457985982447239758226002304814930238143783529140156288144483010855355012692902878289264541844756197886170293098233205918467425891567534879685638822164207159132620360839299566450731711591384227540437107186916435814371986592105911731342390416472007651910699928472498126159572548285188967390173075571351633557014030842209585233583917820147410118185402566400537820213942852456287955417568073140453118374071752196498342964327136474073289178020279019647410147276844464410467980065413911784056011672784585694338467763285989325108007748250806482874732776466053805498924146017230162399118993428074737266263010564734357198224647078987431315971245360918293084380965620611400672852376896616620533426464831613681660291358568048559704072205779696382525275909646202661725250973171446363204677621379809365076062773235260562958494656326594410495883726945388796460712098460035172304589253461695480631681028310746638394765955110200854008145642111144007085895356614703195088821123541807566612224376065599320648505437287272947481881306966998934407542198585080879973696802898276706958201745174211311759032140954062828862478823458045530000420725930322206202192764458767352744216063960070947939002558746489215447540438220527929025214828992683787416631362531153779877166533657968766234654181532155197622080085559143447776713386324392207263626271953678002863451347725700687595248994127222703869459738364354787915406617480269722321097249781832830947968290223490973358812921233919132882498758627742687172029505375942971209551906667911253447933648849255382600406333115973038858459278245134748612471775936191691792907053946095444976656356192769458589470563823519490078750466475660369204287553056274699254449277522957413938810515007464752197599196082499570033723276511596008460608446793918077484752343570374926815758202401190339514343653344131328026775372128992441437603524182541027224793098152346448178287864477649925917653428577205180625298263106940833015244844398141008523445611374328017557539913629546023681207422888122606905102642014693571651908945625536519064356745624135211236095332985256444419272796060906753127287884534330404104032021650676086604304633664395895346034382991641341236914744513921604321028880395367830500389531824680880945091155299841344293200642679945569751093349872752251180816867330559587222170702654575323325986249349052655487187526945109923497042468900866638958765203345536010266901551582961486799836638987056276746475455402786055207244657865408278484396030312817524809125442845855611189047564408115492559304789581957337231487788495815191073531121881854689719627266822529760106263966959612169689762796349261611388907753029067804945080448080602487338442883586660579864505244173968867444623985537243736789481571265272319285967403260006808222647160724404200735786505023045583080857709430755385467272284786598357125795608207487825362988915941187445603593424483171932718046359896277368554176063296333901241264323841590693965489721392589780812503284436638596941410703187695949380393547819798584931883841124693486738797815897367581249341727802663221056524115233151117145890435678135853398936908309389963930804696453551033112214560840490419146000987216451954362056767804508535623751803703568952354751712460984981515232251080313134450254425157245142129662794898645228446856491405886465802890442507983946951799576905004737364476541507096542087866395072647781062864192108592346776406303197067090225346715201599135800008176017152943484981972428744266749043851248351038452617021770075605740146328259881289575752921713013672874928823482437037334905484606765605434447200915949130650668128869866651301132933160639886318169702957504460978756443719870018676915590732636646829166791525536345939005919433890995258335532643332079709053497011795483643179929308409214528454369719202595395669238109580229028853020880599740492883253562410187753173028217945127045800759208553984944771028697814677915452231469656896984959986894795596405798560767962696342460192905591718813553012571140008775848159603782754407913554957897088954323611914781294924676893560356512828752236308356238759293409778348640158777284833704169588401064088959431877456650383579028986265843536646729434282493863602907663755386448511563246657763482959303477290016922855841754400259107982844713628768736209141384338021817374724249305804758917327755041338254390808626640855990244439939309723812352213183985461616055333393338035739310288943190624822798683866709615047659094400495704865435937605255957143103399275304145060005271454288400837631932021577280884452932870728837771139249131112379621899480102749246673252324914774217610677114521149932522453278425988130338729254451557814877157175111716133941525840520024632566419869118719061527355183991396081020211258824089967012641549739913776297742171670816663355869007654586302569598561714856741168887647155098419938503806701639211808504929759360369128806361908673985010676666866626183030851354119265482965791299312886338383171800395768257626322210449299694077646406245364745371153257605485712339403597382692811235854955961679879308407803621174817877599198083495313220435495380649362006779046740811408841227558850533488464166407760857242770803646881225522542126069569625169987957835009980411180080534360415957056933538045579962837599096455472108225638215778075771874187444081874742242225012916124323916165022735964120947608515772496647513005327601275942025578361342063851119923125035287976300082153939176927844083560188011633205080420689628230645803055570306144112969744479715981492771649442778818110003411594759857979251524462550330803986316543023908109811987490615694154247335268711853993707128822325314308301418759211195176759918410552591998919695935596210539818061172407305803357991668670004231780311251440860507521244914011323469555312097639744678171183255867751311009550538395035448936499094158469022789962616893137486793937665765440828953781038070016753710925642835564692877210636818038729512342800709227083761003771500036063220874708855434748843114262169843998260322730267299721378310406921085353320880556990904863122696692590426326943387280267307273489493529684796858080091569876838495871587849921276007095028775142969918795982318845973650319845672686828302665735792822657297676183107862391544359920278717575568754676611531778178590722658150927833212548276388456721436230848682210980565721968291341131130674240791014629910468976220026042316383300399016677617812569371960397448862114899602834014397253133679596266992561623375067177814130471988828460551205776542932628237821408791652389040584541538790790012611582610580498080942351004574554204936634772534906452011491115959535029452502566213837766592993778615887003797931986469027816608480916522864934068899460537676211625042187571218301945799719266687479928424981113781870172867911432190381685810824297115115378216545008306187604267720124315973866535757265059099936076243108422996469727933905397200524503008699407707317359987831944277495519932953828195950003680439834815331635834490564256112537834505861673153825452122887669395087446167491266578964872401983781492721133171821938055647712342038628561352471615750423431693992914406484133255403307048707377221242460283483560980187513451848006008011956893689839185153070420699861262750666868787250610962624930636679555020270106234757258107744979979800438020839130643446437981500798807489668091511313666351757115408939071525497802846982667557629112390037471081215855754528217991564366487451511107736724876521550907346921185831873240386109177323419812954353118095376902696229797802843895376179908057987453664205842543661255819280208534299335954882519435910474097439146100085789726529511953197846835552962688354432821100891981283961076126947604331355201328812024363421685342774225604125741252792155961641374855115467810670176639308062735914121585124498266803971345637599913786468636462510810723068351299538960221059670567985785178545115580938442081737113631296675968317028369990825019949647138288710731533259049532028439470533233315845488761500296578724018772715426674291587087518680528172345195295878167731249422076651608834750144746546622220067086762639906747405173243810196879349920585422364703901289370221485128075467766266433627019143149929821222122773703578566143799453499942604515422622647644093575052290341785905608849206759690068685662122404987209953142286222121341734812691862616792398899180564790125442545226773298134330202068028056802971679183543410714704938027853164751752927059792727472336567855350253658440246961494488651542384544356384941946958024064025251151591903909353903646681410093463416387475619933144096274280673084990202396805790802256272769151690030585401170472117252208418311745740468866038338895446243384712762994234926656992682591083844253138131988509492642450980673008035506616710919270902815642057086946278082486864412142838958688179992696944271623911096543821114085657843135849668759981932782068143734958054310460169356353334718205938609054113019707965618645951940872033824460770028582526492910212374193292050383946283112756274751778899003467464417175804066800000829304167156341684306675489688538200393513764318156846536821338326106782822748083488862636742362248032129758877028749715053250931163845435869107089009734722488806936520697983729052084638960689637437023951673314427127850236096775674831269403544426965876222718743043650091179940456220401850970540808629007860736978193722546694407320625696890025528392417682071686106764356937256049159412077329748319497502171005970257282412109416012767170861043713285210924160456012174709092206729669676400999653495813268348376625899715371714958581868504016628118271071428276934095266526933098991941556674229042237768268773909262223683195914391433392682575995888777946185116146459483690128046805792416532728792476286973494505869757830418671748310155620827486858375370148584313633932699714698746070192895626707255698958018425512241635404759120116599079936868855183244620502214696344457151835254994891734552182256142335757354992566974268665989121512422768797143695951750945843394075254102752516509134592727699277776388234193693573808583106355866282056982004041133412233163477477320988965994472725973949691965566251738660403941454927554804300993661927519664064520688892854854842244395867788039533518921653694647089432026757769480706796561976337883651488822879197258629061102220345511787761040088633686427435179748138909203566026865350439693656695391830463190314720676128055295048086924897850008406056453072530265105064582811921314743647335375175070393584029818603125945634872731725279421231597117467307463586525671864662860682424630106140425424231332615649923021481331300052191848504731419411818528635845252872222234344602056550141419797528296024136716438691933225785724579506027794727829309767261948462499807440407447018848530991318751739211256060160832634237526843545792522384643710833540896159110648137543444122480405846482031753253021119722297951295202527896542303452674215618386902973133724809993061282094901306536092672404157527223944667929153893155415575690309191721277236514731029507843075705228946125428444891752602512532641097900494219307189123136503488044736682771898192976930268156547522525323030688947162726793098350253709206555278138876418492294882605641874529674114229260213587369687356999410554983102936339909559654107123301533795706557781622202127543756373343499829058151560499009222383939549908573196647752162692257199104985747266102288080510117864273665449954330609861918387140995704734776620558341637436818685346938083974363839317257437100712169076569037275917816904773622693071817834030466833388240127953945615374180084788361095454999948608639161777664859385887997791153067809449508720747486180987829872437274175911872815352289181170991301418427324599971755821425419376692438596257711741293661515670095385360622274839284607649974687004593175526594479714485019288002147062958564749771166214726627800764804705696608470409805435023210243427464172099846886615072381857550265277004195575200939294982835621446789457324943897323583598332906367335240111233758668608757446654542079717557170975764605615985934438927302355614792158760139112953353940439675984178542647210707880267329592542040568687977594224340057724424885183658706783877636012168259381260977637221085178554571857063250158556366852314179864775598862231634481780066023914208081553130052054539553143122848135401904535290950122969806516415396678376073393478107622694755941843278713593678292914673415139037264372961071222563336045944866889771215843866279245007269363861102262716767663964242893546747214732025085850320599677172985842848287858922269971817413564400505295754645048750587033522103328687698797798316506227454835670922211571648896267087865699525084713707737343901321033502062793503740231465721023549204920410089105536116857560456621754625726502802480395469038236650506387067807467653580685206012517648832893776570392750705644501327305699349130823002288048648366770539901121274042592858239007381841451577495850080125953968771130770228169420394103864547965137921129061792458205159632999662518140152560339370619499889288248400465248053933635104605935315604838630801615302990279258492207651393599173441867720517783918082702814837817647600809651739822394126681992591313587716448566312769896981389841667604958681038162500007923115857725139374749972106423523329451432276871124873061314540464920440313618851239226027460129619412136623349897568046842447268553328521412350736931736190224969427028609738588936681275882911739189039846307391521205368973414080499298098698977141263619388963338718548405899763710680498947153284689127561667076461495631417763466392780306255587914906851903042940484479921214049319044091631557748150705898360107524825355642775591228485472033844770034158804584807788464649044079718547909681882623171655792994264477940835982784059596766857337323954053088949890459379495002412978824779081663625667218428761463023518401860051718790882688456794256946278585338663774562976132905904800375253775774362180116855230586991962121905364456370152078443193007934824045498544032707770862044445150919104523712990602124301755781479404500267227086600941480054752452759301560581391143304192902258989168686991403087611574117558686102078828727968272814983528827322050301457789955074878320016985559811578798221444396482343039016621868961678263342490668389160291845747587760880100016908711897245999032524005423448874675726439558288515630605787112609515978417297584769704405145325398929480711504822200384359226516001576537060643620291451022368162100076160783196885964289780990655815518754977466220470573361811657983673731578070093702812337544548673776040376341512130713791646526378918575327967835397828934618243103878421295326241026358364501043452243656232154645338962305528643666786974354841897024259985581773727930569637168451631863485541185332961008834894820462583389105481577015988131786464000776977852336503236330927517737544678112866483229979918580297313228850513982546216480504132813719403796211946054238910340583575480977042536458822444586090268996502693868177100560712065160656356605832702883723059516206974894841461518192822325471445768964910071699351580139486310933203774651926566268636622561390977193276569511396757448379124011016010924549601633783478893806806756111553308919728290342979796771738367641752002967859161652251510272815952838908240567802482531892255228553049057801312336031429705241176359862364892861055312475766871910615413270910315969081807584610615555857514953393931708495990243291900696407279433210826026794949836477695890235053429056742421253123655491153864475510818811323645820462274590832897292630513243401355130736026830540727421891807595916159373291360899149089955415036421913169776116148256112213340845059807142487479870063800388933136953061303869461654276005110528383206117685711293461651209813333629244859666527718320709973924420010036203271042785598912593739504721352160671749422858447482888127525411946934435439731063078690202332460730773382870682800399296037771322940006551602783990362432571692734063283061682896147810585695747919956740749548848267213199664821810367194039018985735181832279584296641886925160514436947590511656520723570618452622829422366317794216036760959207205111111876164055527882227112791872967447149717789754378450218038347145012903221735318871233553749540679707503329006706013453838661837730696759089214954879261965494605992685833794397485021216256450732360312668440908832548978597171782510151857449432547549451423006149211391677528692952184262840450899814899726594111673725416148976043816352052535712724167025796502745431831579881327853109134554305659867666328714439844782432708298619979106548406383019140190121809115069380126563326033273150600504807286400942344546021997659764809628429113458377099667649397846460864323267225031826734059190973155539225689981578881958366726065682804381882978277283047049707270774667339601797706078626892392804002805247303671456343403183298124890950072047630622755790660442486188696252246889042224151498696355211860136331522083110946814355282245798293694544251640384912220210952382350920311388644177543737223092866878688071882152009096945107990575366413774846901484740144868136125229487629669333701906151983522883216013218923309953148813057372495029065547338219591492469903934848050567417855402675143517521655438261153803126175065464123876792418378975598624733954892578782602570059677926981293517041310292298023338155243709195579705669843991873936558060565938687216507482490996904393963821634639591291513672304448144356926199170829398458809278086903958910620973355646778562714478884221916305485766081538082296639284348883017952533895586533981364758202472852425242130931579698307018432569167473485714579961950652738277531080480251076026212879491289293322997232514534620743819120108877221506591263335349363147637737039745586886357852428772238797626431854553033380838499109367102073312154430480130896026257416097629732555631744125412717025854305074697693183403262510372208715941042003537491639905267161535621828988955180251957800061769728372145216100062383557504164676919402537182111609745994820729668712537197126816698626487084260660015968215924729763841954043943326676080287061727061859913799561176455903444807866931039997288876262387583978529391455748148000882412705588107811685176759262999174570834577616848657900753118334347828295883122389715105209581950247679618225096587295158174105040475043959191563397562933705681742636978636330808438964283668095979593781488056926267026888493030451452584431075645341488802576680012066968411534528710463816941788844684868276278969288477328949500639874638191928089682573047440732467276169108204072046004471027619791633204604604149034795697840528267258769373021157599149886394551615945437701926141352279421828097335504036067580489671201674435493452149415941345037439287326341856312503786205292738925380058667489347260885873056464303106564934913598121745505784933530827681136535649052229332992011999644377245615034676044737247664823852115645756152381832157318266526038790597795661937488808535102066102074585449628764812503564750533675146109166491555162315392411813246449807687335675166444483540674738564962662619566773808773871543995805326899552740601600105472941818546999931859372330912600873954785748235817940142320445750695767351204198317749159705150663136978859544136549942188495772562990883650706669581035373390269628747638958217989397845352178364326543637958840878572876168456467350614861111560825461736654463110632551760418610344813831294758551996817945875067447007288653116983206559513791795955031166510650710598071898824953455564791517906888511473595009526502686026471816577721140662615903128248296111670980415934965294078471466182808247919467593760180233214039232100394062853896460601292276221268041313082517906700318559095954900720449394899280499310279948977506894216194446605712427659945115278466927890827344579497261885188795820601408892424197738438834111490430179964003850294632184728481519191666456029720567280679009401214477556117265717576066812531839372456690341382775883948179860305723010071800770608636184658401844575794929061884855312929932058662687602754753824425047912138023637015951999474554756208243268168390910594327228401958729014572219757211980561904296599752371192640588552926718532720398711228656482984157699512185419417860723738622129526521738459888367416778409392255932226302046949442741587743066183849942692151337661963527256276308783194112843267789946793647641084093352379653624459080998564348652716943022048830878318081533275806979827372847021440186603894084154614457023446537368191453513288298691891260827043361770355475558375169916669800423347932401661586629073313180051410342619480767636249761520470704957922161506785980216843846950918120896818886622724215588002978645635860125296087443749728084100172206710221787115441555590785572491504428099290568714010573676054435964624523899699071667603218984954809329270959795262043403777549521432991878421960276724639492524461970488936568796457969769583653589728835165737706043005793725184480510132766441997890108058796840081749461879805530425158289378466543772272693383785269798369033991311226265896456551713202600301921640624263865079879648716317486492259678047989512884532082416649741355969374375112748511812733792881240407026276007473507567647573637033582772604093470282942288498033227958742669731790900671185065374519398440826118525124140184274490635274429727588368733740913803485086749995181132136183663207022396067493153710100278487808817085246985244406352732690627381383971825643947727526197399671889808437801218667137717879991100750439006423030193192789374798514889617831457898413694000080311602543827800065780065862713717587080459055306589898629100243436390197429664388434449232669119487012480702643126966616362851934704208201971473159659161408073951531614072310265985846531764852916456983776882151302844051652594162893304333080195984988415193595561780431244369297471670990013580239571061636279803905274645711875751080097133809529068306866400495835435551927884693717603739034929819985209765118970659872398849671389230607168534890591071846062117840859132620352083888579431948339920770923257541926103581580162461445683909789916472961835614106013896613473277550030224975952621643402094258946958565439862076355055617136788800826136335586848471107363077560623712031653070943568919272473802970434489850628046472654357674620191723555613647784331624374497981513009007480034066527047735515579340065052814646887716765882200769787854548371571599404252461230928126819651754586339099113955475716296557804773478867856461032662826837326700601494454507088179431210698685467352647262736179190890931823344948237045249278341109889909255715678785395472834195650843736786473329914744617473468871382098396660806038121205691186782524982989110831634923906245031021647372179179942369605395539080716251610630101390903452186281091794673986317058104753860467781233383922370905749858376121558925814930691268693926881930252062241066919081916359357300802810183212501469048190722716340413816706664574011898797732008244260900033452022557182279448581244783572639667137677178714638769057469231553180464822319167363751093016187329877457228615050487492788035810189055532889646721156375374356560138484075314482152722955673155861954293407938991481501390695452124298040386612799468085111633370468581241543934322774264427876350047041994141958716923378141097328569292178149469688871313811970826545170469998721114338904894324088506382834734656155058289872961333459420061419246854590825145544411790994529979915333638199886787405718498821885630041645108483986894769721629097370007687094979611228259205270398071895877781935853562881824691975355244699938224927763256348431721443223081711566428880438131068126261093461056013482787506659100010206964675103007125760741942380268102804101305641505663131232431207731453495549681663593709324837095034480380751389558704370767406018663251732770306979153644053723979670062074478068511612503387983111328056753360125102731723446723068524192551350814990191279484142862362078503820721074973976951640720205749922994137227987844015726074550347463454181937302445776908178314722808875911167059241809949740006318461057910542952467984626856931660966258151503369412689005712211165650904564551671224766987436488302907819058013645392347013621604769775918807879413307760703983452099284751797365059256979170388797081532973502976996568337718992370058405743622471729351330794107406185805330528459034713312140039445162627346925626863192225669313491290891078257936747545088182683069455678191172832159586446083350372033538702885973456224422207818612705414992218304621019449117837432316475459164720116146972577765971203969454193544223836326796668101625155683510171559345260192662285326352324066261592158339614443221385745137182057058343122894532576210973723812559945080971301729708776169252220882443279901532409421074065494728617468925219377795246942032567586083269864643156366914516916326722444463103330822795299538985742508492994553342684066003146090052497957631285186377178795761342314101937548236392331369817239245343153516696665392064694825878783297495864831378775269982810726548972643076606798023513752813956373639784487932852370396951538490641412918184596647252513826850975116923938179914367737516009519111116225373791584205765088400244249758163594407019740012919431682872617957242193142125150040603052062174434312314366152357960835007542542012756245432139989198603995989196853758571592577477775738809981145729081706664985956408792672881164297449314287089623276756155650083373682272807003227904293965264089751257654404221148712115275677078347087679203245445904972971458930428635646763206364036646284644717225337953184696962883869968111668556751237218818222044900730966235908303065207991384304526533616087802715198022205408880011212834007094976456520836703592100816259639849630252298867070080437465720227638891985809668351112419129815648246165730712484332196034233173828418636334167540281840115757831377693569023873782574955777789166764719120512675080865124588458998133550902759548447819823511163536153124813581934225323488121937222511582989225512128571797470332028716800832987384560901031608884830475807136099475591290426083351363941976684527076520487269434507731412074604497624765444171547223497425182200242833419925277339829934862774273397294098999544794657164485688640695713405470400505860504183582072846738966910617842661066169060760138672904446774122386242786730143569449394427769998317239416221662216822442553977570434671627418839366877468868515987991394587301551173014712578810486200950032469278224390068299288822677595981229385349894387070773596746564113678752924001893610825491683418841949974963158381776176931298019730241915976440333839562771160089839719217036768624114890509932516871121532639275078840552529731426953204816052885601737973001607072578791050002928042248415150953773605260389965235009190481780346229429794087889197933760999685281106490303621833713598252219049034315471891124662453968150999732116461638846172556817614939862291783733646837388661115475385791765420457420801733164251586022953895464584217593993670689176632099619340459725245058553321432548030942749863189643467400265572000851659922727852466973194860641270049266844594807819121159400380429789237096279479699244977642628540008295872623300233562139750269149697068738915746672027299362885604747559159863785346498097514030308947714651425399577479614075317637581206735415440838118820239041834468357982924108116738868479853886989842973747980397575503639472931924569248965366679169970444229064926633482355011635834913729765704056889882698326798426764768986072979499089584263247290007297540198785063664874120912222983002770660961401967994101036317821567061227110006306623883295328858042649531250776742157392861590848788682427361767986390921506574053397245311696176470090777034078063992611876156924527161948979051664981663836268243141188671190688021888048501139512597273074803029902504234925086477043660549761856129065693147176479534258200867173493561615682065489556941995420902394114370964767108454954423053069905245447215179826516024899962961905671888034308627723714821858130591837395221327317397563612191761908026317749415221401282530056487966076605376026913734373850615942489748887452746450157490276131966652813867225181610941633412120726357372683645060898105969672440020375838811130091314362300862510725034994471585181887048081369449128322333978941281956913361467071937013689980270170853552531844755340370449154769092528268685286629149665138402607001413616247256236176201185041761247592721871541752365919762720630724228774076085977949994133194955414004062636232197755405485915318807223216693440151404504808181742464210210867849835700972314487669829639250833702605107163202152508846296095758630360951678680123554112601496049361428359448888082641408521144538143828555192020312755972686149874747712435789715587059751398940891406093982823945952457987107575681791597308028801288923503822065320781863212873481821733194876427292549574938520636884509338094277458851960755869277847071545859965702900445717244519295349608267776349934255587127625538265729162534139222720305538765627418172462352669662487116254225827855507030152373931253104156574143678496721089823728816367013164624941869570438159879610740986150585513873876970431051878389742362541476742764075298344675929229762191408711142059341921989042363424293478996884907194281014969448674255969925553828941274200306307792325863445105800608568700850048998432179052534887485122196522275376938052685583814462504971497588753636930758619101445404100446901250032865536616899023872753012341904757721541594820363250003679841322435710816154092712841582158422089865040012733940400595327233440962231859480769066413079979845283886788858411663918554086216416755666545328279916450722831220304924384279272736023654572011930099891616856268060227013355265464784926377718489258091237780046055447273636159356133119860344292721381609832591874848923806591188009792166210514878046008280958265786210566317826476141394700435601336365640387051503065816527549730929557239823041038776595010910133904453153887999988071587807528782382474926423992590156801495260235167340629954355878189256065139051025134623826885908471498729714679106029077659398165654920410391587157579827859608881061202907379821876609305143061967171124503571959186338422558542158145394359688058840834281581141223351353191085832212577787017750777753765960744410236819672287401512517290592883027931336274998047299674318294145975673492357384273892637179560788832291385279024903088993753638900840159040988190342179320283677857671568596779575948762905683692163402306490984985356792321807167654169465257563317964736528385718869897961542907950639852883334109020326418726169813107672420581431305598636503057949171501208323845301423986447438039711680815419081148578686794981813913221687923495211688939529954665920486278539691043972808399905227469771309220160987121182088696670876725354223893048923596290780522668162991873955387885673509194407335749470388483543877650662942784613722289673765006435102526486823967997791318804024522800190109715972563312900459261702065680209359926912571106206935882584149514367956360202769381624790273215989798135002137953349208552793066201900751450123065776662630941929370091089059681283486590887571350341269794582317398783218207147603753805162387531445456628806288472620361377562232208418880542107666476167597904544731150641965571659037824103504809344069236570466057818001937421365399812588330152165685447614304944854746833394078844104848283510802186830717753045738318617634432120593316595680904336333300725961965154066519534076738920645558617213948758382828441514832375072118672250117942071547940864855538574556127974483681642039647607774750341354851960309411563314133527413076760431423563429835489640726558152231576543859126408614687695276218077537517942556946773626211862372964852132534218311069372629375344121607754081108823394705771560508992242529127117781234315462220610696294266592652034741497384048466682850998519566047035760999257833190513288251416544665674940566265590101051621050939214849040700416243083525312200784049214873257185324626130774553778434948432605248804457717749345713876505093460442787977038554048896580219989544550223673356442987257971748120666902423335811637195620617340428444393504178602815999701662526748535154609241158623815968328492926098291438392185710639572348025324019516769324369632292143882345306111130305532789084381024402343614912989506694887264784673932562424043646262398813901417991937320005387638397560177770726062905847865979041160310821931820722240656537309354124251752935310582082759025367009592154178074829975081061489049844385398184591877040581920260058516251417091819671181687484320087392431846449094602735881850139724102074245344240724916584458623947483377783367010686009892588795702097900735786077220305118704316949639062932851821221097026662195477222864179048817463082398226997572414849712257201037396688799636043659879038338457869885126885851181384692815704105734004334976913731075689148687862491185898914585603506228113024478645224243166178905896834612150439056306441571013790449216439278306511043638897947905861923792882408105630093299531236490066632503719131971958956328367142910227725307144368001041822398051016672761464708743747422241033755174378680939124225190375618167847721308486320827121865186862825705925394207960866228257963483985311318181583102122861669643650684669765588553559671330439432439237445895941696724140886675490643675744706106707293897459463270730881437905231579930642494612889698137590294947909755659972246502069080018091814541810835684194662173918226117538997587180896894538125742287881059290244737531429378691368823983171006664359176276939511821360945013054625994474079305857124257406575236494738352001376742489148232871753927628425421003821738218065881549531883339876237409489349315479771683434704172006047709602000625671869000385484003625454368877102677235276444787803593550922430776662620856133948403269849050769178878379023160854091127253519764519697153848002227317782517002792783468377359127285807659881421143345865471968609222920544392990941825244612626766533845361896554868320606629486107307852144846771252432058526839097536614512604589274999459618333696348918680515368151519168838837597233515423872172957863029510508625811834507073503998231801707502328368323375636361119218312672073105436188352309736954437490343435639878290880792085043591532498709770911993812701469239883960766932545262789885275138233719031295683169041019189165942670199298959046112478008204058819128257383960066185673639214694660775804116581022749714478032611341187472772235568011020154599877842712781474077234519670480380120395330176720221502754025314880271504766132088987532617878742225636974774834828863955040141425368754423677645241045733930562699983480114182634557798893349256028171318959506639488440662589337840515229307155200775500971687941807148065254855415686464878716888156559023694822451157881114319547472534575454129767805798153329661087987513298853413194084998763303014257219836411544484600636983347012084231646882705591544855933762840740578255037445459408995927910493539005351631416944375552885034759091460883433958463448239846689384792995036383375151358358029272323713122130791294197826903838914835674723219918731515270493104773679048020831098276771851483165835602882855951901154678075217097653297988902133621061932585928332757367232806947549340771471131632962693589477878978314676377729562245320247927811866258358128071954357939977297593701592898383953303638981408325569791975636720573085274699601324819939940163158659404269024649246643772159079723257645844490238924330859656749135032393523547882070662372861681888505862686671458532817066410553240633979543551115850337828102822921200380636957217897382720566616418140521427732923179028720868532183145409362713577168323184222764735296221173045365844664246831540442312111280385120855951811808105018933522768603709708010891056354765639680074790222149762297042735576313457271207639163429018347089916956023179041045474017084825175811307446218616395859216112361091673303495986747294690278714999052116970066248679566727280318854846655450115359758352821205964551857649515768922833866398091487784482871843657875919085311591332145464837144818033232404171175765184791179632563170616764195071456879013802397729892001525258919288792364905740029766535623740507075114864650586965567372217483302384921334063663143243540929107804088401164277314827278767279810478616163819110768738293897061450657055928475555128991813510331306774689916035773746322345486318630751721028155481752247928961757245758836291863323906091516338087889278984112920252208796242285820136473526877153693915769396797181369634493360162813033722530909806482140255369837047423912510214840461086994615588412874534459707298738234017315464147983802517312511663493312508416045085921330499953006271156925622065318670646123002631595238213284392782993407284670006684260662915241440723325572206640128299721588755754015157758063718791660708506896055993046173190289385525772111245525359771252997649809204795844489366226198403663301648045808838893935648160917499021728000134590024726236369642095016985488970816532047477638954438812855180215794730300315977827196981765988609992072381661688220728700027256060726723122262289459150126423805228594790603749508568392614761905891152664844764078673968964954759757757413072692676863200169489997600765974107385710276932511188531338597261652966859883537318601091077485887429666453538614399028062503834871657248717913890038006513777503165639996239950343346060351561601667630225276937095682501032669100556223017482582027617844131924057134981213247229366680566496042679388315707274428153179951685485579556628635376029339684869134370468260958548641861717411821168643054777457362330485234387000925047512766258824767761118027775431082513487050757984488581339921342895180183458991011106890083934109992558643010450556086184542110650676955431494918522195291293609781415411232820204435307734881185034653889265634556644660700352993567554305742123779278705507696132339585360896353416885143226835729975372681291396825871204131967269433518407006201220485355942409332919385557538310205330680271564974783737307931937533866128671104855066224261609863272902427049871967312482659164105347084580336552856624535251152187532138096230309956428685819221754346217115115137298033475258230225973952337474368224518001521291275363268945668666620160049159178459713792912914873786539526967235089784365215846293080847670814018854781567467302028328142705792334853547009978168714467884470934688431851110622422286211487855817736976043465370207926866720347350474579046570553056967567647053755187661004508979954714346627927610857964697390252148725048117101760159103599914156237732021449236502244100509612035162197988685163318658325650340631014727774201210254407248918303210814374233922701977012544104686749816275416563008840511974608211186083951208703625947789771366789198185050090035281573477299675417342887130533861468383590587961731669430172971685258602625532231345496360312591150731595205572233502114883812898358623361897728609007883410274131125541431806470858521348489461127817990805917616625036298384880096989648431697838446613506483488793447853892568908451714064286954564136410278701017977822500408256761767020091085556694041545015169275693396244091738982739881890097479957152987588697568153671334523456054661567223437382155263959598836507437815713938687047293618187691557713452414956270347331143879247656707389279153637974327536820808575363727017110267547926516819993910610772980168577865673378218424968163014883965547794976680596706007415162562719843687991344036807913624194595347867542835726666375397903834540998248290889437521467627027760062849322115943837164317060638396120966181288047654194632630269730144947036061472421389875355599747897155856131824593325445653492373988948258607860297495734230903742526404417262164051868415540189718876736766504435829311002331998803653687026421819831958320254930064376121724369181188094649833404757174090205583925066334135976366917280023083920916724599524269290714173638770026488209836078906040322318276924106101923914952539173291665451395039144884645514870355117375054819477144260699914083404304163327033244567220198619712952880451707804786299334008280166939169514765432483039925178879130706138508809485729938690690155345384098532516842996870004933891317895096544248793130487039171134300177012164597045075423116631867873549982892222323474583741826122923625704686162551144382976121241690469935390733399778336893329774843406200570771590673236195904017185674682181886976161309158934567102926474197149033579054983018514202321156188226055750972463680880204457917500190667940526834124952240756906826757029687101660426288366917804823449905006104914930152256229256812100009360765148520807132856819251333129595223945182338556417189568595897639544564400571614583944154564434662436051499479431809734457810972927811930065325696806529734516142648848195344805525400085986599085525573700844485760365484923884013922519770079797492948396737685133431474139296593582422566279975332102617152850751081237364847557118744682051480992313405049385425513451743179878045303042671262433003783625678633417436520191250637082669397771322564507894093171539303346330364183757469491700271760399504651848919220872550726703438261445660783081887464443284235178554941850122260349254166905676460206962434185564513399951749679648906106877003524793425099064347893921563491811819384216017096133559875441658983789212509177103822678885191112057962333759493382354884811383516385800295182501831387686220588643442858563935528361097568161850766576630319931178403792748506507368400973082170294300392837521432543375602181091975974053610838612248099698601722415614055164578903854176926382249353382402141540645089653282482514467054401993773349345301025995000095156117524080023659329469479433391578788021397025077528047578958995843809702942398649577025566489419054521673380374071321688552137171836130299259725261201027993689189875699568912889821471501842297893456495641169738895529690119356905698841737369671339451007206139434438182075183053431462866293457942308219873212649396057525068137597776362592509681741007582603889843774287176834110730720018392752226055481297223061662525951355977686116870179736886683761713240167264599882215312594970692940269220891781077379659004167600940288043513036614351271146938046758033569192023299511403039621533693300278743929973383738832436398686259215524272403810682987804190690254679034583647341901968435931901133991269811337825055348138248948359521668065958803133834447522807109861939527184988352735856093888189943715844018491395694186004697503370782929971955786396566450588946243893895199295906408056272291679556359122214514695346906432873431993616792687152811437514364647792436370106953331461984053715284572874204584784856045447510204792281901539202582634173930098065553444324212717540651054865481122741754232761203826173924614665905562010124911135578317022661431859830015288302381064339988986689164409559006713106043930777204504445171268553743723386751138289219998041400657788026986111307388640446948791954874890787485171059507111783771303828960655441333407641168961440345432122387797721578843905765402515622278328869022991487864664079974991805998151676078531987260531497874604876585435632938204932401611716268259733851499306176220403679937824023931645632372958273068341711339602731134288781321498210098251239879557113722921237965832037347521821565224004366033479797454981896237733453273040908599432288486597816302627777175977100308301589092836357726860714362009703210312378798525668587002027580464588380459342423506935625956294583461163530012405112721943584487723000851902552346601809561445028473455228667580482416417027745570838961558090587832376565485425797565589076991627275873040867547414107695077246764593860269226556003258729247033450181683218024659511051829014822217050456618265321605777127275561742230784931137914632732129744581099493873347131573111089355326735666896469038563647580243596417240847812174417539527470484228948275092099635574649601029808544537671670934645770758897706194345803777525167193832533190973487838388862081559202027771390191882133019600375430358341370051709267440690502747934663473948924691203105587110735532642871246673978467877605118336792741823789608211167055538380845728700951427989422846193464878092705234748117078583728008592794318549173009941221748405939371335591889403391059482591299790407723914194739060354803297139021545616604240848062144140977287483733553091038877188958390603507272553327650805316612078935941464436057489937948438629189060716275762935281042141877244967892535002406416688940619423035736694658377848323882262051114751784739196561573013118437481426878415674667583025200471490767398541436246601745919392711318150770552882288782366337566616369271345408568394364123589966465189130890613784403222364223524176100074148202395981144716419296249190991309177590731616232793553472381431159931595173871537870929915879608277232087848876049693419353473587375877696972563562427426543090862664523129907350232271643146763808063865045520617218646353690989014127207480903924265460302817900131776889183976438665432739839874086650848228744429328691574142909225158954167674015168297533715751711161302338527336747278457359186101648938774089922332574145710676803903771607866454366841326330065187591608057303316841488601205625877971803359924792337259854326404499847077607919869506518241200112569738881747066229918451037537104050502366841721837264450694787077656883545753663459279563284611702115304407274379728782838678053951329627542716690054478825457585884788346694338865519153290869216107692744405974749964324934961469495342134471783755262415847791298691464373069964096615674913161564045553938128744042480029389268056674059005706985742222976824453527641760998790909375404562660100171948642164207806779879788230874994133094962852588304382953061491765901023529045405567102186676693898245016685962360436602922237015923415164149210861762920383327977641411974148909780795113858630238230066422948914790633794475920075675152710930901007712473176790216883248085194637469886508239208614958500926201734259924841018797424366729910619020364641609932190131882049640409964712545495689939302754902968097199726399082246182634292648464886194073313812088420951570229375026467762984383006944170620384539882469481719039676382158819955731166870718351574240482140697394357688233831334065460807362219012734776804619386987870287453760911850219856456141773298936589225051155616294547762817950616202617092578283274056272020260548417964142297926706551922312872501185872803154433898097338346322316177239863753038260354668620564613123547297889398612628752660096247964658571039354909617219118808830115088041184366596462938124322751920339234009997998497465685053706162288949372360057753826212053812724889241539295326682332122105523012318261655173322534048614194524821015740068700504871389158295710789128874528436799504081185722135308855531478152053238556696948578815351365182906948279658206218217753292663706604626247252138091689984411654141852768287723037043352093689166531835355521737786854418475625428950428121408543503810185145447828628284934319556506021798323921511324500452970915915604029518208606277822810983346052742704934431882658036912639373900501732310019615789351651138176766564627514566986260703540352523762639346411081921438142063910975134687214973066672298889432256813592931715843334602180841194406382728135655169211181947322912664999851046693268309772017628287434840997269721016306271605396142991339951017629009724488873449553286115345775914454434327138783058434590715082004547245746558048020719644454604770292511902972796913861014819377700352780743346764908780135923850503429965702655261707153424975093503221579781269162901997127732679618346555715181333165227554387687618671430445649990080618124799271883520211593021713656871157205428369218065040277482837246244108903983128819541105651654490219923453288097473763627578495825682089108554634366439618088913515252731640367428581995083844312359293680041099250297475163791325304971228690515829423744796976822608883467056633339505399068576880774347002544844140727317639507437933696994966761041586092886331309236415699505990413330018078974133426157788878968688066419461819453942742316493191840363764638041052393244650936002653373431796207755383849308609833486739390081291153664684311317734206168262427366139554762639252023070436747913521817023202885855544973196453083011671278942965499335033068347097655805817062390322503666634114309397314142796137657302779862402453006789239122861995442801415054965782293703999430543999749974674749651221773325902937329378636426671371068867659834014802956723291745062908146272258282017004614813943535809542068050519298602697917868244653736302500037963348602217319151356251345546034912487319693446182707565739645604488612954592142292688109620878620189955748847647413733619367172959607934062486667557354934620410323794938892122263749247911676486187276828123220134816994180705221826862701882194344003550642325570443810233021494188611755287692656505834331414013551969149530315981385732600087397669054866089529493608299110457350069238567007920488861039563653516173639756998046190713637426217128401526408068223490906372024750679742234158082240216508062423739563304135780419687697556211049210599277388053688648652777613328357571778797161088853445402484797523799537944328415734726491679969855454024795933264751601732181339113293177563897044181034176475785648529166286977924589866040382316677434592617360133551417902513042617164402324494589652120974725339692521591771984547889513253276035725180310049139564185240271239833671787505607124794198364462380023943351606041464476937343256514767184785563003089726978899380693896458017572738577007491356348074437824560492320702430131086783298546274260548448657963806719569468531908762984123717074018185397811416371819826259535183891369804304434905599799384608264415194544982698259335304307236435473220769320143757485655605214117079437783905480137681256983669001953983359774140453505210361634640921499331048561918802396141490440994992892299481586180698976458285239843256070602515507122187955171000780985216718320316361963487646144923236606056075859966237097159202988049481213960671884221317627659495812746970376962444770705135325456965151456340118708114132321989266123600442542129809307582025620508134613415914593658512643949410006590221712821432192326890480538870606399119604587220119393311665671771647721679304255232564177034029750357599553251512497309919563375615551967797286424915653590923006777164161139163983071012571308034953252214336596218613463085693712018693971317773702183632555577457851473526691287650034598750830775836038687903034947140754188320140146898373913132713712328609800071757037089770251058429318576607421094014450419288578278627599679038778001156832257867500325679900058165156178387387949740510112404370084882831225295007276675296953508129362686940372407384618537783314527282569737053683309103580118487107920971357700635870458387710304024980061288631501905399069663787663818970990374235508895619115078192191612360577491276366089584713626641859197319321294803825207849800324681103921979820788949540490810079789338719619275387652912367778968969199473383034398047668724967685283141608295394265819860151190000425156840381936994150419138309311329189441590722605361860987404547604455311530985812744167551786014334891599955827350794631128970074195197065288030116667554078428266301198749337386863651830014890759612395542480425701784529387627285696286437107140166843573035302344182241338017658643466910738155892032350719616154573802808882761905012261471257670961316452020237004357962240621915708215757766663003015601443798300278864960685456472519691559680727226428562862675685199527379526002222539735273497315251716638933609583778125036853486110324084635214374833156516436378621067263886150162001844237429483160238778167925548802966182579437338965689072332091237798623679120827758162542227722871525562745628596637230003871162937576377752760247164328202267917679879030775890923540484331599088257526766488824194635092199066472661884479200989715599233102857053439896508283928529920272225357832881420419860677193528301083272735627402398112649182458014321257121820417822098258242705267632673318876038406521290494156538088514144843635966507587996318468153356868765326340741612823600095637215977246742296524752539632034960867211379510792037340192794618029038215225900958700878913513834101435538845416871614454242380929357584352695627962912957738717469236025343904790385926192078007194829622858023459800034562281938871305052326537777567350544907089955436281006467825443344026682177420504326992976388617174346396480168802369682205849069545456068487509078870413817383406876536046167880784305364236041758766204520582603368945473988669860270207733116266477753781028628250975105510675739267264894155051744362887119757413351006445920116412508315023502131683342659103721309505164698041802473393883354123699814929331092388137963912604456349989929795393559214216789829451189378782596280273463540200251117513163245277141650164212431590522161322900075329662147946117487624611547738113922922996009187361498790386909553837092512617471353385680488275097826775877468418980349926664822466886400885830154967803727056394070193318247751995387521782926086115258929923912886228681569024729791582071991966603323101317062938077602153786214487584911737866761647927489460855192372919866080804307073846100811197142997586911290183866728769088972536778798904112734101990651759497856591204908648503578398283031086231743186323934169247365720263935292379883738080325487577955182528829736726056792167481424655579954499029573925517994894810089001710809801397416252293726760735436550414836156753928824319452029085480122756747256931335083027436016837150877456797397382808764300095119228711670343827744955070470251024462057673695041856329177068379343478752266658817797488122264761326518738368043855816534290839069334342024969914471237657570226993096367391713404841525142082601790354993907888547802796315330744511109546050504292353719695252593063720386481988750141730297279378885598902595744248686547022025155350982852018324886079888063755847046185562002446585488503055287782315995940689037637585908441441833520778642971092692104828779087995727038281886080213389232003602430549335547264513088164422718081335634573343133566669337755263207790879312008586650451066875870856007769039606035020981628387632866211030405884172405680669777976562655082905084136553119039464831557550367652878191861129005940949397758001123748253311612798968195151519439406927336250349935962303988992900913940779914550060239291030020512430103698857017538637766105805309819210304416792846992208922550586580344484829824571632987916205466394904201575958179295134537922911310731539172018645721641722485238559357999341970310370078800163592517614999822054585038361352826843693819952970895324810807443798535692187725100636773827037018154888533601575662230753315364436773681358930130617319344751451244152801678596886998871270362952143853035075914448660475756371803010404353041764163356024834590414181399808898207532794826294575338709276580547282554133896286479129844419679224550977637685955064083179291368100894822174488945425919240710011459398995955742522561883587034150064355104479460233419269230786019073219574310193231363664261045407249191149892896916852573729963069695474167934638974912131238365809424147665519850154445732209222141319419980713114782756908491731322223330640865555849089430288359187847047006924603072500305586484081272493240683452810151610413919152989502484035261682228365511669222120027676849648990049154803890816655649301554543046694322599342619313242600755725492588628468281085684540979681694719055490833649883337054800653031118321606720452236976745563801414055420464866062548341611219951825025565712524775901704492256481614473395225774432827029757471967576013666067418658672254892251898366754874399220898509813309346020569610948899826002637871436223629250589988969773007245869085660820264930609953962113844524258687961107087649369793859864764106062628746860062001134311994099242036257100477339026681589267620786640209484621768284411531231070944294129298775334145487737572414445524182625549555901077542473593951459238205939743996829588113444944042365112657564036889146627252627633202430007279849946418347243999288267155953212953260468919436240452189859108698736764445788811860438626899521446269443916809031784861793441050451468913793535536670554888278314943269699299561156474842262713641861364256664533740123153400086113824151511276579581909729234401835061616699537234084373780894900687611612162802804579913494275745793761256591993292355110287330967405072976669441813773708038524337000470913368435287461517617745995840909884204322685089468130698499509795453528720325559828267636702883012853938064765984998030357728730831121246211363262413414044927875820189932863578745466367790148782228154786906899391591917177183759070834323088256072511012135498298974211096595955349176429334583834960395005558388040187103413412713753359587078407682919217088835000108593189589676742772311949047033353614615045641392105145979299397785023068389890091406264578750586446935947823807451425815203355863827509620106947549048582233380116059831138419534867010032428079084362840311789875385214138698721881543760511778673505376061111613589803454078563776628436157581947634511568241964764297606429666640830847052068401414126824154324847723343447296294839496032905829864323980657139049670123387531959996219175631448255619329726831593861007233701032072280860974985318688476143172545069685058632122003226624360734714199834580002628304065161476601939686206671345411789298929267549670254877696857793182911550028063168002700778917164233533553123158619883083732764393628090597008499631595176789529731887989851869650807413846954423541333826471853626225332436413056989420376461670017707640004977425755713653119605325526982602782954904281474583481953591793205322445525633522353523892753776768059618454144810911346015919484892445556954500031137132585358402211338277878497516797942513325728622780614045047204392234738361846009453330493697502309810494937881020116361585780263266793243418569686745151866582630873506501906509903531293936562927508519221558627088284903882369405722707089738843859603240390489517535196450650250377169122127936310774240694275126882258832843160059207371148944692903885855968516943501624331217957341764283014294666885368183680438462601784247729192056434022118699807832522187952956410145563178797551903307189913588015948998084929094748021208810122510062996050216940729818320680933926964051436531067749742349833111296976470000528104977007110649063203929320819949919559788916656765891446462741319559722071469064551565014656975589495697770612897121514484654215277064333884591604127039632919173044719185386623222741721722713058521599629951511226480415580240697459023509036509645492308234667637593896284446453061117195463779333266394305731879664105367129659514541572824157804461130234979553187959894099175827199235254332841653716138022899338667543774939636821961771535506539757098854734857713994121850104367788377168378992839885071109020359712732306651524940165843943641078579747662627454455570856219805735958293094563544573808913461208368533803459219225282315919545463433820931326827955598988321744796136655599656883364356914504554717159018926897888717188321297765960570466283120402614730515244734854339154012877812862135906752504482323547852364266820641109170881811737288734547897801237201166818216997318699330744028591125301959177785370498163837498223210450808870524252911693683193915594416246139681634848299376833555456025126633437934085186455673431429886698465292656151810601500108054508107347693025799757558170184445229510326817436617471103115492518869472116013672954932168882887275733336695381344992028054864233180875327152286967451418983863958573365084901576172350260349377381350933617475570924426447732883426064226510451568810293267438258505328357432324491631571167343788648125319346803424967344942299787928795503845167782586931734846061839678110626707831697029559301659761550655725452436420489321977263121796244552100253161887537763777523575233914451682792869467510835606680502146994177729628403331431889061485342427778765037850999637905339459523836777567685321468941473079961634415252169178367754623610944644526718538402950452446366338448092602240884077237602091411888906364954631253292147852705310666261297485692050512392403533010197530722627785600544661449357106530502701744730824420932165600507491232795422484491642243886764423991693639385407002344440620849143764339509016189586592039097924274625404902162258672655992838565315706314977675975607635377468367856641400098513693199785910894877964940769537385981516675851794500891566764336697988168412916961585344073899118346190260341900110532787252435996522116851342517583981433255874902223751494244961218488750134905339929889388294335461641651392295630208016084973425886719971884668446541162310613909838381692190267733434144674266730519585312179604947965433279466425123299367141392985165104489196656575325453784715781994023588860368784853966611014878267077587477845823824892417297037346403510468825851953831569373756635741178146429705821852407543025472091546346694188701587892441196098475625067690725611992910407897895960471147898450791183216027389445169455673643893405442057968683653178472571013132797812214841022768060949636431834826619566666953648855006210402744979391968186622547911778256945523291172487244921069312744680391465503618754181712079618413490471916225722521663067595865993260160179699001717692632759112558042407079543823631098639153955364323445648090063572215851440212141913937884953649969317924705252302721781891163131539658743226791606448057644658592809443661625405728068159004744410019484688440745238915712785331171627899653530147516189966330086840914161360520697492145891061130341770102382616905511036613650769917260519178736816118142825602288945305835109671968687184916063329200391423842487067931959019976143466060340702651788089067315910672489503236474205133140110900534234976624243673455289620202135010084642598001793041576558142170225125094679820813322857461540480695161474065762811937178273603728430905330943220580639848274051509208829892727852876523874575185875143778368335820667811453907216378198164581096886009180795087157574277131036444238698796864385337239483829013417664234296768228503884854420847924584569954907596178346578847058648280202429184554434734347266937100716570577531134124872071269622173596427866410601198860818481892235856357975832306875268560028941018154098293719081499059315925217518517644160487666511417286277955477190708096144209887501248962889453911717076282677293132294205741040788691630498561993636513494567793558844327100524482652493071668759276870854304660465734886844864374538987389519238102868115455767009755066346927211321730846216017651100608760662382676500960896177774707559671483930340985536729116618587254273621609158936857891069825754242352553770190013529458911698241080411634522524965265599840623771183840971504828687126089196141980677556674821519646777219871290309161866034581048886309396834481318390546154114017971704761000256273410329133935376807353576282653338682313573342272179478978066863750726510130020911375413603484853470377769562219357633141652108960166343934983507660824990108280353009053472305604856005248441468243166308799119274216991217506485132041269010277972676085079035438447671980702635002261011434956129761408704897831887606130195547183039737028330388375492731930329137085720989875756008791482643963208001655355175131195894780866830466259145298235217512345556841997513437807077330542741115977631450949586549265395745927518976462546609722049353279980642228142083777465466132569701509411599253130159977973024823853989875892409306165529473194091278094154995190486185951738474423294827253167432673870134891209945993465223906579255171904646134351617301978059113889715519667503416732722854566169779106230715800599297910887088740991933094194107727463574240086577353037445849767469798038666273701474209149965244656028486999039406761108335034701091377144463436539916171330103809250849157884644528992171459737941905726506944030134836139141932304569421840068832723202787273430324604547225722090693122680421837247811992509149772068509709020184478561600547512450044202805392680545761338885676776915220914896626497660931950109472976095524474844297725003288636312455553958546033071762048484144312010132148280274103716560908197114472064779044930068107491719681523111976602318554273905782435170307079457563708973311805036755189830881861784747767157998087168469922801630772479524763511250973168063848718858588186728698198469862353134122919179778563711376056938677031312205627372450802991317264008096583821999628092355914080788762635455901486048777793996145940785285597577572456478194327848026903504404441264183424535675388344562298480850333056529566468704456792141737237588744896340052295905015080165044682470764900858516889262919589297078207306983951346319960742615787387500372357890814533663994137454799332742969311433799807635785267342490703130434047141754086979543538009769848388491968280600634292574673728645581425926541802451084833369109004033390942587917772370367454091972884565318332280851893947235972715895773853464423070771275903625945235407744226198478323741215989981392631112574681500878971081352976850999005562474755174465385019282165220166610819319546731374318848568630603635351843798454143351835052285295925735352546042642390963281597137740060352228173323503491159452276570552462857162556026532151069248612753258684650940229529783045489459965455661956533074799329672111834241735256236290182614390571708792457018675728797958849833388362907296038915243035135340863386852609043177982701718201857439683299666637783896799355293641109698574353364144703075342070813213436771525353885015592859019476508745265591661126541362589822472168058496416629743856075532410717497297876247468341469015819241953027502078648842108007212540744219745709633735101417118104703237584498261617256148947240512129828129851466178383799488288971220637268705405757084741448962045018854975565383934494780086960218183259905133845041841916164829125007711792871664827788807410475826779863972137694804252251368543178592113477973645743850393248638285242187586339010727615203555994575048696819150153035380390591000693670365822057296628254279224036255838106229517981862322004184656333196350030985425490842243984841697209930042977896911781270587664427699198116973465101111612798440687947405298077368165631648943570949388293058411501843770526656432821424662376030064537289594850778035128137499622391955903368737244572747465145583864699015988517861451083248479666436692761608565022244355220494745892662490347023036897302653298675186019913469519487970333937427350229558985660880090249766148371863759445155154182008036660651749080408252559566248664728994923956523870584792781825600624241108865206415514110805896716224772125731160357309639669604080966067471701495014762669112951113371588648242740596285724503132861411695445998454269812974523784639554984429891069019285534479871171380670290106468895489715273444144659454323848235921648782408301162539164468698661788377589967670622378375505373056039284129824113477019544871926202764352861991482453896606735408400641598022308566320355831595110465293450874736238176824428487678212472113287189596746997775496473808661354685170998239572603440045905035263602941311618288536633613310390886963354401880043128280118493193001188467137923467090021038294771150597429186560057164819093913761193284244737790920667534937810990979310460282553357531871661061118741386419890706211254371184045031441597717847318665012563604139940144124764447844194091101578828694560590886895632595427587917653585032285214549196604431125369114974307562046489819997342746260906871874273213033868257639690609702590265357804493588994947635184877698563701871783748807198308095619061545613455063650491852946341802910383799334929836578211664764669944700921079562804976184056595438219160943107569014716684099119528278797704751649370589264898086756048452526197137597808108466051400100066262480788720464980654804142323019506452517518215347602567793779639973681901465310946084984195997608523935227997232986719738922215739964510254525361970632974639672386257167857456390538581071903122401400490542334420926283147994259897308428721469515840580400388432494200066936913346465602941239830185461093155324967076333822281323395818515641574333610209173954011189763784690678191903027650872708237969602378788779091884629611454439277248336093769218818777938507329686432757039749184788943615629564851847092223682736781618873441981269227777891500104525699665423328110304923603495287230723339011542390433817896869037207009857295361665556242816973588593059938865443655718126802871291527755309359710473484033326827547550290277618843339560994909116304062280623744094127174214429971361527878199415112498309008575763990430479527338173553483798290446858173133351529778900125077956407833942569094966875295696409335751487813260719230053327182232811570264970736781543937875474809957862478203416059865651808583986322617738718583700990979890835821842367664975794301270616391736992667323053434999276305420714697554522531561563525080472831227366272170121556650624111032302239801878701447907653524785728018863833927929177030384551182777902444544400498651459862458383368876383017013448018290981396697416662656816579878494625240331982599520929125972708814794443383826401625259904342307394256659400141789037989525976428011867898202846399433996212694130591282337671611853429683999038215656324422434324851677274896041921062086896133574028319485329782740433402584570305657163392483153174643095062947653350332796400292365648138876381989148773466770996697780983329431502187706375575478463550019764319637895565767996567424646847773890804769107013643954341411345282803285085441973647332480835092245783064522786435364729170609067530601271036040180904174378780966538014567756349398638423168061714437371440809453796055705238454663048518234680493438887374947037416757133166467584570303764994920837815603754871171430507932268483884400613445738150287106194755760493407227263247642232682132104822215432597196793110947572851262363813440714313822231838530206171084730542687665620019151956506233792959874235426787120212112953470256129755018890261660988715292010116143023924401193338631184679195794155929433425891974303880530844512097136127202294550900076300442886280312612540494693842756793975311634437199184317704977762165756994480255210308540696328250550686883037502959727044741567049880909706492903638697367186199579743204191930197589175833327747788972150671114422269176926026207282485557660778686424241227458455743392707242124216360787919732275578182753794615341280563950284081681120454002703045045471894852092031152395162263845230533880361319450289134250572016723097044796976980591966066292020673555426229963080612453391151783283011442455793791438611918538960110480988059331985418197705819026072608862926252048122303626263208913144447848124668782060078401258836684237570288889819501878349651603543396579518427425878173143527741154932450612627934702295288467288391522724071919114771936642655143777040438313420456926264056655773062972453162282252236089164925116385509560143479398270071377599470565521446979748107115806905733807327701199240210845055908498164569834427045237881639365088188423992451043270895697390928503595066578710261061206010647474563014454052373992667086005774103370738950654401911924622668750325737577988773288619150499161826316071533754025497901398357834650794184158767711922418741850056409768051893632335594185436596031258433081666422954842205022025777058830493603516826442364907331593714139195174374776450015801336232907883664113725514148038273050248098009842572757445473675303983378781814449704776728847499442536182637974535285627963262747939821974922213282387661869067030439243526422137672599270413280642567732015059673301768777650856759840714701720793664662500859504327756990894824470734600500967200359757214834006391567606950923401956640470272809400276805981597548450560598017451342291157706807138282227176645038181462159356492597805329999261514259049440464529884660470309751664623545266127003828787560637095177529278277024085807479734294358460726147199341533554284163194167323553277441886398245537450546632173131399674483924804945049396528628398332175709561511725883141010260453048788700702045603283801741967685635172865963122877905668003783128584046898396322308611120904138221342149683188059710462648234649741880432522596872918686424522179769060886435901311896850591181174148865920380859593329572331586265434685507624315756789431680421189268052279041325424045318190596104516073884211531729939727715598106242827030007509262711260710420160488235844137352637804938733327465230187590099071133173882125127125311376580759727147846796909614383848595282830957708784580103144659394268466797351743836455834925280966066037576769263662544266306481591463937562989186163965120943382665752396567928471838872890111144356019571471530735869230742358880965576648472126456000745589754639351214630193476246653855221790126189814253173769938978568416733606116074388192875081651020958629072988633746397189287167352144162155871627589613682859364386208151458096927914007693300144682846387020065818863640485335020770694143164062890940210073253792162863947443351788788655940432001348755585925787219034954259883613235263486334870816726040608563675336459702022199038758833160219027793965878015555834043013643449743922247521915296796498541501514414540428002113367044298989165132287593179579937367146597958031532069468738909103809554565859520081092262350747509952104494085400152132520004625543201608064949457822645249980510002755366340281230802388772788254577786203421762615137386525316113563865564784360540589142726319440142903437692632419582945485934766789833954796381795451603617832813053836377570307338209101434541703642825280794510915688104941153516803700587554527342595126607767022113086242322122040191476679108324469500026865073874483377867115605899284079000979657602623555617074331520410204280522160540078064394147653214353291794405363320934758888209149899180271549028508308346123808529348153275252046217621596147314160386153035257025562000646007649434663027163239802494552452082231585633753039238319716697685074066881476092687458950014545343749885066594962002786687045032404775531568489709792664712006035037893329539048062056084943792649362987442935858770978560471401732685291987022967559631225526726027021923134748897951522541872687383060973745459163836957356067881903691926473148065410590396843365433504831385765039828671330496823075629019469345381901374659029489123701062900289414840254297072386218226822805860131322827135939642261749295899778770109917218182084866749920569235491435421955577872242121360676807587899226022944457215900567760463068879923339884289133513681982909681963000580625722409472219391306957279434867952596099011812190129077371765219556450543904553974502853877297297973947595720585067910592250253619132337426772537969137887951243295080145798335638590031064371663426305233674821739176853440388061237705067877324761259663891276289877286241960170886833799899126474704989675096675168411459177543232184382951484366207081661745592705009915567449570965417159426524583996382731564439349000257715967695778271953242735051938994547708693227154933250039259715209755657079959969738206191021438061139476380520398904110760888255202526777110281036497897732944816821038894075695211528980120785415026764193323213248703474133402747409118449181543575639463882589361244013618257138073087730493844975998695423546132289599152998235203793709244901963274298142921361627773851891382332585743208339038189869834475997059541708555658127822324742537974747933380970036299048071094012681454641078742860624342000002339884881016812788531620006706910479109990691837332910798919656460577418875296268756424059010321309563959092733864034878895610932276393402607575981845069305336995247843134115038204045681153586900024570166723698297217444196181941555160367405735339188567094304892260721676349742041881326756521047156676953375031906569833590797451939147248597247161180518032117803555356119834673690487260833108849508889993156651072236467071241448967568337760089403854353902910321763851444894103875710613111715544544494314889038435684367156046381624235035056866917319538997553049215404250071384213059244387967862363399977843384626824198331719127436366274423022771129226641905209699593420468577087984179587414538472859746077810028244533212047036990259670566922989631036069056511866709805145495770472756006436147953415160750382847509855849746047290838284103027521622292046887402273062075028042631763133948507568449635833032394670582928934748008783598520215549653709009252215151843734603157104353990296078944156723109394568445608970569242950640335602567954323865651427888654231257013658101699768605931712014301257708421843482377267179534472521054358084733092893109368421865555233155837537529725984095785105885455918530846600691726952628514414996417146720384416892326616325515233083522180182245102985206589393376093221505866513001276967202536928110530350806380318302521312152615425804486328588762658264735291898903678107494820650037375900970052120828608025036772451779442438927051656070537512700564295681783163064654289874472938620938082670716025329664711275263133154430407425137832307232180900445480521862759686368071943348517493710316780910223761647756289735855933539386644202330946379775406024973713608142583946017192362768226156313234335144027845123452161217358144685425130395048173635263473575955818273912242052743871622515736993805014707469113978572761417666192840191908504875551930377573041641249955991369420080277485980864755779254070373251178325905243908452831900068796518621294916951195184442384982599914116277311630758551493338051920033207626461194376132777412731629421397755636423084885950344563923159394366053617468735722945574434175189833021032979882880754231382725200364051456561862342270901813381464737670828275929337665854848440305814892232560600285413749852377549996957277998373424423626620868388895219509815084260112904660625516930738091560081084012834502023601397635407252488225659642986175911582805686784232254439986561374168663664758139961164822061026060892529716278820990368527720778481842982937870950391401688524268098496962089122128041544560074164687608882502958668472697194053217466248286214452344066594964080101321252866503951402804836952782833193205056127293504318675217342714750133302443656245353819947116141467915038820687804734280940815982177407711946379380312953009348815189249241924491077490844330926871057456163379090076912923095558018355707594493207109291461919484392894407285159996424196934215783163842093683032361254032491377730357724575302080805079910292584613801692431542205891182551926149373150223252127791761186205057558645758147090145181955376852956672473849316511688078586338472975991880229368564995139063544216066874351697091392069304683350313264424280137212878603528429524311074654523764538736367377015849446200828990686631968156815249458399759977879329570992922124879473177442685401056610037464422020433950173990328254743202843960674026400718583892724708902435836973052051943398613951785191003253745576193278151497750199244593147745820995199165667530939768051242743239553017828410558511899679807760425099448185725981142798235808074530614893807199924291033334697542939908072997575828463940693296613701660435849105003169883561660466806120216430761461032009502453892305621367222045039663532052615230058454529984026651858839151247713618109294192418112575420773888757463419657278293980381127236515670285927453214708598792884495385442615489003464023917356390065970863567996696948092228629449624528476778654571546456739585199106127303850807844389887531998088243036285569260803417385201975954654558314679299911809235375917200059285681224808707334597167291029998759650303283485254918193910501721905121778539676767987082266424183647003872725905357799950710869532294200258368199339510435420076114084077031767491363137194979452076653245385472977406863239799837401221487865789902527801195378958713773873460002576467911835975744598302269495036376220785511272923618528754453064852701245356172803343027779233652579045541590174680490534790158863960375130733049818106430121323339802011651993703510567158710444558722588186419296023634105059594711936853904189590258807915029834899846818308103889821711643115859729509880207546737647538986506441514294845177108717193983420069261801857532594856623075458012467161656459556062292344431253084357595995495269548883711271568017191576020836303344074135682511814231734993473111264172610664328741370444920350528616505332730422926561821884852729456050904722380597276105364174666149360173720654242493932866583244707052488483032087152833547961035996313229324244421429622673598428808574589785427673843095897790887723795149732076354915219305739515440098488144332515690472794514493585447712686113781305070561812172531977105425045692698245323298627227330055317628756097811971094454367475148485095844928202929518413375174330356527155711148487178918924547797856274582970021411612714360289261017915269782194371736917327391416434261659930889638158321211773629020990709767123312238149804392073639878879207992138188891912315326083912050779343742488767558377039037977434391821216578456594706339251448951886189714380891394679074988136010933083081153032359489023147205292138791132102692850756749525895747111695733691808743572926184732066056078512313661117762384756823891873235274276983629556654798462321616690418799636041690254273639424135264088401290785733408460641481209929208957793166976497962162374673257734432694931552489533155524993641165459593833290705768244163000229753509125790799422970424570217071147472986972908400096659680075628196986781068520850281006120973642471033504635732754997820162934761530084887645503358758830128149872407659054918836324155102761537958864913374251694114996673182131074736806723677102316325056752105268582444241716000960916039851538855168619735381922722140910907610689667179774255528913265849521431500983699751973712183561178338973899750004235069262015131469496684920569356218159342264822161367104412978254728114189212709612665956998330035439504828418459793740542938345186166247607055289168724377435219117696700723703238847359254892612003303650114594650578765290723032173139792297642476808202655268911647633640725644887507024404830236396337033249207293242106783410823284024402913170390056895640318557897639129826477461022175691644848383849697379901747979148014146159163797950054717786149736195613390945743022167497279837875085662920999440580635878445830924085745484397398668829435076281612054528377681193015452641883623380115998780791318741847542909173459715831971916000109535887057704522629582813890360017492273472513262114395831205845133191791762889344538616513760587712171246878094027383882371189562727229801057712761607471674787976477025311577809467575480020565729774254109460778541958121175574430700510118273574878312728787773658903917175426204845469914288407825150749652324220178243424629995717053230812060469097212036525636813318624731636263599350397013181298388584571093475063218380180400216152675936735883756578692234385103570953756121353766635960631786573126014891179370083627320457804839884750889530266505420226696807235062353404091130859154558652826788748098727485786415291793198136395955191889778933657633699578168792251905039334558415135155524700047527927707422715657496623956810341957041468524768081181356686567476108198021661531581107027055171610847542740551961735761285001120660534267846149637050400371440899051265970080440177554583609455238699210750778340383285449826451321276647122034430519582127227757524279404818429663266420907832129968360521646053783952284577809435709432800982285516690489039257706624459078541936436540397934669962989933754329976607578695987250978211706292729259907403871704407509739253630694931917440692226585656063246389241941011632877021024272831994192060098783075300614045947631584078342911270072756978841322883213879154854460831365579124737013455103361399241788893209928804082862021680767689652731164263778039802725028831159465684677672732389834299078710568930440265325941808706983342733052056531737074404041694847402396825115636340431565572999737892884389457850378864193667029588861598052613928130630256038608288545401036276606441266924070785112273780704344514608649533301612915086416358627935689722700246247344904339800411541135575537340328085374766443916323301598856820403496178956492350484807567411630613385239007416673537131482543683989652478725456102442359918102788789153575485957412870540081050654221595909398398682685976571032589023061847354604825185576833750073213878405302688658572381458431464870070935760272527028333721509393687744876984168039449694429202856085638281472637841964471954190197622632564337765153503605565127599087343211879023960013927758138235374038739418722258764426375270807173810991624425796723156444682644341221331273920664026715187566620929856734729723551749172859779580467374359155574699087734980928640168186506921265364253020070717898917481006981651489378742989068713983953312122011682456420450772937648375168131682164337988530603174082258932550780094363929999808017923813614930924985542805939670667939792143716554070760765606962222790337744455661352609994937877610759543834561094106760570763675146057794311318986090504772906893491642906143475477007944924868109557825129688828527811044150163944539001148084514710438685113442224691280708158723623092124086418671910139009675427847248721967119366836580831622091198549337947566321688281484998628921855213910432387616437146001766584259524421209011205856131884069817468792448295114899367059427904852576088925510671263638055997275742058721732535079080987963399951526952367054929582311255460225796823268050208830644293901970507168794332360018991863455899594657883881417946043720280057893826194401324501192392006891728874452264546856092202085949881918021783957150336912667478613094476490606253567343851268575325766144963467811999095058960730160187720646216949209275412329647672657203034577433502226196135359592158859455771195364743467011377321787725215777140831267560564720462440090711085540672481805280425997931310510468796468577997300793553260627240680617044924200302508243794420328749758598723375944342251383636121482889983514858899994755151438136140661947873277524361997691916754817760092162762393645407136074765327974458701552032622494544647152792220524002715531593791911997191749795740566426961893105354342258180184263059899081165501119622684791585579634386337700741373673518419753837047075687613513585877002614213921815240339449377121154804677312625367936966444363672750650127082118749102640085918728010453412954023888479611322386609089540928838687799864778459813715121931246326737351734898516025346276635868800999243446956994529934132260889553921982618254022686206260343231303460868296392129518995633912569454519404385028809270352497591216106102623203391645855458386216831571581165261619789377214711065107520677093864347044699631605599384399587468343534339757823036193712224925418990898389165217763391410573019286409283784111965283009301087211619583640532391421044416960760938808681147483238444801468704821848869606581229191331069722883602866278583488116126339995329835530891783727836882205669340631130220263017050425416486416326880684769378723379366699598160032800600516090812713207817586779774014560667679186335080643094802567410283601123410930519410384416343764928864979388852425947860674968935307192994379455323219203795602515279804671555976300145085637538964169017855983458917860045029013493563140405453374404098035532422429450804515878199693854557689927263627458614073126603713672362635790899883510540947660967066026895752907584379607657029868355605912725490903152454457450709998705641011445521117898734359157393701684084898298871673144181920504145525899622512313830016812936641366200817805469838817400055160165055055597234345126824497440167171655114161753086818123662677395655946704451906123807298676985646530778377185711790371921082551996919491214306406928528645531772057174447095213965293678301752974472395844083453640874861501643033238381928522792406593144471728407709931182908782021004983238326930052104875328375712760888389207605983543266970224921813337572643507575208573744664891556005681394034984979657310367099305712806439677047751055096533035698703547648878788351728094566265750079363375154588067666826537698786230565181471155281285838237141975607237465708148901335351247387076668677440817710188238192819881388260990682851286785452894867700247542190790614277898254657416620733843599655041298186686983770194337376726559031335225715877820457745294534669672280444729483760862802523323632724643108589010414206041047315094417026364434829682041785545174734459626932375121699212122582422527999270773182993149706871526412742306749539569751413021454534017231790506418571472253678117557641231187040914152378031400341231661791737439373209465269508909599327869384188261367032676397063303159714186234984098173730583107592616188268246425531070571159212652335285511086172703750844460183452859211007849670013139261504598202827437344719795168274391571762332873875834060079544822510592668619232171859963880053977473271079568622833228827245339437896087526133940156497217270353318711583424124136720226534679495019693011113401435621093440465044013332370398262785211232755834022398479298722904986119114576724252898259216621408597802431146544391238277068896271698160394357023073087360295540462499411821386775729704265087792912784027070709920572933850370591654706932549368266495042544771845898519468804804162045641192667834019834010385100770317685617351566290813645617564909035660382660196839270841016218759004934561562605480094421418845870790088933890786798260745839699614114975999324541736173268865144847034783936274875348348688545059827539613303799586165988232428418864895630360939995137938308717633033696008298113674839405113494529116929337439057539888339849253870228979037344394557325470032685655670949306031121257561598295678166649153364346507992815526898640062112575392025554016998123621857317901222720190205962215327632096531487014843014262144082573456181362467506383984758773600017053319781042774343038244656567951684914661980851340848128379277105368562965422411845587254693070709951416682226921002019210242268814342291732857259319025239500559914090987203612511955239473401669425964316821204142601744238029215759225775636273203241609673030515693850644341160899956390729676440708553842632678637875092346979949651636834883454255149632295266999811160429276467032535716338468949862094090881668410937414331258862309639246621238335910627813329353388123005668751854235074743478935065594895525279322964825822844682078937764852034141241057042456458970367613945332828136901594322620329509850993423147016097135382181420901952228095303515424444673825494594099310171685657772971252407048944207398551876229128058797224881520112607105924216465585229090877687416888929208506084421665496636254905044395024318970663681930611664001697444745832367239302878155443893927588692946345739071017957017626568963520432907300107535265216554081210113247277563340936831127941123183340746962159787056808867976204077608088574563019054616353752704044238469285574415694878051176571960570037229890894883616236977821052255690625533684843180298425783609719437191032013436905971165129176459962623053053538723660755847468441580112297236486060970204364764760719939201759892855110293927682966647328889791411315444982773213146203640293635170456861534637460835497726915700842307806219522378682329219689358759533076211134954508109879186488111551533653833718043142768798327555102034658088476991182251414125563034428623361117741621842311157383545722854299682832900823885156471546744249487664122442625547532071008832595955264520478109222496736095983855400480592424881829931463294310854885329143171729663743710985174272180362688415027625624288266945374950039934162748402710517358348741314045811181032873263982074101528003259427842017675698065903388691886542263393132609083120671383872635659110492785017949507565594459752061991892945129764026755062871295616816787710810849183062029097701744762669822292288363770680957768479084342595427574611112275827528177862536191605035867937159645265622981639602114278917569813171530885258763639389528369853718939045475919659811177686821176987208180936173185208162869441284136498653188971578938952198639032929413326346036693741124060710990751622649173377757451697197318964292389406772224025663947790640416243424402200063141268738827388713671778177795505892683224834953353231003989302405700044862978399356959490028027038789215428607164632505743940263561340598605702163625814472109135242922736720343213970784448717216594554963674652939835320820521797842583552793014722699183597979274421099592860807161186460510009275279265187159941200624046554928106158043471839936606750932438993900761522707408135907504161460192281269138204151799384219959563214968947267092380037597111686785370444723600216149969002114006618769969285983771436553450331905800508794168381129232440131029530559799117906895346117595164265039820457270722513131405961047150848694089721349069293152315651856183994471033433734277196057789487021799685263059084830248265908697704456865159457896326336791303786480181538255147144384202664716819110186578543012615074219044216558493024171994512621462288410405503115449309418988748503565223430159210585577531514908984411990538281224406884468252839063832233831370022659076692255917383199154428386695412247339816402186130991587737426815626124154445505101872487128253413673588725291883930605198829728661504227169718958326926808914043107348512478222534956858050944818343851645575695269026777661636861381888035547026972419299012894094516725154667587298430889192438152973409793388576433188418148750721908405849811302206039406768095174293302758799741577785767733103500961761673267145157740752694160951209345301869349573926862312564921378793605424999722828198221990951314676223245527703442663149170371477754338320943690828156168713161614016165489942243137907404264194207313922159207682457412823785789379474142120236942322290439834987978483314737018966601971017174243231012825920181161250286696263857840455864979532357215031306919490634906766723255928184929558195131795179007193317710920752361409713113333412335370978492853873403527441641579969033727281170436669697591114344620108381661173683635683416384293525947574854732758795464240386641884551602882037414487877620758109969701426595374719216200014983560569070848041812929606633699705858649975107270008971608419191175984178438699981909631082343561752240726926407859424139133065880801490413540872327118272548787911694343051113455188200571188647728351603985389194511485315146261154889357554365842281690227424744496720014331191086836844638280718137246060808536646536635736636187913982309144262142813764321398968004373496481068109743293906978950448485463122709565982058964123844076369568279219407470193429611034644634031668168536882141901202155008176810007141057899102304937035120128671739953077067073316153043442222797970162701813656638035045632958731222149845983079618618769304366843735544955727990299822370659776752144993021889048893561816416578775666000476931746121979081796573454175636184236218081498778648996704921863348746764333792507488814756807688186708362569909522534683469412439668206180742720032381660222396384506022271696222481174830066011879575979990696868127808161060741484798934212474578187283125714505953133540226396329281515104396303416640825407234274399407084231343486599289098892786637039623423663020105633011370153948645270772037227045612375482214383218443143106746065329912646282261876006981772505351656302702222344167921997087635387918369614150824294895069898681827075533693185603169349567741129010243789748559206781401059727084366674677599476833509008292773810120073207370358470052508976557518725893578006583864201037876655042496105568315628527748588119515351790620011836380687116568075831927049586857315432951319786890330383710952442671771670768053358318420827901170546345874126511041103375063412524849032636126607839228907299844048780935648948682916930153989110192301516788205707638262205894865950653518908859269112682283841408423162217778658806194970362474452951471608462348575939551781933108536271316133796564993141510165785216489082829186546224389913716955643761854114268230607513158863353296228871031964492468362551921001344744970352972836433889646210201730829046594820050256712419429094322899050158654539217165909053030957844678504446441440989713400757541785328712107302876311246288236203726270102507086648034880614056065263912077855942941423011107217924028834076647205278343536885020426233827709980562120881759879726095469251580708206309170713102524627338384220636619859520878335253748625580999573341909262259729931098033865692637248815549304693389742130902596033654930960070063463346930910939167006984791385051799733594768431845482132088131924422116472677150856471160435995196336008226894688142881523421321088325772891525474732474900939032829054400917374741017843290236490660587177971250504505208960199313525126610395274497737579685777060883408629771859799438761083974185396850006485234560310371186392740967676958866475016534546001880185410185540285938631617790825958242367226327926250101587363245543355358838548424455539313429585907563242329554245235809982096697747749682896452658286889206813704152437115306286064770865949728822105810029293882388646357262511674270283363684025030306835527038708752474465888136033750070859210065599006319587837474974832542686547477648477459782098652317412055618690748429056107249706741902175839855896633915688157795395111252152184681539494610735527701714845584142226980146618194827338856218450846911904163619823393629017222720204865397126829790968296082013381398428332004609621205191804686723976098806715076362180972043338708625807987092288391571929133308123018328106105070723301642993632739540436208039071651055825507396209648647858236747791251865987417866899579003870065304739420967955511958575769291503858687836826815143642307102433688831965970871458206562538309609847740717491892894164414280929683288614991206381907241297238062767335789346462861817914997390892045424281448025390309711372107059106348779790842863404034331609169970332297979313970047024458503790591562406364838602919655437984159708336064759978092827080349020981262552771817231831864061323244153136323667509519414706350113551390327102201934138899497025650221809162318897923608308707590704673817676239699615282523285937083982858201013398735516868119692369309007613920564663520779446736380345561799755392101274350310384458445245853984704645430206956909836774092714270095503167355626099012557380806207442327721480726014009723690523643413603765218860797280410576497036903243642477669771249442465770206145464265146445547134033095637912807906538103892582106668476841397624163136736575012607839111071807906049040684869803109393436603707948468476536771772193240438901772582352560169343686003216605453809418027702205870650692175297710267250119705114884047664457864417169939991770843406265768413148376454060921855056043211508177211607688661493829599949608482875506453827472457329820514160648632736432930143430002646933738973834975884562182786198515994160207200706625131176405383972573633101657000783636128173439026939455912160411671100021901575538593792542954716666839842581267927589185366442978354676882210732278745175280246738159286707855509419281998509586336436642717405860519136946502480100467455494984786656397518054898002884317521925013993786424961921622160949439005097474035271575301290980188324191807000516207208146703715065298478201092273451397576773910079263531579567756507874561631312257386598626427114317044763958029280095572456375695642508280116112220228581083579234539466324829512422096970308966189129867286395731451378607249357455898125058226879116822894890924703051242375471267468551039841951586952185726327370525355058087112978977545249904374622610300249194715673616245165956224705856435644706835091006998338592113526485501390898662643141855607518038420614783225419808444383724417760346043353134276953691821618331174644028187918860014892086223242882195458678950142407805342189045485167796091157849271640607890896843096267751747678733127281161920576564633580879543645075233948792296612286126978708657120846502170028553956459656017976277035048255346871959066786713364560785704814300579935822704160476806254981645771807725991065467628265744085345685277420901235684732425009555157035875837104968098184021475277390056641187274746743906685608050052196429752702326865188726003079817018168176057047618668080914672343579645592672319591840689078504209373362739752715912817674446737087967460106252986530600407527192857191367872718882536499423081853677737031441086333278401333612530958622896022263189472146600594127831829102535103677563809239557372049534668847138103739057907493748428897888317033166207557373085877522968448990416808610104454565931995581096562894361482941824147116121031797250478794375400675694596917537547943243532419663582634085256470035838619649592150208239967481726048297624924497546102960768588169484042286314324766364283413521737097809079422263389003970556524844230700535137267795819749633713623577912971474853627547722520410224243171453764495260533605355494333601725748628428140664162309065877514456630550841774549794452889412524193436082905313862539871792506932709957180528196078760178729721460286820820235686833908537083366567619045041729500187212726743568073073674949032145505823453289166292786110695049586221457461205645135543138360507795220359947736495793136541968642944004415418965336812016276563349061255122931748015741329917160336381221767326092652935135418690245749403887839769723173861410990813746058326292798344894919138955230219342990067308461466069509907993274422140125352063143242539610892823731876935183466012418275256600356040039215945318041294489170678707982539359367942387665410252610286017019511768952215656414053583141830294857205505575935678962338639162144212633467760770536533648667443795447352384761166507650740675598187465384982180179499352225625977019350525268950278744859575971635143885745069500720744088510817134886617476792865624718905704178069158026794938190840054742817549598243131832398063588499900608103935095874057530743537358842085067968606723721506089314043948598689863355250975697986743479376292358201842141278887978403699151825048775934232532029909932067326552178537314593786762631324190556705571421371928844105519369554157813582565328174270391081421853366513426745990581475165090893056792113021441578095170488024332299446099476691363190643445369958265511529523844516556044992144275940538050890968458030522224545809095042877462153358563333485770313376802850567488480745505954795440264899247570779118311613837341119526222749114405709105549448102874240093164553854198328201629846730125346580202022461067187695860180120531968750897222224469211759976702025523354456016295464507315303903545429670158473993942432189500258038588253441953870284330954935723080859097453126184734541707039682750259423159466857322980442140034962987458066910997400124923972315220116620691933115557756948881544275366156120655863444682713113721489656224890127363969604383086268550244025779406546687706844296691492885746139374889018081745343186793470785204135457100343734693963116868835336212241966220015513551969243124358620375317177569597497845903568372571714798324169124773190758305553467409901974133177733629793602646638822361704027837419471337566170443854687927380677232580815279097723978837651583861229839333133384402265812853782796101475285663476874138628946851640224271651761673228955061040603827283336230472808429444832833322190201830535324021309691164270766503906213631869100090638544887237517995852901984987101374152640473187387860964233828773038787202840110484130267756665443962882161307915958748312518343825444634167035985768329603352638086006200789972287279102039756440447466981394204144088020232631098773781816673695859380703787172520396674592415754498547035711499522317831663728257621439205733257331088645031087193887759190258087035645577253164447999631892590067356207057549005863387115813113796487006691830155243502833715384165457016744836735893078362118433175776715248360038510714921739875352920671736283505922150945691460580575491005892752484505605261838617206423285063990130407474455407326081544829917362609946288644583962918320105867040351257927429133984673102085454052158733909794740485545192130974221178889351537367784577577887879481266639530350279278418703857007276465709674890046718378161668277001917993302919087736536284306182770476327234082515107793201152834297645094199026841109062296121083130446241189060281147661062727066701076331962724802650517090757988022903076890650894543551032154819490870446467701631828086972163148164117638902898612836034034860568724734967047632865283326542816822458578337695713086536077042075404123577887086812229674743409664980215114539795502816701875072354308282625886772903508322500761699034484027326871399680914227806211502171731887458201375753214829355086015107806971988053999274023015224300486615593088554407193200149143377143149830960814880618110234887975649691107203124603254007261377118470833484906277895475793959729648324090342876422607224933611792913968312193944343160461583281183987934464574695466357785380210064055508728321921669948915316934509155269268560556500211484231653193304337502454460844855822914029613915214406207640979876642653762214563338325273374158063301695073900029665612334502217519734706786828572044642535049293516221592164602499841299551120500782369432363962399238103528330098617145711652640535368636181613742172162431282734395505985479457881459502718609228122258885327897866390534978158304281300419028334802493774600398531113530706481245446873124797052087358648975091119841150620431864913755481840698304072116663781002185871963656181898570132901871640978158346561608393759760872414914078146576387983579601353374666862576677555428195349293421285931650725783519145749868472688740887526509945421195519926640388945450787244854782869110636651368280920980727971758970279101974299607486616273058685920519627771054459818120933803115440389053402694736289359829484143445651981118953476819057843298832114077443888842649153567282164723874203442853439642576221173699544648325528267202969624780081966281589097115502266749624607746956688009182249996765759642250250673945405890218761521287946974574340822339855736645328077831498761851962937302836418350815482035943984130478598113637668806026664061478107673603517189230165513638854079920186866996826777271006374940379635262572330897174362385539045536449780632870660796279555591696708653710573152936095708378351209846471666730698833644701027509478987915603590964920893968263764272859436271118485252555806250038147787560592640960252254287074281607130528182475939134419334243280740819138324295327705243450233207900286793302530308113444817107980904474608455681917523218014102647295786252718138350720016100249664334432684771299297514321112707440454794012894774862488526634827039287925847430132398004134435554745501516847786394395930701783540652310791531171397252698163930726429065415394980120774888983264551263341209357620792336510445655376996162620383604934101402145424034495827490303061888573873471518123393640055222131298491688342870493826764362248004556899173650379655659673463385760137705037444379510869244868731308126343350800823165129610083740395962376761831523758968392004635941627097635715735525984062668520065401514127083262947576553412520189817182881983275502798028037220144669456328563056964185102903420848951178046594229788290645713264871216940108612754891042017636891708100461663638495970259660287675789320772257959715106486983800555511368525037690304112627571348015599846303366331466038328834617182770781277703358700887216671705263859993495873198602188339440870576216521079570653121546944744569235268077140914804126540788679530142509541024312832379798913110221067190179874548406672470963716652524713298302550801500711759015426292115247799631881374454485986918974296989064216656751437102327873598704402637626608468081048536324807412405493627782421499590912899161815880818462482615056082842036143240381887888578614596220773343283805988807113704700241798194940395636146636998853917419326363438154161515930741229516815418474478421089283381126635075064031338795196470237413391379631250196201186303807485271394709304303041668683575071661382206774837509654498036268665497696208173066987605955980694859713147963009252990671025922776673778358514296810800344864504394747397135856938079917051384603987238150430463562537641354604837906990365678475575950238239762898516805995691029410133634730483276227611913437310144473957056666562092163663251006525373764201268031163408276603053732973010243515131841124858839094673256252292675097739308766285776819293473549375989343858307148616373225427568035897431599987830063108665263031439863667208409429063850345979299867041743539100124481046856372144144469487998085411964780740253431983257180000939861354539785641149908080216486471971519151970204538773315884199361552331131155919067118819842477636876292058578076311903636314195535639780682553618672428881308835655897577545036596252123660390121466647326574020223777233145940654697490957787907943282817491522742315361676735019013402747258261291844206515594472741607659675586713515394276180254388854284770423911255939488204290906358585617233030297646127416806351466211248438069446378013509659556871770271896637604035137802116760435495100665069208718367334017767895924298406248475738743816892799216306303412342878309767314139118918477782188365847641455249444633130398220773242969417815384228389911948799177982687055348494936056448650653590960672030975269271913893426220538346559560237280518251868865884935603164431219732915522723179050415156595457877568791552513315933945495381274505567255908019825882452516698356643258948009411145531087730735888027392292017102643873034423400384836927402843225449472877849307018992039927247456630524877352818881909806503945004829065405024282041098399534377994198626984323063862263374148105519954345921264636823413262584432640479325097834616539352218739932339674841630553980744595859578696390417493505333877536416360414851117901865568720363394279424913297922629258274524627023526640731429088388426824366355988593471643931353106469388607900494403595354606884865645338796064752958239421331200007121198328088661495296748435318527818235040299460679673516484805806120805684937416580187119594311380934602842796986572131961698854207614969241502154560272142124196683342173308735822647518482805503501692749297357250844745222191471172208718999193660701865685722995993779134777608649059241608098706733114498462545740076828158742068640485805126052820636436165340918263721921381393778500332131285626943650244559768730353381251915834369336393314689417583813142298201710260155284226131997854710858206532609877360039473840128337402428390977122686682469400588550253248041478463691101752203031726825426945189568295433731701319691723817131397345800532877132298102995529927901968406494004009914393529885054802427177615180646023160983316936006220767851136897691918395751047861217827928378586855214887559519831980139993288509260849170065815543313014124506113444572097839361996458068172547319602105144558681408037715545953732900443527956089103322955177725501837646030776486546427291071772277856620104034067531532288855285218893382705565024853433609240063781789066223062261726714247686976147988574790278036032019810844554510848267022907450530523609989352293985579335325285713417143395566597064140738150611332222075321704252670011966405882479104009244955812617391072755688952228513173827941638597262797501584198249533986613614060867028190381968247833796023562992465761036190944413682944535323349864714018844660813917564004682500059034659579536524047210044984971163280867141517888079263508844934267821461018156966460887842451312321046131261125567748750355645558343766058046055802701527687191693367936094830832144210966957592942104765005359953545529256099603729077313190132074422341416806473538906310855346438551388830187306122579626123147203137950698040518493106996448423914943435539517261206995682083401161983743854635077535491060320512664028007765147100403377711124886900570444000241999619546394040263175504122613245051432412206089227010535065200743761782726819749351875580966262449834313398555218481674058771977302143067284701070679800093626004630405241975744846690776749273499435320309047483674967362059577646264051076863339243432119744670344835255692569314816252500671504235598824768187385831286475191389776723298944772268923732531488206251634765960940148396508582867019270906212138369093635312842883142295501205799342418304965044339640604188847145386001188642747214231500159179832839019603773100551308941372673331567803851452393812532102259490808295845578374820376769972895225141756766847352029032732517087049736357704294197839563001784362953349781198573515815815565957040714929574492316641081912669246550570186697709846096541014805133876918476746423248252645993532166473135656058613849703242082870527622663911086663636961987716785590448007905230303047405929118796716557242887638521642902831980052107702945558965197820369553035325087925291507822512845244609424325648908922001334317952023777745356920811311469165141996403139760111914570645291786583717840512453862711309510047723492409002772411693981693335698285562870266512453742928738479512665107031035128047493428122503507264467118183305753228398906315502741442273694191860064008061127096237701129029911325579244391690429447719351930164884644399468417308294397856834654738047399005637878045995567220150396877545918540025839647809405069861364270212852068393255108004038218956484568137723762066474471244654482535890603550142806961946951049556509586177103974748075247447954803002958122801451671377363327040862540112102400044369618364711354061877125424767459074412322258093546617275633719249090749122980264591036273090730564962832272295773281117973996716988933361922693919050850634955639441049623013018443083190783866180341228391739503749574998239736788741037816451245138517932814200986851314670101010941537486812169293179777406992355534555188008862372492706082050042546786339876071061162274124311058665822604872531365099084355617880186380244084402980200305450243993718742990322486105613799382567968563057330527845099109928282902060695381067737002267748391615008129697710907640658792264984227029244500772274310845267710290286139553487040078761708441306690876785468874843978706995665224716012419035571499849568329892121117120283312043885594918321950431691642484431139755119695885435021740604097962915892264374273005376973398357814386537274593248234311935092139674053292978409267526009956017355648546453195718397057075267180986811563873217578948679342834687205558985084322777267038407260538228053657748579701733635502746800706149945010670426641384763139256365440081280491684889242484724001992029000842875527592926818746108015043189317327374555712783613184521328642014409088093826588562279100318565956526146408325324908616100353924964085017203054925813306859709679363265823590050944427530171966597773541636710906180157605123634994623361661360570033826434582276290287310408861286651072900716505359871751019145924826244228411086088565778602838953665178991877565931024931225677860622634605424460308785680157644160392839048797800546483669563689840605838895086847290278864538260125191821943920312359900498645160474893824650337205273035528666661266196785095663773407760656663120581235578474331977346767427263655679481154540214427132984800941093049821540099303528409332972443012175434955492406307591853688318431496016952872955045693414284365822870733153008697570777489956483855868135401340720587567053303949051376287499777918922122145130282538497006492412306542958105575954616325963926978284596630136730627346077182437432644901859549227522258998824655278249170508150116470280835147626220217594410168240090596165720650252758896547716019427807557560097634169326232552122965073688893474517573150527000930030167841008387130740837922856560764876960237707494240376707352008202178869925575006606998251809547549220565144872240849055363500105738647980594871247599907656908022299729074980104733526775239048379364158031065065591291350123312538482546165964740827095560592396564316078122232721883125957259515675109340116467096367419960625013927848664727329042400977034390915001198714057273748830429971757255335178325129825646149774036149247932386441613997920238243306269576549405925726251912814991285606608390710673609546511493373356704446234825362968975654845899944561173376231196627535875776926637567776246625912919663464649950944084570979054896217473013982913884410706983675456486999284944479037535648552121475772183463334239313429799926906900656091651206253413756531591642568552803516833081697024250076873861758285621439420606720716863793814369381673961868108748107728449925084555920146255150386537835608276401119603995202141290798126105473729446814737942218411617751658318367045294848693116152989873636001832357434767681257820512676506942724240173498855890223502258552587973747310096382271881190633170506882459608189275556497646938722390275658690675370577999229832588067519209337407245106240069956852104412908778677983502384627514788911728817107763430496142133923250113261491938384920376463942965894088209205751334634165241748874729384264960524073930745241979249078447723090006088637100727601279438071357225498409091118059579127260913890266479416651641951395493894071765633967792984916419057363194050440656551358827405642876428106394738497592406678333707379701426853936050482479566995532353104608385106183887790744944832316201096661772637418230755728764713837927891752300375934409159400848918764141718388591324823856356865360348843424617392533949598960863083692250512561272739579316728006021716240809707207165434367638346179369490505401716564292539922255415786938698743940623722394556573272094042761111688185744380092752704358105129879474297708581915819073001049453857390064104223233115564861245124077059541394048491828861983877968680552629186863429940955047899958688251700673337783700970415798979483558749729434479089889373190891395207242832422387292847424584153002310743135931249872739478572178917604316695331862520129386163046913017622733426462120686875845002492035023732868421298722574509339459674649922025222031654978544907875043969609123180257077885946351215699428193114452514186450180822911969324989835587931857341757292972696510462075004834066264089451551886453799504144228784049726033740787537069825275173762847319078202754541463838257225381244838839266452372599250684283046553611901696453272490732972231503870228224039885707983755725957188486726217873554028007895617968487636209811398567108821240392241495471601067765248068165163326837900734276289168815745287866223187397177566152377987685076847201406951688613070656040120521668787796937062354652422955290852055808866887193076506923005767684341972743929950458426108995176065119792118549392872945463920177299837940719141533420723732228917106526754888947018881330074004174221242374006358964482064705229963231989925775313775133063039890347053633130387679307595755189932792197023916467327599712741407134923617860493406523720343564425303925478256408687071425105803735675202631402962304597459295842989896489223414141300767899637337776450008139618405346169025759602239810761783336196427686062472972400092621838056752703266238519776057235417397975366787507785860120995376919894741566053667156804009226518818107214668722784571377737598840713145302219914119469055932048978397111586103532960094427558523301016533537928703435401521528924996898394761173880647105974084633255623903573054981453844374376734364779594524450490552733635922735694059697545006834776578226756105810254280783196193579891748600136516966068888826575843571893396532920397923330920731973725848618787229244631381454370834780563370960663889593404573849508026598296121925375769737549726291011878938818269214382148845807323611072421813143109413514939975208606692003665167962387703393137352611476373818863489215276495703664226616243066309573825963744138770055206606121844557664252583765627539857191216690044585335170675351276399448063565162345452331385874958488408356705242875528293401796186618917875634802495349791561319152523724002509484344683697205104896298498936636596505187050235547208765565860009732422922153659957003216670969881422873611353963818702030801280143111467986951963803985379640476249135438252385300843381971989016688518889330052132258053648192889227211505915201122725633395313533274277458016899036117167486839685134049443037864152332809189936969894608763592324407062370020432247457266797310886881775773341548433098249119751061702722037345451039069188238376518689917744273126084912731712159225490285147193393127755179051175841464694030540958368099443189226596100237459714040536993103717388388319473176158870722470996499457509911616338103237593728961632608730415057995177442179881724005823182676085276149476979954875562327453810496830492501710726479532114668545249377042993208578209367775079876898425595509071525979519177820651321475155429031990176551297060856631467818510772672777896653204358990510655112511318821259006864414458698312414609413855971740807346776130636056697529363782104074532054642804620913308344785062251276808988586353261764204328871550611429939016195900897437462535541885816338835871922401034463668290140138711831331907136055570385053429700843684122519968141341539411466276672386405868367248590683769745858697583097337657607607979990820185361725223202766433404349769502918525969324179628613850191438573922550889252389404618734072392622904507482036132977260077123818049130391130152033588867053812015500144587684434028768763841076599354615732630654753778608587510914060473535585193714471219443063021208156961285204363207318752846465831512167349418322559473893412131621092319384139167182645405867132509434797737696763456841711962481527994940327783137300944268940665938710035513851218098186139806798781053989444000788991663435207169489431962435620893070450248587114684388150131170962982730587249826444057199551627742559003647454702852933758936435270606035717862788931581918658772217078573483970645575453668670243774728847581603349681114790647768430295667167828451756229233812603415187648515000518630548435763977016539764107999158364207950168643281687445019406392806666051385432783295771551473552287783964379047777405259802121104812020369689848735267642959732923119300563910171307433679047433505359726930678963671050035185590597132866947022050435850173453078070108356601220864596939226213677284100181402936380091684914519155873450178819881589387092329147719337133531592456608144360400059173970580662105975389510707603045396238671016444413621348733123940190021976868967770887885966532506740799075858919883685137480977392096004358737371249647572413195511426616862762282165258832764933792666710802969984673715132052624554035243554844513680041367766643321271937339537587379018071779999073988547264321035875078598905128513289329144693333573999606354057039949075645035189613609611129612539567085832934309294920662509074120084015713619212854380502376386063917664884197449945854081289921976732277484018661296854898981160372386956333834511213474928211272413202588589213060503620835192280749752573676260847883491259594742582394362957555879078034927967754858181828250252211179418802025927434933905890901021618399586745645336283526890280218025097939213229601632981867615406742284731396258319083399852439236474930685304103934537602435309766149712610413856220124419784819156476101968173858370208176156469228098113057798859219070411617594077448705427922119457069643869838185281601263069800900326465694011702640237315259369000024366658284850447942216922279979418975822726335801457023634913567332785229132001467503485851360732909609965663930489669595303819188141329850902541433122350715646233972291014443130024083908860549394368355125106597363336215528769182476121528043129776653270963416869094882348464518411078568607731010119616835261725373710242147940718722294780084136155214818982247808672796234306920701622931462012033541672029954397191863127134421082224393230035495575689646722774351905298779635461927482884511440762839356990690595487520961459578185529709256134539972185082227222633832013768822790357314330721662139181554990757804541384936618871598811970025131447053911073303716799879045513941518730111644600975440882389543719185874194559090305885569207020531888434292747003452761082663850098887267032126108264135126655159206437531472038569346192462273574499278196302732575156435798452396394504279958163974269059725415669274678472092202991734149141853673962426700510542165563168966943035424697182357547975094090286748923075086757344731660443609910352659803311204077883096097090247250203332013004391765150636546616470982491756053682681245360461223935971676511866812189762617513132716673049186081068456192249420147490296061367369955037425797560197083536604868843791212841045377512557497250728223064916061024059157741886532635725743297200896318445803252058398520576065270255743106047069747389737086154415913564075511608535168306480240027673191271573046532433960208575718788271133439939213917907857638935385442836335462242346934763304317179658764389186053332556909518652626805737922570459308323372836374129557819579860827439557864652060133117934128637747089534772748203413745861312136509072847300206193424721611662472273562360816335692870162609126562862371074068837685782592072996676381468006598495264861119100924914002121379382303790218690470319788447672468498119970008546136646564882656054087412005421691713062520885411232681891131404962601278736081143091259889006418242911498353744381680672505367996631999490545012457442948255202679223853305396721818778651213964095510646416675435468214653484759568328058673439505131548499030115470757454908447038175535607943707908923299666933364600271119585509445336414428082409235570428975032241455154759579776694044359789837526530897230349059540780600811095426896352301972836910861230270961773395861650933335750799240044771482081211018531564998817228405969503639043943263110127985728839738522255689856181635483745645416324656995262226824755557722513028037328064278286578325855740466388473932114555518372457038922115020502512534874294031814962275459850053664766384838134274965721240760035593501325508779573193815947011575752157130799001790870575101924638712585512864541334533045876964592561516384942526252012225534578839766023859005617842878930663763404852800651664566992637930502763738210219572232412866771731417213494849951897128566413016130971788402864415860636084165895803228874733860447669220287168633517796773373059729439589064827170700947289074665661859491446127035766651446243228560653293134257564118528610718985267647007365513216883450733855388791197371826741371911509789013784262875955448260636476090888688542910236437924287485313275783745641073750898262526034567693616307715395306976881452066141692237948036935915490900284477217646403447248115226979929076060094639726786413861872097644676283019909316722186275850304667435621682917663160540981396565142527373943274145028763977673608976343630369599650863336512796058719637697700428268761461490904339089179820868683122082601398074746246998820484714381976736386810614401256626703676356521192938546363067167994041106571467996435763868026357124271557608749613297187380295973766530211613527187525544468132445777062613554867539767696004852336068222885644361247062749352681745089250030512630029699612300218425464382666789399091067023797930080665631369048463430845716588758179263654927759449272493904728451545449286296822350045117145229478089895898868384521824160836976517540175126756770310037422735904379791313268150647288553379497248024443686340215537964731822479749854106090461533946418230649793838762956138210061108940741246860785518475389719329357944101658099802813522619359522400173636882837822756725480987511883231818231671665996145894239928449604581840443396567191254567127389265161492531430119824855182402396166585650437165782501637797586975068020515589232343549831912481290496186275423492831913841131718223687430136835013074041262542423451627906496170379887550403770573905250661544829732288436774500998866086084170046714874243914913941519337019181948811002609410431565728472076415617853217425912559211400919968195519098885927694997060030294337702844097146594638965498702537761276914085147688033053273894338123195865765689502716175930902749199886928516766770564062131119927681316679511271768776295917120569409174307496945137267657850811888844491871004407063380468872471725911210179269638187534825291796324353777815960395128702980553311877531229640215954022326559111997814111922611937293413930023219843914620436449723543238501759291602605642507545441937497481651594958794921445271280786943793034636625491744073467905201782457480469748602503293058161468512756203524843387445982487057953235735711230397471060643465472558677467038114507838564534453493963937756216376944941069231938631934106405875760260751669474691093041058746163801922414510779449142137261394793379771013736979926731886199207156908823454213260762613553169365910679587575092003472305069077482849541720007552759599726262485989174485129071295237339697497472058500686248509233577307810022897442731440086575271917611794430196326367510669445233739060875683468796951650722223992562518847372463561549286676047424867221480838409950013733979057447984329889023073960138203284932725413760326564603545969150544168914406257214671199932690623357137503352396414864581223378251240993084907586822531431791822690312524453722855427285389582274216228464508529514007790965748207416294881193660405296266671962404806960458344804329329766932996948129095286431080845147109268890092569273120505486277001096293071315453422103842710884035416639498346991544089185162421619138889285811283775612733019405583451958262446934659025882707747695258948950964282929954136212758710496680401352552125801782640462654665892536877528196729318434142912777434697401396214782969654451425166112827791967224208885818880863163623306439165445285465699280736698793445200914837112971604492601587927988128526284530158979976161215318208864280244282997053547321221851244207030919461297610165310799680745235263840443677483530954787096777145989132563020600148647414167218889719920864337127531381200654196004909246573524475927274270443011208322880972482549241126311107148895836933214145285386397309297530801448740149712845232682981548861905561065892557858750922836319563471135572773901780294052437587622686604226119232665838721519352085265839131864497211017916062173330428538305357871595757779306048574384532980231462558348940874268774642840603659583349211743401370908476411685834966071991701324373306168724146319804478968229228235573740649922867177389450837531882514781217362266012820046341446948893128209537443480091716832346235413704601022632293378225906383288878032434492977749536772716569287187797373303539415713638303358031258491496958733378689905554034364355352966161796099975202808819336054056959340578041399894182675745199081326174881426220002119273778884003924888228001777705339667999539782771071738495626781542587526785854543044782231019945644308049159198543343452092681451642490871285303385639036426488792431717499161921566585565933322580753700155071800118390939356293226244747731760610031663085767291870749403161861864945658746373994726542491314931423924728730682727668121961513493144742091508408356594433316512819442138859986190276887609654957676867962455516463714973670499048559435655803894776017828575836106310448716390498323513896381822786693653560795561020330274974239047619875590446844060850114197786450777105688527188287398261589960238811536127294659910205605068038605383285581109422073716638381356237072613223876134916405594931934519091539667806472633485253978529321392166789795999543473368122455239377288244106986787724339229020273512228761152417793035981968361416410615429078794822121897975163234885653345414613187572784066271691104116012506968393135791318632767033858200254310697875095583545605976919546282433946483690052751381389888845644147460968757732790680696243168487092387323252807554229958651302101820071951176682499993339013469785952550449776436251086804357083899958283558489947874962574818057451908874376679823250805697449617322069642468549439503886716036717869981675707973099970461230121556606012424465509200012775934143325163877893535291402575016160195990632419804340963856125725974717531200336533687137509175109588740824747027307104808288282289390651756701885375534567822665961097542537320767390489650078590909517633478158597275273892212753177906654776706674889563384614499885682458619545751871444331783787487039981530959601512470187465733981693584179276570241325379970525182425165548200953242656781556795414146043370567981034074406340981480467484499076795301376668252672488229876366221805418230971235052349671935772850686928465864474247038846749525265488792414290221470900985740974263056408375299673252338519836083299650142102357460332789342165106960709621239864098798104948412833450920738114869735406185196348171243954727229177164173035234084994209132023351004943423295818708923932221754633763478945544483119173975479997058708337882492615889214291208987063038259588507532417244405767093608976135969009707348945415647899032523893059904985909771901845458091803119440802145473370113572239160710037473842090251663591859847916548807156840886684480906332007778966023233492131348482348528365151921841814291342011867062873056789084759936892725158284814293842724565695037434445225562366274755515263183782216061250820810632338967081245318265460822839749885260252550458889770634616400640442564417531054882364498512765153886646065088339568209380683600805960156149659523827127609839539791076135161844514822583142910874303922260492863079595809839589560443805228668134637505219818263312055551406896011563907298944669762789023529709171393509333410017027305441711302016782883363866908420612522825773470192280710776160463477038910206138356748120530731910035817320784869283978072644890777105586317340304110401766425049318458482170714235629405272664456270887446636685136537764084122203119792694063839047759543546824647509356582475155302993355475271696759363626659744488683806535737619017225264990344589524525774246869786298842021073761162113110585087421818372296209178294616143880589963572372124348097468436580154506744361537864394624249002101396291412923489351671592183842012061191156706572783941190754488956855096640766472882839972786065254203401724701150507522317203687892299295671995469363729057854877135065928505385692320167928058149629861350104544717059898484660244669743655642383555856751437560327949963263588695793739539281126642548997995311783448203595281143521700848267378664549863738895372995175071511062791435155757793905217362288905197924761914843668388090809761395002610761740851712482876565303719522991677424313802096511918967118109441836184561093882755855349775526176808935484290761421687726948823211848800423557867854046851759366023014155170738463316385627627309197647611216548589861423637426791754718906052952979566688173151584786302676462286501688492545581405319576589028298205283378170995849544609051855837807284590895769438906972561735678575806235081457282396486380381955860787080720942985344610370472629396481469924161096512175514099907002592037570650702988477288962967058971973164594663632805070581343648114692774870878777933261338429799270716540714481341679805076729366869745017353056937376148752636323423444618011632787416300188168522287638780821636265239588344268747818939597890123279832457488251604113535826677347192750998405142206769053268894192342615334511572821742841622454520028280799561595926348084255024696735948605740707472217872060366084835486739317204767781415748045079679098615908412427390863601740027772244793953981807370703851547528025163773312997529359002544765243782453895540544955061603177765581188248210140213815090028955024439258513000123499357835710161938737079919552819850686485131869213556360200771913177393997464541640154942916447402690877338355705369672021729906389614522358791990778598415822302708006126970094597287320390737089581317827974092365697193428552908903529189075433773513647020110539777978634847734122677076041629959925417996868414078295145592354480952528041603302974417631840884404058188676817007073930423213121727093071682452815768693691048713815519638670946545496476207119317885898121375050876139293844055857428561489800933277549109789998760118472631735784102733585648394354663650841652269708293969138160610808536465329540112378368473084939685541977717393420122817758897915863554095428695049216164324554892372011052197151282571819608660065747355880023155914508762900003406521713821192574381382740611883964739157839803509494081615095040957126907412203597806077238846246603183200934295868037522244334116234738507660686187254276106854832838705314806127963096491770219662852946296278734970930981691655044470748800318069786586377842148941462858963723857261792130884699986116754208116247446303506121864079231053023719317991751332725583252580089056699270544486361486918097159967851781503293688078826598817133426731158419973021978226619357392215899147052552979618912856010812909934205843939287006483538658175597012062286765077932501725163120468689808380011783593406289143486143696039585998955972219579968149103810666155273685561214857924709162700016749903122158752554702014522841273497664591546953400511669510140714233637249864256255002417266885607717388038266214320168206305580955510305088882271139838478287418112700837974084139737335186929372716811180504703104907045605378834269471889864583107900131537321735411552299541850563155968695683125465001972099589278355190319237032960733594157378324771091570948421781577542569742375719976164686338636590078868467688996714605266973988712140451589687206379613008347770997821168734969232276340746947250487387995460476303058561584644385010554043664974097743372362089796561835109371161059824222611940333229315108734820005863365134591479479910057939434406932961587254542753601785436748974092332929093090061549031910188173646589657347494515568855656999516006530627888275094969117631032185454140347778141507080521865989014249016428842082309776122164075554298279283955830902942042158419664782497322516870270395499544689716726511781235152910848627729155032425017287566404071709410943303064218701804753663996919404503649363046851592994721515638135751895201555310144216290266122757347131613100972604878865909425848746498107776302281624651634551731902513650897848314016228370229678739154997434168179805143340363891699534308177443334124569335261607885894844621302439026355365502613949327177914857456397435841493796408384982712240154048885932513493575221444276807629014283094550225000617463801433246275830119657411339346160115410979666685433203460433119077923227240881480403591869110371529587745663066710667698870172388090783768432577189030721055293147990563768330125887175166426084362676906774085964927005169410513610812019533633980698163408895777500429086607703195220503060009484633633904977605362045803886422670446403537204540469191295506847234780240304336393978278878796156996505813477221471569385570967662940106151947160509142447765498753284238025698281581094261403061011556007042466649047232156100195937489302534001781584019408942848442764643893166419760283861040672303628572383252396797478254498227201610217189656490517466999537764872970654408067626760928405093699125342693522473045315486731506072947313071256771919537638137589745807084484564230691641208225320594808987367237794512383207796463287174931235659302254206224450749047388240542377939316416193561675655814439384964850835602158007881562695907591028515026418088818848369959653261588484058956669139308237225709208480907649165486457042831630553862979871908864531016277723404961341838650613672098611169598338506691478585890543135384816769101986252839498162459218783813559359653893560151786517209624253510343710337994027420118559142163728470067270009426054810928671355202625448935409511953744653149056968000272515276804859214531431925165581305210736789053358977422473910555106406632400848280691088515136939316835078270218186927421713524001094649548058848618541302278966005483988180744567731703170799340509475335360603228130862422918419714788607122145942419213536474775205796025183652538282613764343121394057473548774494775135224966882073148231941976821861043765039691102524909215461797797545046488288474941096371583744706246154621131908350420344867872548700248656921300088371264778437070385229945650683062961639503935478387537727942424078621998128184119770680948563088332430616371172272515946679819598078810532990308848849422667989504927261297685190916098923252536701844627452417530296687181819340256176713014244667590053205417295919765087266266110097399839761812096246165726152476237081645491458085820235551950143017756498939239814544026193880523826554746682311258467320187067874898666390005583039803456836625564224596600175179836915156752625965525976406571301400211427983321109168811058700872940233829520247128216338786046395267454464767972440411215862361373053423790982970356992264397329677629979934015477292368522558287774996715117476093951231969533222311786560566151337282024218456629617439337623147305996475365489041508443554482476969842781587191785276389945805165614406785371800803949104290385329014890307222639972615680110685116863093177472420623811099881370889239023078953208072594142349619776675289680752505150045240903514797382758605463173981102067483481028600539262918347267959752691711538669540079582408870777856396878082589046332963917738656566255056495463949371130741717050119928680123613239720154088605747129685745023751400423182931251682170321558407875109931015245167376146616635551956803704235601055195798841848191334407954103636401916562687451740937446951994203227593575740072971726998959786619166957486318512345908027620722619675873205622373938442728898240952529762174348032461120416852738304302255069112512762453354771898514012672691265632932653220386802185527586215035809615791748599742186957740725516994925924147784133356767276760410293321443273194594211362946492484581386946023956053746375462983837385076613378989594849815022710979220850193140803849992332851146846383348053089032349953094556342469367793926348772779130827087008447323551049586225047184118578721388473412021929694616209984109418108101394859965267600556389503703819410719557365809866399860675573805305873766435223916283499596702816573938876073125067532636024929154235805211980653564726761709154515481821170090323626707890305944152495894410678898096224871771032345451278604368380383896857183928221483970688014133047790419607251402874072790436475036818386441383154620727371124419740136068466238868563725628157736063757408648790299426682773248005138157543760562368134292669622079169219111435844190060504906226979836904720845682211986908893073377754653572139383605833993896169876860372247699240408542309628586015345919725041788645040596252497897124384787360955618154604882663685770191564970841065955887663968109373006060842808187350889010967888707405187869847830786414381994308859101489146385196520824314366149745600827387467244199446492587048244175606366868097238841517636638046769469853398915127416597037012278609131487027977442528014902758522756339988455391915356693227393466666013160575476736794543295517090295198169368285874733818230120251079578141041854856022166496849758937537240944731393388735464906253174674800754610289909310527540208090600541417459216955921674468230080072048761679281422605670124305219346595052401380788406065507074873635155963412518265029178311888657558793490085357847627405702576052575540286634634270654287471441455315076301673815096683865574875745290545335695678840183408855068115333677704311432435962401365509176510461526471604456637073545880474639025407384180300738595915312210156856232655615211207437595439264971654837764631695837767088347841997907937854816480060491144038160304630881702829055683101284327064894247330941819116413515361766986467171894591182665422019458828856922354203018219921288164565621526405317047517874997381519318970407546345521254030718991356420372534715042637567300133321244344791833823135241191688856553573844763509320144661263676282289778619955953204945027087092034665234330592319040206835109912189421729817003488439434055950512294299376200480798092934479721352223010691655462453674287116153994419925773833526142196580406712609506942395075594361571744414427360784957278296759424155654608520093354388427461658510132526507618678392649624411320674558901541149631963830972630585270178114378049432168572228709324770488610038448980572335352642601723999186209809711036255247818135907853327522678232150065707408451826775731271499583934220062342830665564768624976913110057429275723352720191932708778288286323047943821492596222618110508988465984746262196158140237321522896656741427468888917967821173757570465204587885046428145315490965084710485289374087260260945008096836292291460975236029274202357940926693433907636410328684185317920782334750080579654269644149125654998875999468428667193848620235546649537231011537513607110436740062131112510989223773906204851812009330271053927738419999462786193070069795362491312435449644100419261448389768265889209277672323509546229932889321251218448492862513658000679809422234065508124089465680040570339810666997312868532405158926862712226651312840724435249130598832668673898658494264472919523960274363885557620567166239527810113430593258130854580916866948458874226836776460564364364489585080981864995066620072947898278829325268279689234545610921117258126180807563305142836734194769600121595368682769807057583645458629588082813334679102173359075898099036407275344762915164517114961356858985515822358977441194317878959582133021167565317975934464621945858324002165597662220304310930441923669548625016260886747114447406899612295308701204008150909109847924046456989778406632585952399635291640197131239412917628246783237398753780487898305864898973442112651614831195321604530574615718538099599070080120536790195621828378353212772625457124990885852803788942156707386737316662940511329212401942702080325685349577499677557780192817769998032858559508017571020876461750975876531237688351299496123322236387712625835313518400180603415765721712704465479119445512038076781187032317359662875621466144821503033199169184349936185346053719261038230316076194887355763960183317658874697123211752142345973496965387351747385781595628809260267758155770458279956973392950711506291323943714339791437523350412387862462617407393490358096076377887625312265013749146415943238056645465241990412993129819813563737464134381365357502570754956716938148609355539841279296036389849029755945688374712996530715795370106517915601613060723260386510608908993563567739604644752026016705269502780255892513883925683708812537607658069645401826785692489049083920339481747121454437178845851515504524406601172891829479137849990422127175231396011057323593246068813423607080296725138685445449844310006574603946716027047264058288566450579379882267976159616627383395272524339638568610509377045405264604116642677945613549796812860543713973043754831861342446828165960167192310596801794927458759144617254170355903012963245480869622857371985010701179473468241992146431143286508209519414259122291301811670178492456241671328782894922772074061968091744386350948168088730975285655496455656704877034063925889495690581745024238767240885571741676327243808361767848882359335299284841643565412265043378367042766680283443360397822272116879352246637930757657433760785974485226612980780653106104932035978835904401569394963309416759324182444297952421180952355550879399285957234054874492891572819792914078746643797320314094121930627713555060882435443664782793289414089621358473437183009682886331816953995973857044246542765260476120170986148349064396742206794872769476782126200620004697262396888535094729445642824656625282058562446352632226899424875581324644269665414337108406803089582349992091497258197937683340984846801980810721641163937584827800653070162838688350308193180515011331599232032636072689636699351928553175407694840489555774787449235670514214618894503522106478449426468768763225300048756494529966278284752719023798831280372514321820351695889144566972238570895813429591399094668552198592361687726084905385967582267729879555206481138336756893644682231282906344242766660975454556792498558076632626452613406656165667357446588790487233460539939038273293538323947335918026444993113672690151170995814223511568493008852514672855745533720042090573630775316027717862465326237248675956951578886662692218281693084354097537176976903531472643764271364884645090548483844291755227010210625184554559897950920444256266473538526502186829615748154104661419128751128687690978609308135035307146316924158532697198270844113021530679509791299898692741029848994750488166384156553636130134213132154202309765795013886703337301277355295488552568714702716542365661970124065973844132767552382987926522336779600236177637277491878853011136359116667693664165344020714612506184306546947337271632946709388050279480390411871162314840759972999819026857141059281941422596330965321685043816405422943994765879661406632142714278779409990549787484470533035911792067178732793245478921757336266033333937393256606470307447894839763725726170742101975179584668078547520629489649099229614369838156192950914731129586759276857232629381082435528359366075301992984889759881799320742635891347343313177098840692154874468723260461666289404713417631140039213932022381216117729948396635979075464304478882833457139317058405755907812856339373177874716033145194158068766630229113362148965099600071390175497490167069905803410116484156026235081507110322618964347176793740396914876888218178836161496059694849503695346265318867196314246797082243861358595083755228042584450188496476396071388609476284063751303752422238009566807601818133661804720031409174844432112399035484457086497798502000779420091931263091373698485182283244785447276373656324407148255652473234478558726628918070442784793729830161233608858816064831155485563564070528930664718641095082758119323642486687217723881152752896895141631168673553556186256160423067896504176735601983770078584125883218703786820250316179270644404619572921048846066107147648069134496480226299498580518178882603343815898032227216134302025582253619433643793233345561673026032849950075336508827177897665619224550666812101030154090253836576362716797274471028236990093960461913783341150378510647407019583039944214535601504905826225770345085748360120628541922508490806932470554294156388338178438071931989714508385265639378025447857514757204937514848200758378818866414888544384877528998985207502299016883138677685576161595376321610451877275739921955905179748912492112913083388385174706364592921690636069674913609367901486436197656333119864015024147047894505800629570013881147462059400743245341832386626996485432239010995521773780878359638058925759658983972493348890598852621443633663241794129584220827229139735332151178061765902636791415871346440006558581341683579390152711831413197778412587699327824106385315453258917464893972578826747948302996857859382553273517287897538408789521610601285240867613672929468889575484653280196811792062527545668778749866474632617069267657604716573857333523578948863992851324817811087104997489435924996082351640573916017241151608583281793483111087804780864492099903654645791782114331441566851542585697343971865637237041954414516113567914085831354861444312137619575169498106905426220282282322483069122707837294055793384966429825231175043585307489360132595434387464313383313908221437170936616865642231193483257556155528230715536631947135993595078522938823242463764384268026216799465250891019670628659712026169921312403299706951820325055243821689067257001666791915237980453890877466285916275799537112999932183696466341912401564997693234490466234068395876688464973623514774820652828158577678427243226859054079879400584738461913930062521453042675909930845316483257805303451588138661317894820268758875781140457340369897528525656359071367166399464499369964816157983170635436165355417436378905163844778423193614852364568135302156659317265406795449060710185858552780897621421850791367032051538446550917390242691956001731854300874769696257228471394977624631939460063544640380385186269720124328561888244756003897030931346019768560315270254511998403977220712938647478725060478264532789747675875179133716666409234547891057062949496027538720895619608351197558748882875985128343876682336637204332585839334050832525360126553258095829586534804672148575371186755121496389785983096725850495267604925915338147419000896277070239813947640878463563739676438040765289000540619382117414131187259209953210399375207636129929373174686166970155970438676964298798994797190387319055648419341933219510995616251120106224711013095189215727620470263528109587716025509704028477629015986161666869442395570880621419638434826036451636495426977064082424389602573942778623663202168359064930378171158546927086221869472535564866760274371107778407475206120160482272599863892874168763509291691666842349552369419596619767124013143071701224475878168537953002033117374964439981122727965099503728157015020775669068577203116238849648739621374892175806748636464190998942942987554359439346900197274994535791839561268370950855628611668830636515222824748402116604102414480006352266784853614001167385532592389064827933350621220736120865662250970830228834019749681801286893206851642409990799313199059022492564391526936626473244710184678258502726909898898690188215155158124671964590166899493831213492694078121235405099455202522479537902422642970856126264697314517680849613128162710095050324984747766213280188705438513230199023909909239664160948635055684069900967461845497095165174026018061020942745900061338881875034758505469999421352891111598426289687715271406161890097677645218779245439429961964014037144586535466662229549465283214482530562637022882195476921283127843689919890122488129959387080373113846733243312085031392385306850316146875497608311302585766276369151864941732219756405264547444540843813479898363376258246798098398310842010763838901824829714252001356089323380196762544229119122259177626568172949075045837923384088616035251893507809633137303490572353140526778454620359075706176533091603155743349336479199309633300474070268934340187517491673518925143792323193671609018489826243712413678534071434524001626352102664233637873878289319464786717604775082667911278573273602824176875096224822956300290207351656967545458103345003083396419671684556557349714837179642495931534203124063831367135164887131453911962814240566042681615355616434588744377250556328283891960822088526233125458687136760891591616371276120891992576922321705963926259183704478441368675995692585252883415816952500399004227792160054902550855596011816870027857701508340153397158600541265311721800496296782345427349809825024485129690907412603564026613759142763680339061921510361725256123984726002937598874067318251635804988058036926700951194063715503281530662730184070435246411067004155473371245090058211099579347799127463104556439620653011865669878193918299242596788105727971913339963998664325136271580006026637229271739422009249852867135955772940279785083777408483338163940516905016714605614300686617251925613863053273771840208890283642919983025814603685307295774498165635118516103934801906707384235765639873699717194491360733668091758375029783366016650706194453138409781488007881581914764786411306755204402117029881253490638951500016354353312134500453593856123554705773844147222213400535537116417298436214742024102951288984401561787412547684896269607540412128499705345052523324041854409862932762198217174441736369409537777506843626517414751232157491657001396689154945239202022851402058796106507218540237533537585216381679022289438961666472769803222061372517835855797383562633462980356941090040809606732855453577766371150481619868607324996209740267444418716131475273487448982056076224322928371561158881787909191248341495664628558327844022870324292154643846076019618190778091963856358025927451821804515892889266389882320774527441197512905575653519505620328470070876854030743566494664124867291834936756924351258083598215031977736763368430847290629421220680456201889571367937692131408008323697968658956785420982293779137735733728980168483704529726662355331757516721297687348976156967871889741564558688640044457107713853191638830041351488061738107507174732974637296983349318534038481838996646829137037314406642142938564875004012321656341325873069261039387765530350884224687534731476737202385857700856317222910237239562615534952588254393866252315666496483458974165032090409662864662876719804216289413006980588006679018858298389341283007541714585962863848560043848398257852016863756845693138784243521899015615353306734285689172638023334725087424779623366271256224592613120448662737548186585066908613769573804111725307187376498345823513549233556811435427989797947380984053879000159691612366227557208976791230882700950445738745300308916225179199097910407110901154214054533783048435874318846471239528943432517375380450703263234635621030116245957117222578482782448473575284663012121296757675484786285525072644168104417693467369294220943633452092938268658650142819531316696175512289281844521447491344185738703634532533761260470435308971141755216858058549063331186205695176691036592582854227529022091159542269737806111883871494453049415601257970735019942174955855701749289719318120177927134916911380725447215159550295259914147347399370625144522881602023101696971722395392330577306029017524612056540387379024745568768423188262740489500400615328640500241503236813020973333512350656656079513983314809471772387271731460325258137760238322737618994767457077589308120488947250195517964264370565631142399951269289608244598300082599490157527236698427173467204791538543943166952287285647956468191908343867492767182904284325878355279769328408011599441393706024947973980868964060691939415509394762454774310598723959849956654281850909380667909873974795835280947873421355783339488222956314006908390068599953616628615029568723645034041248130100612692035761390094263825832803248909150517824897078361703323035363463484061013824522470233393581004052475215258113883105412114548715198429394554604529355232428008512346676221757823829095504871672124498931950730069676225908627376203442614195909259309955755287455687315638952228375825581990826139483694569509469753676643866459273878903951880323873513442155475201952242842457995816798659053648193590358294950587266951756368291913980345300981364256867605758259958054234547325188090962180949082524525246894649809865199777028074237708838645915730986542326853991895669666761151312937421152193505068405160496308541269208510699297283880242099602871582683350371628710368447195170309384204437513432934190806793537714565624979316557005791381264179420808098134720889880710261240777154857121855654902976349592485155685025936673469676728289056666253328576221279434198753704940518088349013423953709862852538132079935750234266385018010806096977465458620127832256964379878498080842482417175190390324294428791207364773697372982746479914874379039524528035034893492162654811994381342212322205592062439622414653920854825422455694018106868080941552777281315766609399791767395374885157134997970562745622289497582777144202664509734548535804355210702717523394198066814828038308427695497313411487041776120557528347340936978275460445379975132908663017695337346307099996885355500090316559823032249319432328800167358969222413359376945934120683858995647993168958482752791297438180936722082186441798642914966074383623324338148437230876891290080281398911110715211323754090968221983993410998689981586377135828735069073038083460591207143742186861378262779361478093434559136655546132050552804514629836902913167502806765453600425578956739619297428416958115562860461106544532806477110165928318448744390911795531309358675345865824410380527536708963530548251580305220744884529112126741789823940933708184245847312877357262272478481610074889566749687301369593839945413485170858434846335448227776099577475690650054976614559821072809942073117204542285132486890176239919707208269004408283734572490852267000275243105412539761784519372643126667119297622209782105696583330622482457035025185844136007887725784338271049793183074467195938214672261097030579988519567000860072591648012282238816453450382067501887731883069748779552674879954448995460456483932273838778894758508841215401047676360145398254094555909659567850849216255078481152333736801725707008464505531077410398058080701535945724885070653732878175690264806087200355861156600234008848787207250348265785082754206581815740838283199534731210672766806379684152593338796122833115935195199353160681282899129275621505642094671936995074641912387186055798524229696792686189134145833471031779348390203707974560036209828862136375316506385563689140905724051565135303705420816299584225398002345321777853528887037567399840101441690909304966285196681271915828737267671277867905473246369094302812165387572356782563326718753269533161500004421970545544609173391447257301727271970326971975274688582615415399383798133275714664922784504165781303998782791369246815064604693837501095178144782464468493105790629949059893697434490400952300904099186229257505613179637681263231250347063326364535693724664248972523692106478118904503799868948795255486213518227025449940277178013342454418072149875395171467323319202948350016849009538078871446317132940439124191542603349348354315209704239416866330348008889454953292258581973566719167716554339003384435907786217335943601367103709665889808479229811616217549392267667156244186330978075420826023722765132096385405751086475189461811174320521731103508048130008945851773207190986648435548495085791680722197654849241923943523145788962531014180179478716978669384360590676197938149390489376453176559404770030619253971517059138848720663095217758583478688133997033853161166129380115428507686118493433644504415525217021684500708882913075969900994884856237872488462862669973384211865269902288370857258151217661516134699132957065500709802393135373891271966653498068449976545636810960285437206081343735625290269458320931906809668998588641961189374083719274684518401475662507395974280603856801532027884229868892622481210695051773298398487610137719289316360075969173507534403552402881572586004947487549437977628251255568198354200677038584241824047485095795695729029224235603270814744441080073345924743825644792702552454683131123702992091768349505420399516393041215140151457493451659886808037245410276501286635289084905465140851513488274544997129278153783093562262873955755041703089653384323175536824975221908272277809441099573675935001743123308543513946614123837305910531257013022756191884784112632383985540328373317234070656412659337682776235607119152424141866082480197512964080629349411233190672653088534609699657580889970600271502185337727538375241465671943638611619712019878402933250087446080373128540367902126655463299193184992744505005974591958041200116464131502136773256516890979186608724410254943385666074284230539319143370607701191124672076659952181282981257192026443631321669558404916395758718586566462138192110089575545200853083600744312819227729891202012506749305650960562529165991138895715164656029567678181122934168498250182177017803741932716366514860927738220059449323803138599658087414692318467216862131438519986182090857599121347275189915536605277359489858527965582657217661158991364545531888315927441141819762001393664218885607633400728964790066786746376784688095245607046181942209778633313444278406467351775681315588606262617609957054947014949026623556271056388234657475069408017123060477949397578494918036890496808882207559319716328036033594152410016004072480823271042514554466570602940439241676320369532175147322946493707476637200747789309194203789879477064819773509441322321431688514420265623224626986547046799365378786018420679728069599592674831499454007151490544963741285833765036495464417835527348332044684517673283807276594204367408779576306266735361835072252247761814673859254379443603021690085002253833767857759770090553459790714918419041034226765880451216054408736701757327116459571547439584213526306277415471429637415137178228827679598565848428015930964455242809553627789628395955545358598927060202431135924746418662596382231152213149132462887088193337873997520023165150529426725498573078486838706470111285902231642680938159774427180591150670324470654424296984797940873127979486198201891353281788613538226787092329803837428976383541991816441421293089822867689259185050298819746558046383163265227038928276353783089231655923798780935298907599909292282129124655431171154388948464983476111247437433051059617845124866020490743091085731502556329882966575731743571933748376506686273837018208404175214192387524848084233987495660336185174153681573069007722719742683324573321914345414492532676598285962683777847901530074574665197458839676039579765140472723945702208674053817480648180706610093876175831808382883926666867326243110381977700499543130387501865062998873685958477180860929302148872828197493867249288311934158976613719462937983564082221792494067601604627096620751676449764777108587446755162054558300636154986716589188137757753928411783679677490302572571350078497601782586274291940854590146508484431842822835620490310392042215126217363022606804705705228949160414242983796349651444736447182937009789371598239357284719201852211938372967418122639603551243083463099768539764544735273379901008336082727677424161066141095061812188552961594751866001195030829561734682490316578073623321052027362952550912858954503890942639804022772206295350789226988976844756042100852651251788814288873444016007441214582794996291083871505721656669382897720583529910340157323880329554826800318035864409015571191044509449726786830594164813932936686416567149452604271991217127167529149504735837873287471697657393116911154000478174375290871272390962168145059781148277880774794500315160120350662941237010551320867395598696369831062541350713001001737882148182923845599327967184835436489504654581811878965962445272233975376950737969631777955174282241599139663406239127353305393034236868326272528888001206431823562909422005476875597069557065891083168886850499292995106755031967445046310290796316352845559731006953211118552641468818263604827025201602112169053964319764270250441742138130631813106143557774708805073917730613823348443957398178103611867172179854094783137776083381663438849454564570574819643476482465048738523488594624405345747910496099628761993044648055734211975267854951881680150185068806199556369819840129361920652901399642541721104407184071908987406484380577525452567892605506267317709102270632558758618321414804575020842671731238048438382884696602353315153778940509104722912622678202107389935097206713051177845964815352111714951461580549705512472501176084280890293551363912775325986587859456998959536150781617948366915936895040444857688422604011762314961077984838624565240806372842459854038707909867352179492244981362638506277364066085872930566708281008233558679514185594609339121123660576586983314991377268845099843041704536926030648406607289121656139605721343103303339001354451046244665796082403517512042814037655181072652238547259053925415381493997172567928793030851068125588919994650904413465168831928076435913536667264115761390757419289143261078230637354865694377701755053854153235087049523175921278943550184381182790118173820009999755453334422246633788791632493374355551744389283410581224314130881910904721005659364582473679409441987928458583398043779770240660942867334231575134885850737487452123722161835840169965628270463423434333134890007445009960797868637027954347476192044118734437643537072791037360485198020438376580569215629011082773997662010462000639923505274848396803689827897606311972651615350755844647826483489545683296859063237107148686167327975255148866107833926598007666452112679164385950993847043918675706364757275652201121885553012853112764618152438151085175799205561149065051939232769703333556488770792383540406851828785726775501069550708671709578934419373177135766546910959415564196963769786146019449280202114638399987125422256583628243852094549036219830356940450860754920559953786159917379691765330039656756087557636626008600820518181729607217254105878951593173819829597111086561538433418802295388978207692026625819389388603385395938266983394164467534013934203327862813491432925686832992652950940179891694295074016093873172349517214239851129659125328058163073663717753227422861531218129297233410314620556717108422304528671551123889245531053826879307383495056913357498870182210349714177815960969177283793649789043953387915928978404543256617064733518620163155683141386247327818558426362281285089852276460622411237193760709247490795279625471903939179390689446489032373089719139629523365502026464509441036644747529055788599093624615468157328749222177004564747701481047952287059204863210765753967534959220991189572591184241382619934196157422950076205910602199450335856831301330924164992315089992692646875492741648239833763529300137748782456788553389688934174307660366390007858432852578662161311784549262272719145707347190968237805092973027426108816132163665359039808341501272329068779748875565656442429955866226939326995282931043133845424459173737858376365568768510801349822959757303916920116503419852645032191031558736519077519524920028077509333149607113419066230891972569806951714586166330455745029335112351424575677632520415994730994236347549925932705431050559321237162053898775869547507603007115174173839627402131803538400702105222893155713230588794297227409496843396937550717869494859520335439316392813701150460034202807639494393918325689381346386180770783141657092700589503178155875089188306009195556924087094838409177801344019889284171728815237584768075012219870166965413566266831415750250600940738727796559686366777616893673637677752303398429159737728730066447010231894301223996547873352387211206316570413402656608999385186792902843608768947054511227055871836615757983023560079181624754875084125362330499981846846516990806011645071153450800253689409481482009361897692496527335141608098710746334415423885489113081434351756827066499375463271749415430132599650926682298789241026444509757346905385835022225721162089733419104999931875816855614034093536078271145284366929563694986447403227883401788341241880262944347982204348709184383569414689402805803421310803812097454101149626148984902625037059630041248712951708355000038679233353135403314560984422757061959499199123275073825662343352527855022613086633550659829930618723914443840562164514642449990069536519304922862996266442511306737743122840394686387459020717520672901283648168352865587315795027606828644754467414205098850232477981249236578774197116376614790786583192081482564236976362279243406293208197221929939067871195037343713347937649945983122802609683764052921757156853847714029324879749950957168313062579133064060890396276568186180431300162773908522978080381326996378221202246246488595497211094091244540744345251448195797747165438562046243049526992759815675448825865669716555134122510318200598452304490916846055257346818817220099754344734319084950894876837655894340948079326614270066137001623009624008760227132440651012096323379139682246516474103085355463327474062372068512258709284390292908485740873385921060768624624188852442317632259253086588661593371406933012409667258495703865349429894978026258912392191063908184291268199105598409532873806005144418059737379273177868789976805176460779875885017955651462716675649068497206411707539870756167835717297805007393412108573438272800792295459356022274190827451788717303878486168529166715169279435358843600847141178529279269920871084970246977839377944937127188218495382632665934088873283701815746090257761596450850209038145653489979844141715375837063971630760035704634803531332878653098484577975016169645150595338086981143775029954181098923232110226747614852418332044018893509276049547582278256183859376727464645973424215482682696263796351777532411723297910601552119537464567983220051530772866126122290887796655779015508203180767836724887219215558483154938627831161973806141142502718335699276536903052827387761807176027442935990650830450659930931623034816723700486739495818346534606265375305254675448888052254967608275437093250992081226011944118728861565296222521467567710682866047004554247268610970620681740012271430026274922982392034232493031299845529579103823729992245952310330071355646271480272980313688557614184932257593012213508362227400233617279197690137830444175426338178465559337695408734000431822905912146490566273734189116409116370595139592581370502635495435109755985115809846781040543205345448415416916085011746573522415548540540630209522890437274279253167132797892237561262498414439658100554526050272320355462991984309858774309558451321568760695842589341628975280006081472158487477865866829232835990076318863163254744659168920312934366054252301803861283519111778708743135759715830848577397794070750750013952342248372853533220854645147242334006290624763783436338807674466266744534237296657544879022301845245237190377175923092799734193464539831921079946047342994747633535857671345568890221070476983929727715417860525655875178640498926022368034439451766000913711554618052464349616894621290140998972284095684953895747193086099025589568777284246590163003172762999408658776476942055888879472104770422678108430742735531414312992269320150457337401386784844627586703963168387016951185133253724646603587935468376520387569390352161536887174598574945806511097431557680167404161774567435823889374426754607318417803051983425504640276234278052552381761772810288109348652694666897199763818169363808558010838513523544393644585949713958705810707247808964501458338344717372710814055038211366141179080760833754436038214195623931023010632814667341945590002885235585145787987279638406799529680414319065425384912325461226671167943941139147339152478099353234166965471756186157182668408449810789064626217859662679217264010369108216478191489801008674543939084746898718076638012525520724530140018296603268352356251165203716433085271077693756341085997233262090606639445214138254496415914589229098449077651977286304945703462977361339858089067192839137004080452800729009371733519886019057899361427325792242112153993334264079061043261417563823366956713258467914551190929811766866837002846256092368629409080273795113170853846459718037802811118632511764714605162371522945117242102939285288747159278045346283582186614082924949480126983315597708371503635885757306175242241181160696141655244049273294269042331767957118895255474149130007120381523410775699054077237945637089853805275716101444853223051597817328976670058482258558144395806432088411544023858905014025222395217584711553193561420284855881337487988093401870155004954340968306857152681637711906482826634990190435074869830629488767892935127898158692190759113424769964433547813415599771693607729759868712021619770759349672242730378692289227726663735151940908326855619472011416097088744376216036104997159667888209301318289738403803168822406539598850186660464958846751230243291512194609297047534237755735536168384402094090998927300534995037651869226978080475669246400076129975772976218849826433952424962781914758423397083817209062384287030093777181958621573325457426855452952036509255497530574020412072364840887752755369446008328903985356263191533081573060490314650999134209058136310956642348203438067334635532714359611427386080525053459208046971117592697082972504146209302710436889181722152494365487992619883562680757985903284262989891157486723226066410606604874885308342702514486277920883030387979886001849192972852386988810520310272689190141450470629424839620051296282952470314422654885369513538563823700045532287408130968231901833810602125047338961094877275479892042119008584060891407220144681981992600048892808627618612724363988910004538230072538396199549157911486769981646247948365471252730199658682274221397568253463062477832465294210082037310965622051546801675067515395363468029835801679365086042780165715793614621217707344476074001014539702881361516667555435670629792947677812822983162997603025777265883463554030946515665499480582225361074235211665380756257920794942002142629798522107257530353819032321824947812545281078027823409845614663736851659541713517986746997481465807821066114674165783659799420447240830825459668697991814554549101520701120552759143444800773225558566393456135025986646214468401621532239205238593434197975180140685578762605032056500287002778009912238944800214588071439987614597879934311347009156677366957592698044120407835226014270250800576638500924195345045080378481448506440068938098429704367048702606637211238250752335788762238245149520836610678651754317551853572313360801143632321509465070540985625087118598905684793039823908157599896410134879490607699512928213473591868777905020583196402032620123824477211564221815637505352233186409501470199377748915436849671094469551978535967435141883669490211325024964610473316198558378393436669644859988957695667380981896723291926446581892973094133187598655958127993844322191026514257270538113858750728082576718000107264924600315966565384319790382778712019776876659888530321688281350247646535261998308748609383395071948949593903118318248949643749701917860246816833513115351544189065775289076257802095301871025181511127865077659408206746508646931259342228174209099594058011914519606073048422257385195763212219211467669419382014307026531153440080500234644998543606523153199658005703388205146552071815699208705801710306367500860543100360464126904879516695943418312946360214689644317188730964229630804679438719845304148172336051687032945678635603924333449465953889175526361294627436274755775867413346153955228913120538133697607116637589978133271693748871729677740467209147879939862803526045283966669026614447103912488916288720714077287816968200306426158212929380345171238192787936093315363501380783387629010438807552082108289193808337497319424748163302590947759557450723451179769823567644900663033432716533585054678253589261255346743609089350962782600998525562893140798351311925367601941875807792723857744660178249095516577778285926053609505558282406871105307363302869598091195139323213971029646005813961983845019218628761788607401936766197811240699863679400101907275711214814067794675229939369791831126089542374106120838261197675731868353947849676920840805055783041462956690515322260221795900658640876281587063133854174979322665081283904083473618223149082900218081306082910606948748922222804668327729444380730383409295685563576211780278930872598410725429390316318305162881727416784542107245100163044626089342158084562293767022876293150719626524584260729806438798770997893468824867029578280915309139741619607589814779763542373101514078121259063463523782032204767007632818234131166125533139946212214074937900533654191741588895031839374204727709889338457802966753807902185087560641372701233254554347109148265000057282542196228464589046285777856837319829920923136534496869667638744300172745784194465826840509938938511999235935335873300750349532815262904026955528656785665112435129048942995196892126304681824454573384629108239611623087112194635265153039987001820504581676440405463012916619421611686838941885034015189430122113993577302576067554311202765288959102417466067251131187848770568684164560654225534766267189317008194953125609025659893208189805854186101667932065812759534445421292411644314363434851326396442157992138968858628176562526991694173892388671437470254193124873187148344728656980630373203302830780872832072783851782227912322928456791946021183586589232715148145993957886603266048144837669124999005076383580423334241244847140098764598798283649227644343078018755327507501903143062644999469977922787944388625715209408845893426763158767187354723820352125386690493461086929662991021691339046046626281272786423745239522489709826470704445375242951921788285278235374802201355099246838385273885521583983393841676877735489935999113464190585381451079158793392235042257464268960899104050784819188407267406332688152904859160753219524177000508813622371252049338324764379459462325155729711105666969327623541561852879508743457540793239160244391148048119225520870025337267870942717128289394449332007203640264159602638753377732182967562356409495078021674251512809322365833462608365827508780801559971715793827187972611626083054257060943731676401299743418157524422969178527267437941794522961572281614721289325343140740472214530308058743829845426494209761472694425765140242132225290435899413981976908743021579256809236950354857358582242207253012762052936751718178802857555661576924829219928208831444030059165699519568854236900097122247902740150217205204231275640538805524727714964072857737626099176573194986635393805585486235055644491529220799824906365380897900198213540403391900218139773616245051315132856045916314695051994515784043448254236052966785564366979072209367583206265547601443779141251383068940656512958296511877361213916079708468724582314338040287291114432746651814995528997560651374894935971890773002178130187531522715931176067155607053311668456117532485314983779257728520412447754671477008795931489557903872800845112268557132717486011303237977306355928965389606866833461752906744411274854663572803431782145997259727004597224956763389787728273675600170572211071371802887006801089751140490785372367101609432428218338471900887123136905508323619005382409513973027111171207085465732070980682236400304367005483120014643422183504865554862914039442590837127008335246090963456983038629287283357592104643138678428346559271268944948314384087689188331804697756612106086543748453211082545580620709995474852705934331430212859712949667989025708846501645836164784925063533974657006310569779027355188962625139321537667054813600780420803469705884693296373367513196027400694937001704235279826994923473651686114315654318584145485483037214097487529450641177194246098325642190295287431283912862801795995810361423092279777428113641572379592749645733897563649190806615662593631166693993289612338986705175583377436096401437686601578668289130092651710444946175440266516101187396661589682125103118113591505693825795537793636990668229877355819797866900891757672178023876385801219017992586440624771485462511106306121707661502771773130648473002402481629000182233583002873283837507286383625119274726327714237092732505951396178101555428746108164688421634631453470725300798388468299048533971613952015187961618381441920406252860631366786285898642122767690359151861049120352297778504230642256066887523985605938562090035844896974355783632342880325450040828847296278142847309745739409563203484871003238404909500449242295458024491629793674521940075760171098829332695947294377723736732056820645837502762325667819213972630023007307221674094360928590240935008421368186470694265288524874807853706686729382666088254959620822689777823600892074751428098388539381747706360418055774882617279678504556462503568128519388522732987228551991380239317695508946572996470608384667794552719836564682138364573389044474155135918498830374138183841147855975785902674790365409578067350170026894796129110863032674251511728103367527463688694938924487983359042844035084783660862071482091405851383685905603832179560289608245209318547838398738110857767984566279698720029587165490979573240909982112918169018937563454596262319538860451782842622720238475081488757503336022748121960456191014127200214459852016716804196145043261029730875942035769602262615208462634201189096105768160641542424423273616930054227930670678068922627381668897458741216685175378697920066408285450444212314361667783516379333557067038822383844600372825186074261053239023489202488318366183858387076984829328736677787439277814172528816512135496267226890366341236755260756148207354834067920880802584798414070846298476758883062398442356514550641445959724019390162836243629629704536720354586325882440539905344670652089545245943267157378115220198435702028853131589878358130363363814089936978637925005630277951708870889158444956341752401353153631815645230624644220588540682521299036236409059374230155705798533691746861760372125393605979794321601124034156703560860418575168911769567012101592157916305230531181351909253679665100040132760616967700031440680376753933043541813816881979740317471081243306778501739584291682237127221769186477726111922093968836235992628494441330036139595852386934539535485146737076356329131072847098860634321504578475302824167068051708289285166818764389417959171300317342752502358854619332193631237764634233313512591484870046896311131021438769319839919230272158708931380322396297033522067285814761628755329396321824517374538291917279169458463785424440469798016427234026999095998122360230446820893783895962269295833590011379049037438373715114831433167967006846903249147111820211985325818427455618201948341896042344342524051822018972052643087706107565028492797240147665234957666787008484896022863760872605191595688067078217539493444200124183122444503173923797569844631072707463636322153133592295146831617840568517126992790716785800000764575708284706845426246847303578796212259877638605641365430959254573352598678540364360151292690980017060991768140052720894876343424544617989193969980815812267388564727985305726560869984684604880211135325679918863762561291101081312180438835633995194827410894116085617838125004134896411334517876848851348908505678446549888864979082201731443763519385716798039149564744192727377593010347798714481056308429390862155119989211981473496691553360531848615680201031376548711668884619205616327054171739882645141282377271139115528933642006998586936377614757219697596252181811249290726408901724329292208859335160583836026635327790356788277867669490058610853585250410650996445497510297041046890716666262882802627905237559718023511579518109705019751222703554570543624046428445152845768359721980884225403163876876641070873992026829969630833105312506289136249199716468567737791532762695044291166669279423697085542313126297935751293636675244047029056496360372796987005758197878720032046996208859012775260669238131686211190610696701129941279596292653392504487866284869532614512107807048886440226975045857938375719297151598776681827846584246565944233481227048670710135554445048099463792353351363709248848460377887622839776906627521605388524228057767295178866869104430408545718895567314024348708056945764863705753304541855056265357345178238029107510374519775897954886880346249560891141025290278843638343355153879263775055635165614465055291573783121709450019140645079816983673540344540550107520567879917696381469758349512112620176365763421563231294780368394442357278558989317316949556679224837981846886532478786471265005274621205929019090484331116825204192909369396590719004675353136119542852563166078792141066038277413799059026522573583857162432297145606781073458789236370798264912908461547911825239729227140339513903129970061884530614249943790214680018469372362526315777583220044141003000629390233412062046181574789931850399604745686222738021442977591354120446196228589619691918911073237095709164619629619218379203400423259517328681811812039219547472680894066025827620074353671039442314794466573008971296679067211372048717410386901282301044636479362544351836075202950821781587670901211764008144894162544770090101355168559784613756552802051815226331809179447500882401321670158163245228848024179631658224609684562597361937682458445046631915527427780329305756191152525691625570526849161118748145883452854547731583111116424002256616164475871013358635905839124948352813281940245967627301550028364250992349280008408684284562092366303611181782869366751024422139300053919617103887497661203753300564271941907185554657452584046464569853386244481762818165001217881797455028399621269033233528152665861544676757586716969250922302973792650473685202902467516330224517286047210311079837293290244397084261273473392253890748882820329474488781550430750001917258370583352312652822868080071051346889156933357335209757120755574313820474638412580646079702518516823295036874613135385441214594625206265971030268525280936361854511977073239267787455465323531842281647550319801500441842887716848127319064557719575380373368959437410489727515675068298510037697981374560047330180156764963402930024656051798031371662289830300518885150880185321789106137477020507053079988886553686213866617613701001484734215643316807164260741672964576082746355505936173929891234929507277871421910289561685048492566410346720769595012912023448280700884215436112180133377066984574015999935465256064459157153686545124707379205667160865225219465517875323023552196586534283975777717822422730043943869571539428772210503059738771033476862370855779834352671936169334150116340881462914428409998261155094535483022825840135239241298793809576240150322278028472800553294255494421362725392634138857081697621911071688014201224303464418214509541608197261313793355568654039565228565536250064995552501271777579229809108256145153856183479025304830217337664266163326402839492990128564806582359341895377744249408281013762367736847164581981218080561158372916500435170291378765730473604263474909722134524875324797900054053253026032140555503388022013279022019124648192028772863881343724755160456439217361612547669771304027342467079604785494660815501379002440262990649056788596339218584581428056428914327126814401881995742092240784505700993115576954010430831624942655826155836826085439453549385724389257543263485150119645037492899627122136308522431646351541180272261221842064344734693657003812465254065961581473240452985614213463542017586683092593202029604896317460317113308720586503734418482164391511995410887676821312119622695644557311018144530977282635412170141394319928035526635279747912348350714024678603571474686148970637889011030516093570888750251904865684126155397463454136438617577614771121661027464607666568353457291918203584507856618714101020057136900023860760047971817604195940692021821594658320227780874220960868873669976631231544704283632785857761125300513384375212651465794380667170324055833290495986813383337164696788204264573879005235139710073388879688926701222742976142640352095941828801171652818759488360584122636789514355949832429632567204495127353789851742122744041333016598663069027289317223818882132720759864888852782032233880433600847328725588496319235658115997173112074291046069136951555860040232222730051944765412442354023400682590695658232605279384554719017468466704480169577199999714426726770590317274027261183637606993721576959079693036325938588404060524273558825425712476401851336595550264768874427911626034618647384726426029728161071409618271977321202032818074609960115298370388518555191508981219357353856577315112360105461133980121663885815432283484990858764120749349343035824696013345584662901675925236855396041625380060698958545700477869123607254210584601011980314024509071712306205736285595157253310717552897283143142282671094803709555124724130756617407069903886935996347357612794841973769307017131554854761539457643495204724284468981467689819619093190332380004833453519243868341574450207466495536730866251272822250338571387893285739181455213127128540227813091906757869244929743613818563489448281568474158516873902858888035337952226016621867744350130661051721077352854063552999354272472361768151007164376722420864604268272597393575950989758688823992493264922229354736226246838967262994638591656135044074663045928700259581854903476389984075279394686326190225933324970257201773701949374474552854397761045458190535179968789986035220485641840574821105409377154666201543774363738785324631021129968874824511692462810694565077131442017698737930118594770313349095642867783797997966969132646676950727584765982689511256863813254783530378653179233910981896321535198229655702004149126712484359252143092758917950994237896832141815871521340878148029412151517732351227179051204014211961294146457692684727672215618724704319839551988557915298483490757634793165879726519940332961401535201977780776154249350654477187069746291115554814952424249374403185892026146629527398764988079202724592653753918690332657547506499865357669818005146055140845564194268471870503460794851481191314703288411814428708550631549807064167684725968529448181930868564083366816323778591945447898978582407514564389851641808285245656214159411437315030941826686870824869485154241830893119273532482062279080096572457989702904979790704557808612334678891188172020036719416179728210600354707198499689290689565588954307004570249504321806779611131193261810928372428246295371429737453810429861786035397515357820223398457187656460148386781229627029250600073411180350159442836096242256873035472655770081787528030501853643328390422021352010501680951711568100399335173676564634257534643206169248381803554969921336592739769560232721743686419878401951136328410169360205181533180205496190138806946137296600675614617072233393671530731118759895328314906404608274458586839350985423998665762818101057224790045575037715211569356070233182441447538642458344379258700290282575106677664847778858052928652719114033373358320667459619101130461264481860327693779518079222777889455766098332157978116838238391547219285168452301946195791597201810197733116409780744950355357184549148149113906576612141856262394905624260840474268742012276171992753464195667193286272864643813968977129639823725793680487382701673028499490784071533370473265870574778402087853571206513685487545878907484327657319553791773090523668039919279489803562915278152390457723673558117609592247879468157428479065734271489331248704181119219489561034177101481724938871450140060940742921507792402773616467406156201873415778537378234355622284246554721359216899755494904632235374061942867278541438896884204776631038745732588746440081207425667492265871202330362711825225899504361056076870351246099597002277336590106504776572101451474225484543302864622263911050693378437907706538274231619127920471142425178418573917255504849755849825733050635250368129100763783864071301619639536465062414049054722644258035167319846815454726522578174855245281213102545212069164401079109061442765242749024119909199143252358486963751977852951887431085578639948812048092654973598997393869477306433524457127266607444387696968875251023764180403889582437742843073379666797234460322735825879962592167448564277708704747777636814611886227748193738010706070979666602703397199289784215538735265598357782526441313421405303050086495473429171377587812843004520500907106890997273793550796663716072256433028354289958579959758511527959559870710525832326988670584492846041002118434792453733133925790299249858319477956924970963096045128559290571311262674687943351761783987706129816907088047702756972149516745523364507285073434109518752713600988296450882894927701473530493683766563411985479411998556769660399578331946413057346390460952653355069595302537391332350686994482503325404729036106330400305130768683861635090503968034256652632463098252624026958176207226355488154351040929125198307691816993606924439677862781200193669026845237730933335712190886441601146191670152891157494866200658663752941934108255991531302303203081230440016652425272005725885093040630416937212338649053758523800419053133696971870254966716365936833044906619781507866451594109004824562254858404683122496691068636664525270037668263271829515100249803933243954257957776739150135875393132110449030406034470533965818557651911082138222195832986218383850463902625225442116740766932869298778550452024809681802306871213907664673997840190248070884999559359671340108761452568240181445249563776343365511279595419600251388948806692809578882711104983854276422532288056820205502180057946093579328256716711528042270257238302790287845296806792118285418133879302553203529855451232444713299910802861448294359232442575574263797322847436667664660683122966686010892010027361285285433923129710084656095980148206667941604368141196589240836622638745392531774509232330618128274817622890655895687494986121541974179479155915230781519308396630104462932781252706610366465869395584549054562708178816725781680193742578132412403188851721194054564314163899544097575670557305863177656886180047474325972209181897127422007841358009332102705659576143609628414413781231614196406009670233077776230289924847713407601018478984093284046880733540212974066440602485485353206537844867458206184629979441171979485294771072577228163751334075055141163785667030835499344641292880439103153726872662120190186639181036341550972882680548259475424285132946312575705528251323246424364888927001709823275215522715295671055194481693472687005425754694685997247507144090833011621938674498460965929501175822557872438827411415417529624488770195318073886164336510917259205249813638559201551138174794691679400690930764244003592736245924670936030644101285336372280053048961568927621192129002989713684738421555760383770087243198303326727110372281411314064434012300753202526121819014767414398972792208310567330930446011657686013548314970196037592582574642926442747411786612978291880403300597310419198311084960163235466763465646650048871665319322861940261506636619146919263903793297910668732986353847478079312331173920362622020088675560108626206301266219501005066023765770835014229969769276335071823310481680538391680315386497324558482490657560888277371957313821218366099254299609186565457759542891154268924531040964979663668651131085959745599298075974407768087884525719689758277799619371225448490217719270538981543840548436446025493830613982786731546466169670363081323936404307217931622561093942657057401738869918759473985590601303379136194790494602175645428671919841753539918711941459414899477430041563570713018967832853751120895682151513783226636565307622174032028303769678137692400427305638393031130293374792927593273745882825776241356034114783682498247074065030012924132939909365369955261960849108932023195397248595565231211375449188468724555580588260455746970718841219430992498426501883694451114436825162571314299802011967989579623189441611168143384808561442891984924526266322277137170212359143385548060207756856477627801200362968204944762632421759664624440335253764845709872236720055125741656060205064882566037755152729214498624567296429806334979380803971803194197282468120874959077090600510005143953493231326612040651009043739991633447612592738310381128036931953743079360046501684844568954634667783047421744466605427056293594272967665855227171882820344127389754479266819301154300386025943223714811701393582051255862173817481560893084379830624605017710975063268540236369383908080782844115893714620724272204089090061430052140764809842463324010455627980776650649564549885254932251887035325568456754653265296614042242758865008450027754869246268116112523742188453502397088974992672634663540058352388250546825179666433198604988231673317106206511424921984194118244621605052581563772311449363171968520402097989263697446925478508132953298416082142011308686751183170943238173907721650546337367386463976651679528223240955747555986239836852259622047212107208067628837090601737282119499913493759523004836131623070926606647979143923275413406626022319798292036779551963905117143844523916190649242004460474883676472239551314395291513648924895644746932681214185146753760224068048117058053064097217287313309365667310430513479478600085162663373525851112773133892601369270103034056425388908396588107489480945560295370865558331978153860355684479151238735373766840404005119477402615414644045172282593222795603316741504203456172157107506159476357233954266333158802450947089617499848880356416152647244088047861202358161423864707288606756163391386295972009722855035724566957122952429723481372324027728452867368054251850064945653899702726557687898724775611746539464897165158208155719379808537788973716091492831003554623451564932150680646922680475489645140876051659241113977433401501155649633635392453374001032144813634122829082062805685471625099281400621332344443065303428033774828572694160918422076966496250370822129637610950313132835829662226422986475411146249582445743104052012797785664962597141496070449100958766263641931208788480380278638824278802230052314694285638938466110694558571421366798060285872311889976223713691537796537250393085545601118724520469249707875069857305448588530427389385376623323938664553338330135852779042644384387841164852000840741071990825168592908905941719935269843421150642688098266646405673585925985354218330928142221556978275308107598152480924713998958232884310631926191986844390469447375738357883554487526309950977650607386244189051702108605773825833814459775391703770241615347327963314025578058149794001990988453714420917429738067837354915228696607834115005552451799855218230067225216652963687671035198807023675416712139260096555785708749729586334183039781748139943689925171512554969703884650491805416513988783735306073030813668666459832346887999657738621613785164177522774281355575994104024825277602903193422711393388630824293016281923386975437098434431854150210046721309975205658705341874567855928596649675704878378348278556519923996962896244979731125070244341969397697693540645019841769660779168778675797116479660667602920065942615079659438193879811097197529622825958668152507514910422023709947228582042447472950974878149337915593762611790007641945944281780879755802082887092000323814374505860795187855451604815672612822790130446250965504604890865601728697645814050427864414305064512999584479056935601672380109587460694848924002300429864426877148062709714531057905443057367746012303761607047989095159610719963630906648220562739150680644199713132398406395320861067008249836800935045413075736318722618745908456928513173733466412017897721528845307023637568196876934762815919937200969525298224037028162323918850906705668550437743246451827369804759887938191531733094873669819662844465791392704836494466857980591509390091145842706379409741238633118753936884210482228068330800468225557425607791441637871707967647175343201804903836665071016505958193485244540142659616916953616899502266891690410967606563241977685636462609459238522604754894354398597152276104848692105852418138580726950320994256302201531982742873016982493273246795830603945891935155636569467062875742771919024324800315742256979687807078586623463054410060703948741415342352681692848167969800688908264189183099834002842020340738728625548830305813436864938100110572287211874341099334651096299842010496366780202634218090695849247820547019410014409260119101917484871280235232400422304023877924486622016573291196674878936526548733607922760317855287589433157201644805699567465060356168775203429582495652870193708339744998374554491483975927242448401527602485887469000096838135352193545321405910636781453791916158395481174964963054663932325928238867217702798647663523418713640674808020212704400396970990907812605409571189896025291130286205127289104231249177582517686704777551454616360598688338631404807473492360351385528852025591506434997581188475678483988867978025274525948333802748413358415365064898527823196414544547414377064452873852028770506634105918511353667790732668660679496968635986785455069933099927447713130816866833385941416701902071858759333391978080537659298909320551429752118579875169526379505739306976489056469614044813544508060817994188603022376697530826509338926405671111254978801764011685612080765910340620477503530883155762875012131647062486122072338727973325668601172974894710529387124449918713583598644438036105099714447140750826100202159760522771346015737992592187764489488422856473361592343398003348340724404309514549013348210183709950130654899879874432931078944761765624393870741654657531139327970791937405543409965899875226454234827538846503420049705960889947990529992819349256831247285253487455969989879431809170062602061873232331923522803283939155771505779556946147880863899230984612413647606283000808714702410135475949630518005630190958124618417780174259735450830944849227512891232639759907838705291144972921731506977603951154909580597072808527322143261309791449993315143848248418733578403940479348974177670620048585322367747950029361828955039892751476089732623638118371355742509205600332594389490471432881316795703636226023047536039623167030838874414619384445645784603993008448838702195883316062950875817070959222283632631481664315451767414597978474099888189546673506493866450491393955973210305203107962897880978040855324397007848352970346658039634404800071041475270146338956478724942742091159433274897898783005338361505501085143751503130975649579573425836769281026667493885619931972753710627389987968078714132846780216816269626168348384746338784250356802459605657978042514805453455536281949975950811559571117475581398909017261906056261223418570921989255759695817350519681527948899338372307791253702279371714587812350868459894605057307240756426327841819988037465849727229530488422651968282591488439795455594353694311985230901705574147547048652878458168982213743441922549190238890780160255045878827933335375958141422976986387035830289517476167847516601869487506488484937628171138426449546937432036024520457635140197530556287619929696468230944747540793769652691232196868026119868944893845240846007821316522696365414792690836949024827459488715719174237800680442615799537698725983534033921662620196600824090524553582486781219800447640613029468051120897199401188316510396477273275803627444978345221688135691561807317029659868024949639821591086945162260122178002213106239384915861591721625440224761534081952623958983160803075685270072091297858996627051657224416172137903345918298471263152344433418175279686477239984864514531034325643108259724332284367300393733123078927334657771650596634274761676047327281710890920587685459003989506212971246715051384419797105849866950156335826456637497012896157433768115694584436466314006518128900804049915010584010253442231296187892557939588568813590842985241697349397813336276926901527505379722320772552364619216063721456014759317781231467569131641240498786959488920225082408129499579253463838213396107263649186743905752023006630548213377890636156951125981652290416103240827590634537489097900147908173255760167566268233268433808481014071023919982723813137246763634618724164628689825202310060274329141758481788205944362911495591393124589885974580515207520042896751967331726792190086818956579231927535710553576927184059036903726711474649566658176202772824686553291185890549784579537842353305342259278840944842204103664419226206319357426548907080072787633038105094565965688381792160180049235548007240599706325078787882299222889480981291788837257615791297963355696065210275091909317473505131053475951702106342720501940084611814553762815598711807401805705169565981671181235277479260865101813013740240709259345185744926398964973978675912674824097998582473925020385896683024121978178787191130844891252191851199192252134148923651482049114435067864513856634973694989027023034174913932336024223414172154201136831748935671928567671245999801347507446995453609661416114030178016162809475411804713499945355581396342155599089145046457897259662942675972073115404978917818718366278123536165401735138829794505809061048412528222670111289857540931694480527648720903075375064605313577794409222543798649781704721080153980293010175331916273089761516267610803286240177704608866730539074740821151696605121356254943646105352217266248342071217464015606701929459159272995898197524984515033321286045886989229467903725951211480791306597465463367984734632773161581682458779213006523935212937666221069525614886552037722376913723408078495919775385900958383583903654429730266960413458190087878870455439512200702559675266200344899517043321779180471338475758214256509178525613380303823799075911321399239333236192352399997934624037542826109845077038600705987053246083194740109603954105794937489820408489527238989450758121455745465623427146925839503663307320222170285616722321455017057419712673679614344704653072276202318915675032116189534897063653817321510279708852108986480429240040355718599904895555461485247990878595178741802662537269111808614506070014012617999115376935823113759252851023281050164553381272343226982759418253835450515548237553821169790823456377542619052391965024724870789230929776336181472418217930350467147073798829524847233584606579084223757934157982853689059387705696509018254915165300748171715674438454059056368040343069210610063016078245607911894766242059118425347962620646312704586077654511429336918469822935571919870357896289761810069138931909421599937989139512007799624748998736915346231665799490022841086639800933275099392210549840698568418108779325841575037774892352844739998059074034966471712554096429889609425972069440401363012446738209051820323669994804954982179582116485283606874095095378111905530525832133603956998729597260280470824870578637642487973929597287397986759457579715125683086297199148459252683960359312547983112792270773566622623332249264473228448259756212278426237047328121406713450144039811604622930387768657018897498468401315112511191763237936776085633992739230890774149053699265234399554099398236763184723367394586336663229488783597505015681333738866759072751595364072734735107421221085383240789714768589771249058192496963678726925597675073212130389383308049517523317735825858536277295083952389953033515496463596998233049530933038152358585392253736071199650340820493577021295662540476492554160854973050111515974514948566633268694999737251525082918576430853292050948329204768849074003740026371452544393685143598131150977570783394267280206145119842751962883753262672034959919072849679875565294810944425030488013435478120034665594800203735511296018061488191488014226708927699427260591354935438353750502879738345230875122829226236792369994852713484825391134870097229814063814885715095458773500908907492577268426766437219842743691238982267442687793890406431761300074219620407558567096716029512845245566534400977072821778935656794627223090989542895952463949396126426956209594249740416431338145659793191193515415226172610568087382359470141258091377402745286433375064269175394013480099669573249487731016100255704566525479491763529852125232640094433531439511922108583258771557353683755493890848375540154691413148755338180795397702956194183433547969010063401302471329094822281237884826581585973812488649045015455497938524845157192881550520685522241436220875221589727304244749185290547523973919101285298052553102104703862849915184488767847026134591914846501809774092935509775109955821598124786127794685435731123085589659555592060307308049945075626621735445662824840169747200620118213530695856523430015675408862141450458765281863178030413487183407687974482958265407243033446580558803949308794933008971563312208201555710538532574741866619701292841084203630487614405100220752473523719255400117033262104195316947110880617313205194497978879007141471404926792999758313871436252628857275957136354026152541954688577480088771100328372151660031449127291001668112024114626056826324812510488826042641039911097404395820344099837635644752569866129626702267538441937595271973901455187596543155175182923919414103035148375506721892611824414587866937543391852601666978739675662726746221692664466691742529142549935185227385055469063812350920427128083450067432967261776996724182552736913952417064169918683530663788031800837813386989659987471426872890192497020787415803999658878195013762746225776909493015867923915960165504149282844009248292887321947986540733504483562143597918992465971314218192022481560827593310335301116593559322992896686646105058203519242879441022054254601826086386498993527832715802781616137468301917614088605700178826300930041068913322146117531471021060529809846386999693079019043542309602148406630049366889793933748476066757747350931929529006422361351161899578882015962437150674794684821141486231049846187535517855584405120494236839099069318604156224798781593657581008512308526482478272566874866116548905916437312838499110163417416669253327497436074860085447346059003966684507377431102989480079022289355703733992821133311125177072073915333710082728890739066321629581995362237938657208298032488599945074439937461290242888206019221911597596866295748996356912040463962529220944745520951484874561094803804450545501549818830614060214128527094738406997783262820830504484775702786203048628630345970271566103947832970232023245365187935431166328834741750125525613153040446850250081484566610022829608163565072580762774298793542527750545441403453348575574590545121246252484614565076671838105380574960382222100588646772513565911823803343961608257285208711180573229783731693723834606877301548678741475775679024546341289282666377601427073498776452988461571031771409125185478152505115277117150546032347213105952514670899495621253418466096645334971206651649433845605186996136964315193862842373778100908786689156686854546465026550803897226633010377176989996643726986618828883257798876802766760933549609263724974795354762978214160975613536267683539432522846803869667277533319294487519882221818161899303558865438153994522711020109314506758100143138097049764903592208919552671367423191341094799967758255730222004318010347849933342764863737421583887687871422347507979800833487312270641153209565085214386039117090280650703605214460369469154710914451779149791553395907706210328969158835187681171159120572995212034975453156992973782475742223302670379732678598015507624694973498403807641932138781268252236550004594406893450347766568556952901313756693722114466573447096518316626366871896862582017914039474910704114535538062756579433804094081376190766684565164225512453241376422126317052091666089209608625807688761137331549048040507251288510132562642646536947987984200440918240429675808279856097119598312093150975106046594169327478233701939862045391620462773548599061690920492355210758330345232078290731701473913971844413462987887789512817885872698546798702441712975762098134239617389821858229914957162526380181313487903681329051822396785765581595984906290381489231615984171739139018085719368128695125754348296792856041008021928779678739094076576250192398798676652397163953335571708416589304323777753087306616334682686175686261007810386729445722438869884552645699409704939005586249814958219920558540580100316652035811780080106939163545289730056290799470242932328047686643722843284987657084754733861886695987108843269093264331046715576902533784391560824865564967381357846864245378133644099859345844159273505927763496439949816516215281250988563674533555655716857786125457226089253836972310461572214795145363637265772563340346241278085759006890120182568340646410490270674392258356501425849444029956526689757781304114313903460430679488790048341823382850009968483871042278021369903896440229921334352550209903588476824329909294406445491837884642370965215982682408466576974968083412757610712273213731841569837655348523487578975273543551540563755138594698747015857511667248764244157409495509024249004961448256677740183064604391585782922764572640124140421395234034519345443294031264619284610792045458911340818829612406461093439178427632673959422843079814171121392325362310716593212369167664048157589823198747170530079733712999011880006524327062579641432734316295949360457100785270550118129079565549079047510409716763138244200513342196999317028259168840583503511901205089106706957286636794288641749504471844658807146337272294272353668333168186268671498691530324965692521374746978767673426115930640652705133041527891394938535317424258524843323920330160011140506632480374798053747020070715440510044225378106773837108399237235195271172665392020886282260367470540205115319731896519775396408094538027494930446821827827895778381073063161641457070461144660248448729932166143565971769596089916670352721635940102772797810514272855104607466602539477628170585295944800752129290455502499118543605082280492966508453307939522572941668589198130729905131363832769170727186433411667102538978013825302712816858023581677193026980073960272793737684303121178185641631574713259888757318068304498630651393011863420531742090827847506174168618000971567904273301806225245011489540001678978611577722401225782224129893759334135529579415621912972145194921872042133968743908800169818493980410234245777964268764881976671218043408777666933704544707447599790377883610946487555399776814152987600009130481621726140882466111345037224341826955034792469990597029270132872026724753381765669582811327699671608006838177558173012187692826816830470853913165938107157941180292804218841868393293756016031541329186918665456416925463620365517812486671232552274799236486663394143453728450138197733158367815911761202264012156636605330252657758946026982837493691261999347569425039441890560180336968876226234958885619156600981325039142092164249258885242274257849029358719962406492299794904355146340234278046725179962376563000611719686374249600496298726330649459324215962531662832674963859959741061821363398924448932345529950232573328393147529114439347594740554681594106876586482264983500658486149639745163646345429969309526614836419276885263333371207550895108465782301282247710328277497907930944203290885251584852421615926566283448962754591716969252209606249899062663337351061662644143315789096095104583215924175092517746865127185034243926300321997026610641324195577627071112576343779010976436776875302828673348846538187656648976751614279282736139624972175118695785731641013197785884563328999172886475760449515819507333984164431420223919861734475387533950701865059886465079688138034331241367240828393557909998937819623635264911646974731777172493824620331336566661950991716358232721145865997007428081675675445289079438836100311325153943029606337663267339550830322885755002353649876180775234964858896018084103875337099870543866048463025402928791150011865107701782961879334183237935812600635376446230393859828887221497793141222204413602678308123951797786703553734357862261607918275543447389430943175115319799261997468681682336413987301530320826216930061106708185331827592382486842456237448367948922732262054275757996296820338958924880370903626779681640947622700311261226374016931448119231233034748746717483771554557854045888559402688947005486062514566829472137015553144229421639847882991846686895822288497882255081926834544332129038330227462492102343671725583812934449384631680614647076176909710169427710405958235496048171306113924376241385767535684203969803629185684668628948285287213615827494331969808618062380205082048570298658895420486614703882863911890524182631959483500719967356389817626743313447277063423201740795113770013568862697039136992917112416331612618299610286072443968609592245865943452459501358605911834938191078839784701040908970965567405882557134935821828458357107943063795958744214321427220894536311893266137343864344282764085646393587342315737488856584531029241956068001800841362579111429036778603090877584359336030291604150447534851211701641688348062061913303612508592982509296937406367256273314536441845664743537088026318655675052452503260376922239922471234820679751436921743417207153182815993325846582560820377634893088345879810377340237607502557142955781048681626021909119410181929003132993023348748291320411425147733863124915514946227643820309900862762721606088216880297458256284807794212156040280323406838983383279697366752142415004960214255719211223475516713622883143357009052254922459761255058677940103659513970658175628458875321840223665768535661262597060565739219849398629146427910371915219668733275417834256622745966660022084107118858101671184263896120117833398063816465895085280761972882501039326754380828173025653045281040436321666606571384596713557149923227084016914387778973109636394770077603460319531831532293326497378407253377024232404949163164633277079061273141289811219451069718742554491155816668961477911345105277555711617450389021514873479281297319073467629179745260032186114922601188693159589045009905751051892711047737622172876006732616299212928574636998378851975566850114458368380720567256261257908002179754298779801302520891631743945509760566352510003507116230551826840738105463331889966020390580653384695736985831234826464856940929338411805931603078453061350840268707479637570153290616258592198974346364925970606294781247322676456519144801628304963278357968584922931795005793016654967943975060442615892061990609021340051568503253499375948601013727313608686082305970636733975225207278383662689049581985236068587500776679924317145777133651986071550934562285450367601414463221849741448481389623040815006241983295764988168508469139164977196415212012646855167156027041062342208920746974442371625875323680392454527188670815498843050646368986540124900489257075950359436751256465251618150720798522074282993010765159043138067476278324712544368346217456397261426661415254006012968292717166103904051493976878305681181428472680422299642367282604185817484493757165335500692755245462945267542964858590416562520767012648163995272751877205879637589309960746416280304798428009417540473772690927010638380434870062513725388501571929016907135034943218101963144358795534338431389281161814681512998267639330864612889147993957725957350325638890831612791054998973404405618892928657002317095558344763859475667132975157542114197627732807015581730404987414745290010402964177441311437377489866702337688388645495403345528915369672904681805915757960670369685542907557152619388456958544296582126384202394440461991690491965795622652539727172580085929689276519295029282302961369994255579889363754669973088222374278931631083884856166111185950834246872777461802833218244186700076935519339924620423091169124180899992147655032131425957399935625192047369192000123575450529171908177630435140983242099380507206849472834259655143568086994985110334691183829102111693242465546288240743786170403449911734646042334360633214882500067328302070190141149443159299178571557635207666107909000402336116366272037289710868545623208983024978373381285473081624160096089054886019867362172099157782037556234088459744107761980911832779638384958737082741808058592734345676330010724553251317702949724961225795584577363934608449473716413027791946461326324259601787022219407490380062044740994806474876364947979600225511813715602751143660740458712755928503080883988984675803283231995682697719134161527755093571262018006923519730468405737543938555364005071710529998454829206727908166545883507199650816133540754182991300726557659250641381188995443141467353499535934281442338983308485940152319822754611018235578643210391419548183197570901356237685550532961120157848437697505876227771538599050786703861953418807981138921795068619014678343147034641612985631431288943342558543501467817686020528261593678712865507145354130701798626318690249009151882495752890480777411825814356535891601766516545859166192114473552819781849416203963941153118189690703290886836101380048134318740784702217165588722527644383202818790962189983561369026734734966076624468203139755859625156506679712495383318939600893244682690690251733897645556212254537238528018430214128199311146634582685384917590484114092667303428998135835961242642822582724331731513315778984127785338664310166888419381462779975270337024811571545150116344865761799937629915545418975007383191287058744240276729101172011484348634931938819852164375520744301456202219369896131795436187832365069451486816324166465081133833956746437374671330167124016119784879460617653056209092405924940530025421725443463979104911938203853886267818417202622446750712839053253894429192459586989241975732196842912103659550427117487676881609188016290549483129992041979036673185672629021741032349155366085463873069872393899080241026293442024384424563292836080892151067693104575680012185464478019373051182845280287655777981889150008039711540042170905175606056593600790531445846158731078361945060928598541860809897930834954739748504049128460454049570923657234004526444846563466885973326147397520723061053509049402101762393331292417837860341876069255391592424100321169831799274992406478368022108562816228213638331294424884935828214679722917567651527081246242571796885336466023902770501493048171832103644059326385043890907158916656376700837876860209228734300554506278560988447305738184386333870503432638602752449302385044356301678176942008509183700070174188495182768925288916741121721444168912344605516351519142953696268399751766877244714087744546463299062436532065492912587067477525679419728482209839399914555120257834997536793052776583283344912783480758636227140797866329462510664244977112119731146921773770255569592843174582706513777966384388322153095192886545680452235899084283815463514234450105561102303366329970081174378788394704261193500242033309641412229566205609209974251153596520054818053125070545776847715534123634612310417675333238660239898741646765841165632870269538149541916739678237094169227243912721930350217941242355667643785222271182999605491424964982149363781856056202851112989477718027174986077457189907218538640594759057432220867103465252435855637804117416607377284392491215654709284398476341884695400176434198738221419547328697869185040550838061106360222114377276072756322472981131268263106613405788371555885624051267595007808550011686463955391005450678948283591885902618101810321397325873401545197139201093537974294786643780314465346546952624493322613496861654436533480541847300331605063644322836799524889372112650065427135349788082177833371711288425880897322598921308258386766655795464569163435384572186654029126000012639997823961711500333051694139437265909615590267631474312907994388913474826060652885467610953087999380503226224270403986881307162200699459942931928218949977424592183439784829635491247898205340538958178788049465413717402523826218931480327998493620076743414981965474427599595292872039486040097304634881914607651318357602443905334029222100386026949419235650454780362260002839662933709795411613855381238968013824092967502428998966686590111565888279642237164335790046251663931806527573235479987688692905983521786325679329157347604470741191195205873120520334872050353859850930407357085606871185617141734017491452936512934451573644377437872412657566193405451930294449975418068037971821576896030122395465745994214003700827254398703525297457846180577545128222505476490586855194969713043131794914032391115187773673089321554717014995126758193510414778034443755043068971408778917571211839041533288878334016457032829625969726163853445522177735862201510910880504384658706383778811596169238713473019211393270882592115346131132281580048910752326704768561193889967042780984738149435181650999083183398077515904354282530898050798855683325907879493156950637926818261005050978357122050592194137322288432296812541041729405557086993529986048932771589664874703158624725694837370208965132163148741108997914169872084662777685315920365813330433064683480817165705459518729438644360706631735632145132220413142250564408624432243744516143897002783188331890860302924380446538317270066490573082907123439827860080647085911686613968209745090598108060257425279040072969072055313019056184040382641242830341036697157071125428606735152034366394820866887874837159594881110430972590789923275791024396302444894362956511264073410267823079587674486888683143989238735516187858607002888553894918253602523364886045584718271749698890757594726516733603552445311594840786907032510877589879504272129716942168569694401987758267823844408642898224418350376504113034756784631468810285173840232789718443962589281544338546027162161493255516270769688882300370182744093126096766104541590396500797863572961554165801154405067933507648786613313879054825150307127813834928615406184506920821553492136672517079966664372289030930208208995561427637804363648740376919419033019428331571668035862812608355153590584801842673609647527605874231653980568830311238015979648854733967315538562575568697965059262647258950588474576482332020408385244201417643103874058765763425832088570154666426032599678813110933755169284081598791404822818067540005309970761766110372585694915131558096394628146243465823794021800488368333790816234833736266198816003814565460390183262584642805902825316195620736820039000068351729507918211901087596513793470668078587044343537335873620833747495332193260746797446361963823058555229305849494162309791302918327263006575117293591952239776983075793330936455956853818111040929770132875413941935345910710795293303536327308367627414984405781575941630376134474592276549468942678711653182066523805356445026141281116416976150817180660666350802409771291280243195442749082318539971690090897087896848499180476956623123655050468462177980094926975906384750484998824075667827454907905967517523184853500731527479891924289562717806729128148844893589499100639576365919835257245190807457542720590637747240874157501310441499928295936858403719301875800438466372599791654190565511091069751712202729423130954353046488353205950434255502932613939141157040362588591872540729216825904688913243877332745549186294106510214676949706487993940220237033559349948335932478834455428612813362509776153538954737591231004584043168755100916803774548703438600688860827606055010903252362939690874438299271818323391841675834725595109979871060158419652143123742843692905269347618724379832660360676144798408333920909812374703205056159270308286207885265729372673955782033692032719405627998600500549620613835190357129790526826014988905842805626651401374887432144647255700987021915040101887806667978887445887583237800903321875525648943612104404880145687474629673234863874181587731614144102626010875941919697962429562202725039104800541937306773990044042251442965492898875411240362458620167531467956735016721264683213090368537181019812861705760517164462573830458641000561175444881563594549676736632658428218515138915391425755563465788033475194910030090510081976161419636285359818027759851640699261072123008432583993563507283859387645476967310859911707868882864220921847543603229067059787693892572783829349752354997917897732032960023589662279201578152606361672829226952268649179496365823391748575730966585326717435772728351159132125137462439540197264043964961985644082471571358957466470538357335100855621886608424674953394519834635905511282755114686091714032010352070486227651885327899528111240438565228961045181248682412639923591637751319701690695797460978139421163527023725437147063359854010054780402999550320392942560551077827342988905558089190762933505569017965457578051110991713377471377384790700522533874051838486457727710513752417701222357605886649815914760478239436018382102928932180001512156420955124746198027272450323301851337262755659909491453414691366708795956848237350993109036373378410922051846669504293872526871634393899971878337083521859663900479403359432079522273432476141408479837758958884790617175412510309135725264289484357116412004059677979915245406307604200891740039243883144911467770031419250185321240821760050526675346479319785264938672172686034368831456537896382843882684529643950176771520383035795290478671101371419217543456368680302541107476532570736910990657734035797558383882997169668062620602826688110190335646561937403892994696075008136593210186774223763766093128346722606032938991755015851863023641535378609726791465349594449228442884956896390410704588910308680184713692497131407205212629793482395109145336496646164548796793238473968012171207125431171217855340296932536184121354447946287721279074003494593844027696525783359035297089834936720801725046794976428181445044134214095241646232509627373214930013870113298125154262127861452001599568419464222910461110420317753233733263702103265423353916796634469017771802062578055951659972219924211328805711511045777753941904144889756985341590142690242994752990379539270612898397470666111166588009156309429019430312871153443056248724150985783469612819762229360930302160820155119978590448588440279751170558332213962201584926626803479255732787157831138940766338076653907375223396774848335098713913181118218946568676980179935183322649442608393040820961744061621022635837156600744604967321881418951932419964680715699437562866318643664322871113546003180639930699843571128200708651856860713772479526839377725202736040575759897796033884894978182669303028040052468806391978036188816009985754391428198578878153700084695702109753645817988205980288355273948474417232541424303017521082205093720375184225701466858224547250954890495969630986189734988494351987722592111043563332207995285400657835335500329786670954413156670012476943012543839090164332054809558100093271364456262629099009594798823660388017971313807139295938553191021070748793548470400630572249376236492654211115092126359855006600887150139649922344786180118731877289971207567698995629107674504430115229150098472122273411287322708899504141463707178950866717792077495588794300052095231325631237581461204865727809433539425608379363353959269803398032338242832096750829926816636925339980747031451693620255001000293809207126703570850004954381369415647960305860218426516457203637139353960150560597030061738857441617387411970983318938309225894916234569395645565964831143984514553915927941404803597546702751335888483276338530798938431773170938641517625933950802636502341524554449081243017000486359530046995423920187846367606840688297729383636542913160625195150680652407476064854489111755459026212884532194177937285268652038768390902586883075193886537828892610929082746393116059959526170180880136600699118773129867401099828675959814324670633965279919166360292374593600014722186223152377951627480895416126982442191807732969223769750468720559590382684767314754968375224104987491947769133403552914280198225891219024003643188152540612849694288878430028411511087708430416942076019200697487676826392760814654874715807416219709716153090330024397324644983866296737950506301962450885755875170531887827333364792947620565674847684250404191513729190353127416153132125516020635251594855970536409919874548136942775811660714834801454299159768084830050865674219114573557039860675924217734453475852679748659545413514857951592332206186519670275329809404586337468418036243944267884779386928361792142329080442608009421127673497230121156675149863768666367737146313006069169324359416053634908939829271611790917096938755036220384703701655960266989333138607792408791566102298823129921547707976139026373453845137031794033712341169702818169250934294013842013741980841635103625722632955095617029461056250892859128109227180931871387235893746811664583613968621560939940395576767099807860159619849533918601431242793840043306614926784129194986825144883326682230130476335470085632726027151934250070177060191890843053397450630970451056569685895649426182926962044594038459620571948691629023078307841723182927754746002062407781278340687506272276132611276014155739680402554365525330371300542352644676289561082038078732857701039552747073686401643915482538408870414066444453689409169842310203156770997473182542948737373048755989991139449604196326026780850593516615075867451886722319834058431670591528361761651909244603516855530605933189938738700476281364971206092299584858823428125859953675926440228862742924603172330881762001806414177646066159994105282626325566775686862112221604718062312355730989253932138033537338632667991065890897029880105670297647516831403926511649872680401030094182942767614771715738363047169848017793598982357578477093012554364902403146612580694761931286318375065683640744309343184269595926861916304195680359399275046833316602223495980681661372619168933230549217298831353111574535102207633354424902713941866771468929446547604777037935509045646192554700399836031576223768723265160345852872381126486020038648363016179393006974134415492147996397387206899187824463314237759968106747342989424995611612510696509578185001656955583683881560267532797295475480355273101120565923684070390594598816884680226439195298436872470717349775396766222458351188696768289325897397762607202082699678359533382620309590040337447025095465756984155787329999427181247091714611543560711652842335116349930072256541163651266726133735946893574194825301223702748971795301327031395706442701944819467533780690952343833308912323817228238524308381645032911053712977608234597116454815248471651486562922408598560235358325630560913068394002050634153079861176708060324429261450465229554300406619618451041905915806852870987509823931542672378310651479031360206237046056876185564057210462809142976138797517553799332080693766002421620390383303922921844844070413726955263755124521898263459449674292890163093908337328954294022770975874624358679187231506166194009690184990263934594197708016726433193205281047689237107841566773069447755371508346619756468967936605909469187317849968245487801295369762968697125164389116732921377080988020602541441665226036654027264598099112980698587469482900707397868520037956312071409044215642336310652547207281356522855948102762235039955556363548045663185965786672265088277314238461257196767528383566543552380587933240739573079572068706084554799129330427234848143799698158891261839334400590653997091546754300820566010539965003419457884023858674801356411481595434205113312023796653616791096289438431683689467482492242699622481906356594554454713948279880001173142107689687383647794971124848275380905068153130596243158739404330555544493415476001928849736105044851981055365207864901910639979334563436871511337113813893592076034424396937845971397970349048156302835693473960712095250051403198886836894995196966770691753858040148190683765011306021771784672840936892739555698822092223617177610826190235544405659221351605129909300899939230714126168565373449413188829793104763575798403357487735053598004067064001307099786459627542894697779418720011438752804441231136882020219430744150295872478241612981351501123694397774241864557686465928903973589081131475827856486568361187290494602835016562399944883033481771895607903817322579471110316808656959873660865498305604456858470613216022475822059825535310729953875899783987903021269910118791612909675223501566488564867518666932705295226935273375791222645442547815225924681257786636344110187784413883160436832190804224918622088741652773313958960912787888140592334858384323028830676258100190345320213262922887405052065011100531941667482783728510362170487627084585421280361228548481876548653732223435174879403723009826296471302480296732691121336565728423280937983502705071924321045795616683253373753008802084471477197107652649048511531444472729760019424332033124862266439227149708028753376531965929644413175983064077149706762121844014196203414001312408919903666221444981338826405603141980945728480316537667541494248267799396332325960572965373520722258815057147620843901124380556748165100759829326725127327081440064065380268283132210080497204407561039382033735399817891824448658814992871088684107351800378642280542478249376967371660800050884366616642350432170011680484538621621004034018058916197335979154748670115538797756451263791566308115542959563977046833825191262656698699035227190946399234213901950155773270240004629705890384080758216872049136403801769100318734189145738965757067822655762033472439869676723899687157834508358665179206225926941827606800558624942061879569249094126215717698359159319141635903814512867699126160914437492042624876880408385351571560679593702072742245106441914916466512542942285565444613196224268702742993151498055872983366771569349027172291829441405737971547836070289299629082478766675232922010014171484493445128075762817320983655763297665471484297092389591080436532449847128255500987185809887443530211842209851991109711657251367034828831291727568308341468162399115726704740449873925230864149008975250526400411357404513882936274784765324021793538752420071550404659594488253542246488741013999614103236487426120969201877881833253029519188247565047170927144456272393409439888624720772561927922483460731260968227984476800884992871082938246745603604459749543670547068101744725243221571253255941875132086823422446495720135330904056223627582319487011566875053737749305494564429272506820951646817257614525932053015499066425671139598689164881874772853634139108865246478169083857915028295792842249577659326385442438737467696663345493635397473202819150332320809398108791435714357639038852456003639837681487809727905320686256420915191209392438317153037589268367562675420536422796829319696522216384334038532451737053887919745425229827899877651228893396334925471354703493186285130452096535524996900568188581795616832757654695372510242205587885705997465899368776127314290870213791772638734313999271067748479945150192752338547745441684576264315019979019334795973842371607625843312434470871717468721253387614403872852275071500514969929844769542373882903716502123650397613625772596628863693941957464931049021470482626672419623389875571515754554771865124955041575554975764319390646842136772226025990359648657753393275726710485675295036812207118306390902264125756682982444673582499154673861386519883250223775460810254460159720381412532583317164034887934185860173438825387850969921624649085432985832925937689336859083435687631837916906601933647030864344213097811531236564417351537929087382084528020986237135801397047402107794178468282180174751369665586877561651223575672322297850954492332813137954260347344200102191346049414622393093796430729821214699761367817946324684837572309445706177334430623283789472295042639572712236611320315534535339237254140823185052823392459858028168310667765003624808159914294879458861721028319316067568884448621056167479812235946780121720737205032489522459132432553959851316561079662457490678097325496878917717761361578719639600636373647195308850526294184927560839117378693672421917497830714038743202764383199146343494980978124053217622517760696197306851809476622286555912376802588005793971660484408643269989806552147895460335456320364933774068502773990144130800428543614900179084412645832362406082043619716593596997087574241976201968822510364875824293014100107538745046249666064986828505180056200558924183992151157623516800576424987923271412775562893377187984267149760108698348481749740539725346396060746819655827026809290577780171548856040991172145409234249591876530639661536245563005782297531303575206941540214827800467936845096893489576198153367747556544353690743397629041299361303040654538391987105975457950885586430812497305760029010344120240428270357341978271836229961986560173004108079044049634773577175443252579540103900281477925689139944033243378181764971514295181575059698717020165706693285588172286790595730922137279773835385391036741322257814178506920365569951373406886274523886450640246997835564362291486883832807210110139197895245720667817216248670806919932763026733955866925485700575223141783672482558167434561120614365104311862255365703623498282660733150231130469813326577945838977477114813949432362632600739442080277350864511944691700918248327585087666806453667530429866030322425183468823189604080130865095788189145491909101893798829947815234790295453981936639962659733616431806269681775415202248845155009001202484438244833915730401704280329814743315154219798292568598237845806513176012085919742608750959013736968896366589841406491476240571824660189061417686092230654559751669813131835745250110167954418067991318546999801690974456188299635028885703646305495453316598577303254476180575793066014756833649110878140345115723791931686627903581550974971467693842883378785385741472287043079379524541782729567191423224063505087082020667967375231998617325473839445782399078058990931775773908350392483466272249510193681054086741112720357810921062662309347995034151695538948620700363407349863651726759679899401436374195558779873565875305176556013064490460875196791883498202933470663097177483007676360368595171821287467600113274832773824698209497332452172519851210622086387291651821389943885439446150863779398810580942549220697070151351884373697712425946820858351723979015281287872206083609844420647384630576664085392273632142033437980265531466902897121366861105432315226554720617607528413230338385109447309114968365445403742819533676184227767143709194201891317107425183597500005573965692589577916339493140316721582731218829342020456845416781449249374147427638224945212183889817620914873303886641736004176733126103519395955184289149400204683270248488879500083951666929712356269371270628654647479898235791917234502933704614354786812212267957920817429826750280193811561919803765029346113688537770411683799632818912326582757459593399367571649427631748051427282234381755906703172779003637734810308743724252310757896398534075217745255670989536477666294609945786927875956231567537839298583954507745685952114127607231732352527771946511923139062248082405814958025369523268897785696715888328546270031767987787202108809077719373008062786251558053507890649730073096537007913067657233091187526707986387197573793926539116667812660261799495919733833950698365587685035786886968270446484949333288517588371481856853306452367939423956022323245885355584514359449280395747752764885391515677688130997140055593870606621988503706596886254673974765173495565598952509882729131112515151137573519658279221676976700178333916275605392148240421625665408695219834785101110652926762311703085108649580466096780819181803945033335329201161250242451160975660418766667547092486309428447700466686170622528300048719219981388218086692525936388091851814559473852630755285549578892213549197636495282105518959930722957340113487865143092302079631705226694572993675875412800896082192044934059735056519064989372255240472459207455209630255578835491989000500703772106549134488131944303631492414809376092154409528901958169095512715790578048849134450693001758281727771742350397138146830843347767415490974310668244977062440002417496014247459808417614716808152331376312153322281105046816516129630713638268850091601546973246694344161761664707075135745457784712359456675217722193666592138310336329740221022955781693064438699964814449420676920485576799518077639563451793948797646893936090684100209035504131599924092634857676287846252107049859973375040606605775972379965871390237622577230067296979797740757249688869035419518198494714068474052586706952890206814181120526460281160376745564752828651693683055518522679669265024297226970168153682113829140740244317073971879243541848201181614182761309086246145861242871320501352354315285689700438233947279148640305388404350074956093970376650946940428387839004454446251012568564981486541016535474385120161167351393078160923228696872485560674662265310788202106493398248055761014586065460435669651961875357638324474913164343521915749293928630142403844412667332001569374662287210841560513400727053411191537194545598543846982628296101867514392590149867479563541591010592775141206211012529028643601037440992258395809271170088113529955388833140636805433656740265144859545690075337508956943659316739460601126675017703158453742618856104559683978521733849062961160113759273078035563840641073326236949184039919001559233812295654208660342288059997229857559069471117479756417274771653906012424077202584269929195061903219989001266198196954819622629025831597414651854457678925772575638525491215188871832225375974587066983725147425958245425806256952279351933239003399295035128770282667610343519707225332940289695038965288202408117753559717869549765144892771598445020320785134172310374131841287934322024984531665423406450909032595635507377884876632346392344397660309094283901713493807354286076042624162657186842823862695078214938735135441767427844652301838150679763065428452096151632869731058544109806125084229357755132722302458069363633863968827196348229617501146488182967173927156760982614757765708619584595966340439081044408157345069957232613548225014312568631659819423810121960985884560925857913701720504698167040568936467416791370711025435846249905007784951900596760498255968545157048589744453354881910052868760383978971352808964234616682944405315773300055238768161805935052449151261593006982112713115553971886449768187499836343516542790211455184232122540205592655858905298741421206859629625243363805056232028134391892329309853430348853215908421699444728372581936184737350060391736597407029322372007057406438223654303953788711878305033827149326703108930935411188045069663204245302103384872092897491073249401935575935122405420099417857122814705331600205775659154219749864908051103064513219635486756573657056571889015876615527622272704927309852098760509145946454662696852716715751149458542084654215526960956755245842834729754610756665484767457431571984130623721760622553009571562445446366810835776449334809908035133148903729754862990225041906218987538733243997084429861767484385731905906412562274504586677979221802443696207219967664867588962827718535049694642264870245241462591759575866337496428648691974558649508261565127939742852435041403298274172789260545692774204834193955597773450384911076985445697862489563142101325445178544350443853864403348300077135402904809235492845087859782248821810758364490432263919773355745571139614427306985538706116407332644718819013283491339854104365336395264541559236172929952235437270311119170567123947782725048372607434829666173600840955327516632895193406817503789087128455883727832235623686959768879705570537146810739455996457620585641287794209187316764833965592709518251989139654301402803179166273025662159540551766830389840880939812293387082855097024027219815938713895480800529032420314579491148184216408712622696632031432762253835069775101294760212239790659746434697137727128612675284858831524154672613689842338473691554070872489312625376529397594932327784906218027817705192672122140690454426227180172403510028601665096377965060709382795602368041572671211019193497268080222892005162213941128840960148310335748867941535226829911351291819492128677308094225570014275381789807085792540248603337862186145000309755595585746346932472125614359916889054630051244125779706254782364078101206589558179604988265283808721842803934246023263172109186403058148721646429901226421554209942375630829732277817527453123300646234144680131991523578163539246667676811381053721153601599252174123243846186183853607231244129193637444370230648325514106785592994921421641112012775738141111977111297736750595449197900332326656455997492432602344934430176896965903315172037478702364321378585988651612721638790407494249779598876749807260120440269039994536632192775392061343042669834294454513076155842775152097345184005622764847295397892501385604134284516102609756547203585784635837451036572097599567703115132140784726828618128986048600128304012915437372105109977320133938057149428519045135379130340129771574687144327417947175408721702912265384444477822817417190711628017150380948719948941669808346808796301784462095116868151435389981986866061068756894730509436036038516782917976358264445199695534969986332219819932286130742730211004774842413774794395371639884215102353751588816776745007319657146985700616866679661736798944644323936520651664978736756797193240229318732635491507484715202974603972775783003854109797861532929087249678153709787455675872807539852582502490043678174588758718356077065353572429897655146271696821378230455312212795321063734041880940346448923418215587602556922507671847958295512266672650544342445156258063326730850906912984699593109670748892429267916495808658745972180963505742255915382363925504855672229796099881166892583193518571245709593873973589731279477023341451799641853353168267830008421480533512684842498743214259766952184125698362834006234042169073228432042395231785762732563433859977590481498756925390782605822836319169474681957289356746005358535819587245641258570754961337628341636762602727665642381488590723323122844768119847147014007947226895538946652823464601516131145603284102810794809381462560839441119966044901117881572912321854842016252979396059484621676561808159871748333350515461792301777720010002251406204159989788241636157580767596497212096566432889600106621951972466730341254088976055794024419177771121251014982481262211848849960607909928543208202593952894648294933359550016563178987934816222569114013352972545111407514693180930203675289191635719918154917103221508694601889124162379491330002609183986673988357447818917921081074389343705469201850338486777719184930040000370418598206461367625619008903442611687511411432759618105368916938823710118313050031830507205911304459755088102664120158940351881131754884588204817533132626561242059701027298160232721858396078398406139413829824107478407700958836365767678767908648742208690459113831660304488912415431836840944622398222574359999689933623378433197052860464422832030909842173325415623666253237783232982206949663990954996444096357679614189018540295435739395179061925976334986048023711688981183002588982052138699947406069237004876906918760736104110789086326438624615023921418287683021509710919732554175842893968941194254238509485842343324791081247162629762682879350499711619012521340387886510421182556861486768267424288348979213880125485281153770693590243931212124535280407096389724252349754834598390914515874087256940486196880839638026347142521393204981181701775124725997048982841882302312892395779378333974107962386831229532659345177488264361623404757117045869256949184359222516573473578689775075828822598209353075911419204198321502103495060531127361234228444633065533111776158880678400177506078799818749988900353707280875477300598473549405624731833729884542982552638746664888652454812038873121442958906086151175903018751270781093029280155726362512495244411339959868543768245778300460308615363182321413680644637712519659965204716074938435848002184906493416068186377485793989859749230651661869136461735389959174707603630349504174003386447336544954675862830254905724345129158151555196523666646433438805336584237579300072663604253998686499646772472306387129379806676388920706456858363354020580256902630657675301244137258973534885213189181385325415479275854263023317476016654381072918016091566473016110107192229038907702563032650910411652163889486381939631607415813563166185676920532455409146017346037339816355779958622296012999208440811580597223332568938058313388026925672718265037847970540929669656558777377050133384556398847669429897851390703258453545950640300055230561144782120038230928180394001474044925881315208435488346731655306829288415794905413485637262793269070681050625579004869884211135939902116930841584509634159418486762666938356327693945149752814073676826507477191369243037577778251632476441293649616362184138882940760041653767324123900103066442502550678009537139759092062656024972910076630517111213834171519834053475838568395514376787204610514203842422894379694627487444612943576554685490710313010130945738321231957623903015965615437063506014170324821833272589266348818781022023967897765792278779409762949036427355064235272037363421168217745890068715532236233033824561566821360306924449721367553651714496544110484380024836392013632106183967996921683976486597946870999516317281480372509064394158947955802138335258472618084747057777050877349338465968736421870624212806065052839211510529302242519130829852164660606671008707025624995658700353933339047925968866560880317481806477966965042256441123891499136043025302621537645007998202165442192014805141084427820521231219872521794005348252822297629642995532003884937638783274570992990201295305134420118199191040318496578564656830038970205097213338555524410160487524492903173811830683855085796523096965934303965301862120088003308343699249484230826025063151268032308466065273900164438327527014126023971647546429770662597775576674421498745365164742301876481290150201735730993124827393286178842493267729786562497298214942791690436387330875056322511521163756054796028622981124440169074842878993243269323132215252308294406326394062627533942535771920092476145822555953929019330917764009385942682417854366799139197667331723911782281814842569447379773500124131773602155331939574483934673494694457303192633238854150411330757197426109400326325691131503149887196130510459195717422518806451010589058438931945443736763574016064308692753950077685066285209662518382566481126667124763073638108082913034729711909313095509878541675074391543357482878664540640638748258881569932543497230765749854277510748874697911392874157094610625989975563754388646906292551747178917959299035302383759074153164808652202366657801405321380251404594893364994988713655357172196749114326100234554726892777602378432081017302492543602883716440106621820421276979612591017381247514169248798190160297738441658081348654662649433703305671839237641391917958907344501040508879363673157057555914352692779659751790806022521511942312007968462631089023849948698707960593441843312699719336926668706308060514691972739196509468833939675837557211335348251101837596102536545176993355015149148172470275452374166113034355873084480897762874049922609535832120316825108826115336184854822131678641402668379060828548487248628948918111496909791512081153032518113268610409809935916357562321681149073945146499080263766461663197506562659719124256569046961897830639516530665906116896268453009462315829262513352037611236475434138004966234368037646159309328774238127245712767185999478344265353543227042543522235457334599203990177455373570335319022736345696406599746070471350931195167531738304455788379334557497283037031659714801760325393952202283332188666985643454158339902907120007893637989524362341339962494831071461706121785035420996853839691949509936135704746771793796743885847400807583268314814537958517522643762910659102838353765897066813746964803713737769207368618748124202475770777022654110118701547198944484999275964339119395436126560266689266607938587975134832695023713446923516791563169969663435410630560750963470477868146743255693339521330069866885289468829545963101982521006145236710742445487360930718159932480081351820661332288043292174696633230257777117005786683747954656142298950697364901170111809336429739154937964410458107335812404886357848718764758120089834468425372487512584218159742162660586766961757114689514315065965582260117441114238634881611236817766966254697491284154895674876535005679241136005178154460411928438440584359281012563381779671604380287132574791513249623187726003958099405060373512064236517383447177715917321805558473176249462010334594998311131675890097578681559398262882364735167382287194244463283045921465885841497536878333447444825241747690888877914189131390234797575711717622716303580670019287774732848005374469655644296539645987930429974890864783927016280739946083092665650683947464762643645955844117567824810507430411946622005095374630113622773856519000452450206624257048795877514124096654957667514075733781200316633632641880020586944934984610457351027378545744738087071466176679545270677996830592538789745085006630501163929817797099009916135008967109120038483262406439504127715734356062982420662138542628974307975270188659985972541597973065399249597023206480193891351179192255389642292999706408957758260211999942870342580719152008386467917557444396913161530104971900640215439196566902270443948347582404402131148999001014691991786413329247995585079406921958067542181026924038819797584123985533830877685892894391562347526371866167252970927536644284664258586506128802797021990368757722435281972134821100842421915761485484703523253146804441667596428492726845334048180261547861179078835887085328783106883271628261112486169815777620126045145435765614846470975085982814585494963804497272959446286955824284213477645130191272580597906193839795879451249862595206493823559272018291980592540656322905260410295302289085107922567681631476144888325173881122314984614036620223814890653651835024928412534336624347496153787696055734151935383301915942110819410668655275299398161396856074864210745974938972747284958497791970905359333820106971118655753091112233957518652282529116797602040847485656384735509441912408478002599218435800931318768760679976131411533740147320165887965709252347971257413722526677480350657225773469502952736139503940271997006607114837362525552280367507201134623297869224920041030714779030018528604062569110267775003442790708600175852679234050775527339687923820340296722863154003129802066812024958152935545176181609877679847823672526354633154577650378722590334236361561358227264343365712143990888847567517090432481766909110038327708294825021030079472598354127469379484913173684272081710040251391321044079300519050047590183971278696519844335993337125942302632940639726550304016643928116988027104696323447935360270780011284782402536883978003754434903899983221673899135183974703728699756940457406632522608908401272317479337624220749118742582950537990533888985019925870254674967507383791838857901502237857298315925613310282899274864752098750335653207988364818995855034211148328727312623932240250882193100276321494559221907551887182201584025612411675283743872233353607206607364445753717191942347083463406509963702179970293848976225823442723373262717471009216281236720096943993325562185541289786381975683365230023445582549773107583005932974536444984665061587307902240024768210229306618850538943397248728801571232179479374295753435085638718714867008330952768561586917057347632919086514384755252494763998842170804679188825841874190894681375608869790233240247161623103924735905345731417094896821220109935979581576923954945621361997793449097755618171658276150361134653558140106660425737000447141839620088472660832450726499569148455305011514082457100720336124836797290908305186751162122276389598593596792923267718491075991428532313051490368384369452949932363716171857625610738990004504457980917538069011574329003746492887040767192310711046712800483449771255907968511716534809629465039997411221863703052745590030711808138376803074991772207664237684480577841907150733541498897811576712936600705015839158302899619235589462017500060256253920757580145620407362833317359888503946943463507997756012105334141876099814176620210900303786145917965368436935438689534913915832001443975723136181682281260886800797016353627617666854702248192157639560102635464116940210686376243015404911069578195513447631950172060476864044474222967090553796815955164636406346090235813830690893045246529771800099262577613273452341895427375118331713698165266608506176079725027739375586085183264960581618894036281528775820764677040220140803930523372649798069395368342008837994084870489526140914383107341997691278651720239518226411612959725494301896340271952243929358492754297439668569634584662710488992294912622341657529144974521642601237027353647359046594865490770513760526318608538653808532471977251395242592782798084615202459191687894118495083822654527347034577531030866187346934800512717976970091715416675660363649460742380208954094168133091736585180136815049215334900195983701101192635013653102371620362292578639285536386279771292087459220503438923309611408630162726938882004225201418624256460818333806730575509613987602632987509014104612970183003055419273227959848101190406048057510995829190075865766600785931919690187433882829118079118972932871806777840500006942119604914553694810630620958631378402155491070926696505425397626867523994047665231770245123358002799126831008494739736954499101479847911558366357463699804712634119877077840592405824972034806132362473746388571798713038110120447545393335576673331523492075906857625744318769559646594884869536252108711632058358911202846710809738620637514065454793504559571498234407058936178995187696711225427307475545887756821556870553743272097460097818281802939324265597538647385226149151150330617564148985769450651174860759385429769251857350867437484721038573331796452544472062154579355735467633235093228743633075880533561149792194355377965334206613330802986724144463263524481418150670174073002431724787063567179757148041746562653994900466596548592299478026951549975426189651390206695489103259427711137033362159080177868706775154911882438629310458335063593106393249658852394280872709452972503118293747186488805440135005655238032484421137286006810494193090968261216240562662837521829042266895977808037198118036718352804333181023651906271779808386762077226375790904128458886989156063048969790825081415455511948844224358185880713187969127246423533475132922873770758838853757282299431118416125358163098750862092099302062333521868447954355549017788849572072415804780373377481966332400179474167246524476550923043410453341656073914721857294068172924341875518695575595742662303375745929361306963221046978796436239317382077357763621422871537017894789482032486545639694005534390633650232264593388216064944860641491038260944936029450237243794912456534424470851046955859697339424781977760625634787062297499112859189471484712172877290941597023248616915674065290737637053720976797456509585185960523487399946172482034504197517331108019502624621195879596707644037101416079404216103672486499796240134809765189168215104998974336937017207520255430869573835600297149585677875715656905466562287203192801074205037119087347731719535145513289763278112235544488519907350750019431132613925390422873645192810409283925897397849143059063702286261382018172346975920546060815781303570197905615076828908330575773770002471470463671320696785702630335529106734115401597378163938154389282823733287685612449472905783108006955584948732087150440621002111346126511421490253872463616060173048952475272119716228137095743292069894123258816254851391408684030622017961443556696495360718682140863977317561811152993439143518891534129600503221056298821712256813385396573601099182924944927186117129634667667703490975212316318400418210775482473424490794616225320259497523334748796124578593448209729577059839979605460557763556534120924624190513987354690476721712400498883018030539538063380497531180093173776269240917294825038778505453732975694257624125408429613298805442048718694906232410405899496719890975194847285336640895479242706065581636926387428657058675856364392230709087575236539574588996173785870207034047054789529829758281606880853515780665348097966249507028516384288166410761005787798750874014971300562952148957325861963790766498296645148393796570022326937120342312667562561476064703842488917918890091576825173700211024035604158743019421649038310141044906081608383530365202437617299324485815080904653808816606366723602292469776245652212204216435567249513807491640588186550951481617501347899985902181055939027594800306600280020288781840548002605018323065015801508613169874571266258061643051764381910112924007134043908233153034721322202503104080781248498649289501393884113876969992073600719446566506591840608344762109421567315245805294013906890285579934322601672810046812838604889093953334184825580526110498537355450226420655482585323829726774930331409660063632368518868241313147330871763978408309032283842439536916783374257743840344848512271681985881314361834428582316849477819531146672082342096888755227521859915871984016968632000324505425606757890541335542293458040544674612825704651926737521870474215739109005085432049118098433479169390377140916593711881319611379780836756210173674437247524428457981211226327610240622230158282340867501424575864391106853317448899549519494992539514443570414167893787271405430942874621026662135324054350598305526935279677666816672893310844109288731521890513228412647795025826471095455608470374316861255486919717462326683942324434793157799925680155347874804493952079574028557077259704916603591739465231561575590274618953235689625780063790835441029194516962299611596008858181898769111821567683564421396430753660561809075572005374985695033889578046004591434482345150146511120473650579584352957514242468205466634148313452450626322812940788912364787220000669310673613595438431997561852707047931786142940191165828073751960022969282273587312070364819455098634533842572104852366197314201333963164101904550719108029540481455865977650725542807946120595249907680112882219691820365790447773806656344547587431673418799072169164775872518508143967393901993085696761876729986235896957325365601366220578054209085128100408477778236845773476949037568525338464740445919817767127108759994539236886008137029495386676997961633789449807755265130293661020176753170543949308087431942196074787756376885071482804946716928922370794240017466324602477274220824101931033965908626941360760470295288587360273680294221813599256252974728288730121629740896792307547184046725123166321868953227132329668645584378201070264949469060086766001965825455296738667292975096102107404077512074763977110383031222172702357076306035564755685798170847558428629384557810373750439628009930331593321067049372170693210877946612526168480524165433783539526469725666482907128619127848174931294737450170854279668738624869102167178311345971513645199548394060556847287554878013493947309369071537724012044364961458616496281223155237919202442450522311919272465315240805329553804934391639973887716486377958402111052763895336730250907617944859306701404033971851579799132800642321574245650493325319801757803654098810289003010855142980691834889587647850594055209107474521977243463106571165314473899355393744049458066263103645741030412521902171413156779902162776396911258420385285950634320591646233342558841744249409937471253310093796942466880994566298456844352335139364159288812801794754080366576639812135534231361308220125767121815880070366424887531761948810422674269978455498715045010348250604868751330082629670704279821154069490128315715315199729977659431998622980101378540242338954671416889903554060406300025969025731757075386267858720040997094413901541569402594049112016859608172035756037514819621508034115555195782838767574682939200773376251847143365509519274116134365088561682160102490794728361061875678210622665433445730953060449171071516866854105706679718500659105643568706034215794570028433111484561680247363717370845082366922520860924010583587481894023045132934103735335483971275403535262837414431589617291951560238347258539768016873487508436525596778682546203491015298640330325135790145661342193490178677676659992811914733853053027488519138323143873566724077584468104732140971621479266540345409559502928181932898830785430989870842688986487535070264840020794015214496446289508999967312355668529632948064315748380465441337327376210185174774685381873486368776349833681164173027418146543712409969483979495441520531517333499830939154061971183876527898255086370960147824480927758765000613941547410648689135470437190960440234726006558445320366684517376200792978401050884539017446914258484032167231974411385104299331370434814081653489064221355741198386731469959178540958947625268567234148837914046469654684314142850561829401727227206147237190572695300113573118783134686976178286992401444255276659455469860812388559495190277865031522318769520475772262707643595131736909923768891204692345228533960044391641132497753256269118217878258984648412857549765074022617182982756515178905412670084960518936271986553462030791832311164892808232189480483482179500203488601152572585936912256773947254674744763670856247611797841875395953763625981373462425656304001195918082056591725800044035871548932032784274646570675516047895317861868591378219046028699348437761740920196895266942070522021254043148580224267970443977256938225981158131874125092371704649667113883199150488734052140723779056669490250550647065480158818129164442817253998463719255246940824197506549884128381864526352198116428430446601707286703811247987756120698375614639667102607766356388256344295047233354510598924672620654489843036441337119573301016663902651452828257293575797294862116932978012935958580538683703333786141373831859689925217294500982250647166515442783736452832661287024868802696601605401586623153374524122921509514584799604219355055264244980856260944186859573862933579085262559257907607182127204629637762287565580919790835459231358322995969013926710520322022318137714961010741626970418280129783822383416011935871974411656573676994611794560955782045049660790098185799771047677972431216098642380293889387902271521787791742394294098118822893714528749319303163682051110372817204125580677323547470372755684543642125685038578109367005585770642079852478609655505824557023206865573210846318841698195391525825883290162153568218601919820949518519421795871271660013781983806484893566757412497647425392560468278311361479572750800099446498260056483047062230573934110465595205230556703838037158591849433867423549216662513698903020556054899507083387398474661102850223324800537992311817688005720006901531936831611494612294601370306480291748636872244483051554418923817798232459145570339535843185574383560414397142842376666013596165301054149723666092697344327779370369182251605874171979213626779050204745896852154393766149585671931989474366622300364954896843101498830786010458941107984469135274359941748546014941639334625235862446059373001435595851255355758680442058539595943237199683378220712231586290805251644434039092437893762510012243143053625866191274422564299368744198324011662563861681458935735897498592137494924816128690643677118312455979219832697326881110492685753534958517914080878036884437116469960158161036468385386100798487964323310761035225637629365117183194226836017495818500133953577142867863237346197621286166446011609512164008696406828312992937328066258778778082486308364487377224942655134593786853276278706242904066856173589610625984023303489814523025855538347237263199086277931112547730677072593973292967514822903949905391569028522916355440589283787581035902301244504254224961653548558957790054072206921693859622508829034859095840879978920125275158547546936052973083873627615471677443207731708309304570642877635967963853773566544181545563837024716292745180017402785014603764580420891642915952247644277138124469344819951469849620200821171005740988999580423604315152541494322598693636958145497291486448470409763171713049575981349414868868057487005805949339391216565783298496243742827214599242710404359211243450759603415045822385101700570182311793303374861498822475592860654129484072581885072212470112125027101368254345191183786710563586640870141494742736759572754178230149775012643424169695796350294965247992783178158544207151639669113830901634254884471112424940277793924693508706392521718001491476291451453774112825550081859493135148473413254709347225234811237008294330683770584565343172718960888221386758900200542833390993224384981094692011623531624354642106978360706407833381345063938643863482624783571035157564919626951527640635728656063353039854606963784721792120096264759331826336089673805142093048995034079342173479027525089826162648107779301046130314767328651031637360898722093021489661582279523100731248939597473472595519572263824909689152604368960773668998535327350166784244024769172068748658762442978354689001441800737418153074136441327459071470914698500123585721669238313053323909560802675985678539838227133643236472168159364030905064949387808883887697665271555926153587174461952284783319947473412699960777346416952241969873668507355305170990474928949832994024849377519144280983302585149351099812081017102061350385777560728230616572898945913271121502040268065993376506945830610392722896226267797594412809232525803953179560796402810118158308306203472312225457249568533208984779011336106437540896166341400075420779143555206120386950100732044986036363668313575419332897792607536630138902033007548800665012888737140967179674573009554032355061411574617732022094287388415565268797028669688214763781857828394424517437136278808107371424565433653430121380219740329283986389825649586714439651003157399397846329424567854368247408030359851676953351338256019877469826440177197583818766400810671518467983054063248117752530089261178976701682213491791775709675670661774220060232952656701280874301353005018037831672478767016499384679599246284804548524967370103481139526828104943708508426113852435012496412972271517577095826251452041292838061078500270006620960828612154825361786076500470316152744633472003832535774494150660442130656146465682981432704199779595788513003182752245829008081186377696638429010375275021413575429644017939514123478853971876117973529010831309615559870842350640405603729490557847432794979846049214557730373264223598196287208358588950310359733730845022021476668323066333652295648751330882922098814287114373669780481610420781337392672895932937505495888845984212927880156946287417723277413753620560397492505114095144771555254200946444316335051854233199378721935788652536377626182556438338092717737645849047063948995500963256945073820983896346920769061339521501070637865247509252536889924701859649118594861459997988893937059788668522218422989420332075382546722656418187285354116931652307781550226786263453499708209965756605939359071294967521620524214059128772175486105803676580956310152268549457290767819416643856701659026224667241148207250832821976714714716714743168997147980681327290776510446177947290975004901643882513371043502846009169448191152786633328012486985794669561871651731882176518211353120666259087957885994781498852946708715890758341289086700611615517991868935410880153349668893632995848724710459233347769468271880837818259531665042913668921949716496052239133680700143646582888297685875680835424464485775820199627251587531521037860675535903216118753339869768977083368490076992006854845055415677436410575953496969484896748412238476183584186293080276769055033959225284774363021523895715870987403777538432255924540148373133482416408821840776321323152483289245562379128545653683219703516811023610774898712137431439990305913085673953915533438399288218474838033445664132093616182631312420353042827479012804978898535343273559643595898460141664157061278488654053730600435256999044280395490398364873749393892882791479336537753146919071931806696250248027407141611668850607065160629991674054484930978305649366846804254454466459314342144949425437418956541974627981841070672249194577430696395694295081447414277786447673861782609090009327230603245130949757586496538991535637077129015625190597958745072167130573253807502891738216234629049155531438758977724457729588681408424769048693948733360321676089765741807672133235905476335568105560489177453972319441985269444182878784518191939343005386708352175903022372928288668553241379144106476411659221643660383762928952543599680653800349957544719542969182588271761803385101599760884151871079512092795599349851350013583333426123416865562680953389366123259577582576114906568627521694703148479227231926999805897694356041358421608631615269822007684128330365402041629032833250309944248489773477780483310231726207986830384571555409694926211711145585115325230582850751992889416876061151407719595297246066253169884588941278975519492956821929082111812682998852582124967166169498704985685000142514473881774470605581979894588162524138009591113290985751828268015059874751606725976326356663053318725720924207225433419891292979353006347807789490288414371781034794420253654396570465366604798867197916922443328609405541480046434696077978369793844163181814655028149528481726609153572313047043558844969003394401117756042709803601817880102844750904020012527815641415055307850356776556666119208594111211342839827634232598968518439478971080568990177097823013101518845174220615197967564267305148265437293621867517084827756319139575430909664621352867612278645097945546037099676481190059701318344644150349395189449269743341673671923851710097033726396290434065737293349427185781947286520099986458494589493952352512536854432809430022205667272432305516954100269094122913664588151306900008210645520857648762550043203582362582817932642286497637384533824447250875851061509991677625485747176702979371710317038938604959985482087792758688017364865394420221377023962748487063277900254625127842980094697689350295949819926790812941074110240191030975720099483912519856162657112148114767550388817297241711266116663093537326103726432726008907929937567545969008538431882227991248734954790801659095053177823069854593106222872352630409156117673315906528514678895367578776172701580862828287102397047629817281148353180840796376086041332839446946447399771406544086691871753653088975860508488798290162188167693118676050617497739539200089629450427990204684758603786242761001859058124192997942489310882621266941822671067838853040028849345286687203798426745473601046425720253450530136903120193263092354125347594691480804041148550915896377932741542821197799303442753764349402562216183855693514501950238487471700145822711971677846919855213211964354879102291802137542286772786629401882231641132701584538347093389198539226842951970578782877360911864975833185284062164409848444072772209386822717451336191788260242620923010879985960751580448383209819444844367350477856318446615278474009633488561989701351932922883704466139961109453007541106450284977814872097992782519012194534975508053210664096431033303736668540797508802907263692574163381660712363721375344094722919382132833959215607658338715415943952526968547156326158866208893491003523071831469192430359963891572196721244414324616407624943585573917171491477905798043103091054357705632032054108422052456586229824902973980514283056001223532418967157958453173305344839064429936236248479384531486542637467951782266814194510213705325030762414058520562456741076384327523368700247899439372184892860257907840299425084304308642520519207778089840679087964014955595968010118535681297999666476598327277696378182810637569082039501735693394763313425829560954924627763406350595347377142593396608346253055408093570795950779591781967747220378308002817871503034222226810309081081858054180471828094057638188781574313419114115909569006621242607592558250389032200339178694612836507355276595200994475439672289597028766991592773061337569500383005456681466813153693891681280793556312961922975435227599916475005799203057151489095574502573479075396392411846449281853996725104049988907556889401854873762398853489321074175879284565611278285613982126991975585598864264120561930763225019052552952935963116451577610718877574536892760068109034381227869025204471754486662093793395401017815391726892753511316465990291815844305688707916822716796139512120012216211177077386473139969539381488845105194034692341918130988996838268905731457603072380119740770100135066451214595101917307111951271970383987729688426287106602974360515879185829059008937330488641093889540027974927230732896352342358165825543868740251949973417179082963110604072455787044285014759898679480034372690150773928945170407211820150413893176059832000558170032306106360250093648955044887989195284130378412327910557381456162779366346696482740523224205842465607327940664165308081312731040913437521173080410632499042687620050817594234036405378401467840637675262275562595979082892698508827792879206139909251567623465393976708329351353975786938138567618140412167543728579594359927155423405874927194470788536914299788532821533487796873030099699719369268719331381303584214919227754634755670090451621955485027131169922764205262765296005267972393565431854742785494254859650456314681881152462216895558859082541564480450362175298687200768860155912520709698688622180955672180051775820887607406030856937911185074900337535602716343674300165742949894962386035365106918235917346411502989170192196520970929763477025337312202724738992241864826892577022732573760254762476868468729545775905990153938258376460800589455078352087200874459476858188700212624692402405696138466117195526605451025818684473528639693840234920951834327691134809052314662818576201231421930302422710712577187457076788517449824054880696276256799749716925825080536353310758957427977485983553965128834588725943364875732960091946799759013310443935221505966290751363802029737041594025255350795094559260932949561326527077983628368056016087846168936684024859627613758608740262178847336671079515267804428186057966993271975947758273635895275372867361827909396681441931391648917260874094202190701251846726371762670145422526618652278623348359151448784040681715071292209281846556132990046233993756879005042867148406246342030517434769620847550587123470457130321760368095121650307600468036555667507308833717405614007115379937250440265778202670876164874997000829718144673037308833184745513318419662465621650608651935178345370485954003093571504774528818922612308877743266539707915210287992556069133267923767499770754134973343790179686296752576690520089298044789584334649244643069152788420923136765222059877146110043655731390696501671222897232582716724653096943758354980912416539210931802920277835876404795317234390762344621878053639125827883512334243427153911347122951610839211273654985115518250162379075876359569908172697921653357035973962730348677586050093369362297315689260653760270093190963375668968891070766045372928740339399541339614167053237367726199789292723889637529377270212572197686250592027105426949723822447550010475827162216864865610503430605617156650871597883911752574791286649691404559600952551174806849138798633485787289168543593836570934528630399935636865946873400774846237786182319286236287889636302933469320330228557410395155123533349400067524124386744079416251786135996869960057033338877207231410541667915770451935883184507245127973586395119410026181490396328332780514766765391506797755988323506323857469941879864608910079017512551613287764423999384459540761487567440143578190720897778392506305254994381864254814654255226972467131486528944875657872096916843999194476487970633777083399472645353583324860327034352630925275353051312539060048517594454508779475968238151196719101728696260307781180262135748775185436371676344096800620859343182606171479356903382732471314496164621141167697532849615351529637083626655824695345637779826595294862046113765561619118967161585354463379507500097917960544668265735946663218810848767278619972204956529944773609218889508787463085225155299712861513359418688208235195347496770740516653494821922067906993361676788161174187900367703579821640094938181013658747957610361739049052015113088379299142523163922880343179539578857210261884908970657763460482522752949898930331529151950187455240006380903179032076308006396457427833668627104603086929102101042667391619719736129338280086465867469505716383027476864591243863393278323008783239263106367491786762844368987998169616713857844206694995843055194979296717578827045564978174532996761290049241822439787263079235266575980509879030842907295493227481983054457390087251192827956444857878863061444683691257923842145306489897814695387867283114100427797577709524111791318327617295463451049078960714741125490101190491594795420700766918964634962813036448605127680745450497536738451308605763903828496103263089523378977872317940066595633442021484897177068593266741525678831387051901171207267201868540653785719066117225785133985583600721748955666380448125564394151944140903881464561926488078815371094281608692977910430316269970223982551467723285175198489275677275891251184192307529928062301087955494150378072268250731763742963602297041272436498494127507373749746171234959755037299014999369649662409342396576028392455318153213331097197035612253948127504927778282186005245037552169773279334645447282782877072877557489663219474339741759114418820032612540016486292703101639833606414281699425444893882917267090147117324015878539515751567979398853455433983102806779981752884722012459860454415705180722242889000192887358778335880082396737565166571468167356456426344001688551379934095550125945231344797700766308600036548970726270989066685006269205084834068416186291305086651173453810887960714680392087382565560294126672076742145635350073329402097168288611978540855204107014346159662441437084124612100183454663022758018075240987923628372379742213914050250098177842488197825528327568280530669616463287313167022112424598994613236709181680638847639999312354778296249882066871911699595129559660394018629041999307475618015320726698816088034897404660569555179460286245678794480694737237585257431384365077336827291238689691662549505686613097827967948351500235968976579494086841549262754111417298380117443526051231003717351156234678985407596314974381243871757298879727882348550804890475779642932261587207658104156931150128490938172569419466859169480284509089328103397362267410336378112399248443642986511526441150791390632348232825944350103465248640727081361690128021297087498337827454849420445942087620685103341571411578879606253590840143476928675628002118445809029910060110872486992601937319931081527408039423298833311592892865099858449089644585578966932590572982757925564720339901447391665684195495597012428296471121075646029372358128589101971924728735038270131287555301865889831515945085308353833534211545515426627701934847931981123326519138419907195364360104211161700231174877342403463917936459890185447802089474704512519831574061471467026272206808452561904994021387833944831157345619716364668760846743875810484963008582694360644076629761794868577584898590423341732928495041188831666305636589436637923854536621716802613377091190249440900955552341980213222299197473392346230732458565541138003148386510587911609948402452333338903741682280791131571445590575388746977402886180273307358501805012561913570451863162777171405446807744169317537442553927801554829968899414968515487444319768995758232304773097106647669400929540870504597152416994698652640380295771656720855735159106714185456642240197008402978417887612422316669215441903850383178140125582317968484940842430574608087675759180349427470354519091785341234608231200461945481513092582118431742768131326250484455536480895535692482189880886441383527784769102235380629027805971260647469159094973006323952139885772835463966651560551916905177130509958090724484515564377611749955263894883065066431180662520872506953123940814548905862175226263190344212580490056097396278547652459543779438209271852718528306347048736219604596233145771354450332301459627827344762919563024204099487540816726679371662474590538994675891767502193940198785072738879933421799597349869494722003390832706105575546972033722224446721583007228338284292096094591601858656558633117809524137594035571143900793741856188115040859032645098884761275684756270120052155558486724903000276866890893976247747162704862135382670808987349481404355869918280355111295735406489911717734005300665525491435201396703211505329415624663321019524706675241172020354546008771642936380668611713422976630395131059677251577623949469768144480569162922721732161882190162970135542827947661438663625847616977159742158879046390696828154872721020459182844602755358500490543472933022254783522630129346747246756949531118975229871183078000998944635129630355003872411770503421220728023119092490552233199549489263051884012244609111428147448291800121103904161826339456473538183221192719707574659292407382726111805608203302376967117001299088382109722137861481752844391097508821511334366520734407883480387302560381505118575289501288312877152354611118992491453716663393476328906938438165339290275488802587563435076401918183878731550858700206985136536246116392323413768411910057246530166575376566925845828992577784607405324763412521982149732553527929010068328953586936697573056970248216182404061484409080051307847626202605076712056994462915954075991635272326943992437801680035857391001373679639118952343811457008676353794351625001447483231827058563464545509673027990874460409464251452305915702022568410882631767680168720973632208638808959198104710337895580502561398931660725384227500915154560207724540423438116223526601696179400352373184223658025251441205248873652826110148389236165422651580497958026513793057108295585107014907598304834540550966592713595850391516750515042551926686907041223601213820676950055363644892007365341121774993481435510801642298417036440377645821170176181141189127988817855326758494095062330412128994828472690749721757013236448048751818554330614377100337431537512219335338740365896557786269948697801143546790561153412196533707108411438129648233513900099314366828210608649269457890065005705093642010984218774528704419623751333426086600729897507039857192515706520934374378855595136664707880388439168406745136092958124511823468727749606501611264885933711844140485142494531268220944405668797179190740937003568641348241809957232222462446148120683228038607686185638980990698750057088880580686787552258619394526873151854131711808702189757282957827603039606674220737881113782570214752608257851246951685814368270802853556278878204460042890238514133084365859147661183266307149330064901719063859524162914844734168191629484938537265455557276550351333630521146057995925633245104761561342380620718387234846807090213208531880114219623823910528150782408809286462578966182883965610025081841810446311928202820291589848782850333796511200300376557291066102944545918825458979090151475344743210599689826198086270523972580856174289702179226302080224541655339905155406563606106711613792297993034137644298386320233260984863607044323454809578361313686719560703282759532570096503194280438214740647355544663943438530251089878630144827857459759931453236563211921043079277691083969273466285457355793732240590901031190813798644792653714667296129447192112519385270125500435667199290247674085670627977298835334653703111910676944236470036445803201409369783829362637960627790549807787851267028718696824904057671674953282271359253442068628936350250699926419268493481843483032806169482954161559179460069897609781296965944301525292230825094632123798405594070854387933737191207827992262301439995218155168169624801294864020501174212191860169285068656365785782949111648080991173723516445278250596240332287843121748682380331820127438884176136858913665431229504770822877942737413528581263163113336982622248602900746715848057581861820515694336412156437267925802328837235975006718188114785174695527205200697039314769543390780824024798561963056204551146212323245870296173361843871166404283493003655936426536944442946727945009976046896706769359152791992524030653700289373415027062595146079149241931544796399361901377666665807740680161871018588188673726304555402508534858264230554704694249974628055511267444721606982008614725821922656973970727579711099735718282735316500208046888818985781472996617325169012585209269423868531749528381461826298029276482093691610392157972581233917432498657615163362734932851322788003337267141274598954348006361777976003789760754157366228353904666422115769411930520251872440157637112152236206715887460533298647409575191938432680680447485023497613196492392029714433976145447499715077424128578188574411394871025017966121214650476597171842041453957436721881547316981544483971707507757168471509054221696523987399702012459920393957019434384405914605843094133121942805694919827768673949164228785462340916641642533707949670936865216066783497942333619328295634482228246997409228411259201373262202481835132277244420887304556056435251200841969490159546578639808859656680914479852729400130219045945288568471391332266551890854898617408448477935696781356235953960603556778407800885945063010093426016725206509429150226395355691442600449415269042650995276828555976636276195551843408638228813947273707974270688113479593328865350153925703642691359029834191096515891774147757195071615001077112533277744853768397899699294662237500542174772431226183280132680796592930207980780284980077425997320217974408105767372307906954876490744243102224477968566810731401440864197993699219223385607810205229614356141780245657256256161723181559812989160025830335925609603362150365947878845922940003036613368520608295927016274522436348350939778120836184151585217809479039055722332106438617634207942128772491873218088094816575579851394921095742363125569471808858757127506692409754948618124997112380821578314943591148124455956994418169271421530422835931323713305130005717654658509792597437498770874030962685759205929280143860864447233459597420581725237948806288202548403910877218163979660424121118112988169238812466793768890707540751420587492073112792268156182305064416337213443486697812531688567464049723619590604003534006909412960829090093132180020059663293507142989470083088558632878474596255887474341923143682462571514897053691326746199856389639918829692287854265637893777123358768099237330802179516174396507819678679801279581648701363168178511637371338578916435997628776600569093992025447618062185470216976433615650760580867578147045556514850298918716608807140374160986910401668162475079232646269876525345075131969680818950377024568663509163116049069707852728313720785391220477698162534451592250998652027506734084716094416969690280174793568284994224507262498043256225109377629574273025379292977454016272266717767496799555123412441595720302185186156960321959183820489001055720977045124287319303034533565206892484834354639127997048767723384483221794599985100422920960101980606910275394486979233148574306099691867315993124984159470707868912564530706175096467665674709901106641947143551874286927162603782861805520616409712982175965698447237215186981849390477476610106519465367593113284021334384401465738102839141618175878263397729976495934920278537077599658342694178517883010415663845951908473792599697170758015062676512053288682014130173812782471167799958989311118883323125916954330905616112370574699082644531420168397434993889114709803898806834199199114811141448791016342126391893073552654217360474294996616470434178745104348789103287637072769670500285012503213714822246637800936251310981836748643625140607487220485153495016792695748692432030614821235964889175405681141333669620597650059586083120418095147163077078275224871749693846086272717816131675205335735807295645054975887921886160662415124645391004409658147956849371701527388000142061167872209413539517354725612075865752137908769905105226586474472409744130065762663353062762405855501596163459088444854176218895906024195655999026503270260830876107300904108548260369004844975379844620482795499596439118043448554421913539350020222405509598511649391841473141349012631876818483656813681872380873180658862847889492246745474170703045685229012482440134229904030590438843574842273257641074597908988088985879299864613092131446436556119730076918758892547735125082591778167263236231766402351262592628057176604991304071060126008096281862219194281271550979990896589274722999762666461866632330658188012492865890215764089005822349463718548479068270039470773157094280723412461105037776396442106580334269182708015295792602260049273290351755388311662826810505606707986747742789860491257996550278326784701303213614652875909093076952294822653266000118638367513886233976055355230037246540056993203762215842454909550470177623318191257591022292043076377052541536709411502000683991626546854802313760468214141165985806463676410158953073941762312083512856892535729852551857923616255159343291635726989719943240324609778632854261160341033468647796489600482734760292327905772785035396093965896634118207197551570531014801331980103102495212043548824867301971101310373993378083296721812734860957842116017599975641667393400008856147770914763118609647568052134735510051778552722317218085612816414364946897042012622546218621108167281397239806024892693061211720976580325858622406104424835042620352982539025069749773584112321958241760877245235100014272239180808909890360934266155442860837988758936948382099620724819891428865387802677494101940792992442310433121965505798917216246058886941439312023275738304638315206353552833166411280738950113908219955261272220659256974528813884969079162682069075784254138293962330672618296380771437013302019913418859376882022283615717428779554822309500809623069764409775010929781415990781138223314342413864824224130153619399217037826178812048606841921859036727246519148242707012209785836242874715829196341672348618492964134723777590004229161251645023718569746711151671035431363939750143305113936159700912890376237483722872410732902021934441994239479830872258775200310310625062806930416426575241787371246826702778858160158109452408963148805943326859266282498951291522737945936313604417582254050214358100874658844445388724302397769605148692128653427109596531542615160438023069441923526965949477353663482113520352657994986449791578279131494937190244331808086649327480508267881152848239483596362056246929507541134981996079259042755312284832563836017079278922686886904229954809306019066208834976417739213921244237145810146706402362589414315554302815787546929605540389615463780898608790174276002934781290797547722497980470238375118556036535280494627461881715847368278854997910005874320874569602306264508701837230829695485253453606192543741341545812569938905841137036811406863747069014197058312926188416530131377762529946354817972493732472724977143670724158245447855811007232459783504096687744846668434100779356117917806011262175791355848546631068307880489066405868037188544211257926379471723527468324328195006698177455459523484747981580851604712391533221625714352893132622695140091858822147919284945865006467986138233664872844311439772597468057989351687494868835297539021289010746702320824254768195576992774752597520417549720968506426433754603641714943102253718499880578818677364348018317771661425117101738444502794988320198754440549824497310749277428543576851534015194616632100652241958322143250292664864023586345893078764896677825736573077804304979456683545821422227736693147158848381431006501482687609761587003157787323473401523417801950085720996683689800871055840145116011048005064341511296901846306918803392343226193021769215480234780800693485206034581397650487656224845980643297169909847198068591232309986209376803346613537412583491172689539129614890612033554226151726657741621089642081200895113334767557100842288569605223026225973580526033344281813759265994958541916268125147028217049596391833206299091891131087664506484534073352127723724901128966993699120845367235098530251444171529199294776042618021481706476263507460561809720479052150162781556884578275412269293262154818860444837607100818361260821582417686863031787353619011694685271350598029135728903936371342167157430946476480334537858057665827444558442454212552670809335729418341891017010790646987087080435186914090178447298310345691443318230347004905587342486979889089812469527791523093597722069623509605872832952113441178669616378449520807754829697920981054199339151728376503244659428454573381877507259911888598511376370332536618211101891790698497847442485695818651944507513531445204989115585086075363401195793979619913804477107056531195033425348429790370187531190088225155683816879940879691363738937134756563829598238961837948406816291391341577512180917705850907465009216839207913291710179030298650529904487567163924182811677351355376636226755660920996493324058572669087986845507461546561718522250402479013254772945854528789966260391795263857810144845845749531972319104595630534064889599795494107876856426154673229930348443444872344346492502565983180767754188873491376209201151037513316162701050352736231136983324992580160157599835680705841980622332262181396222072724613264232785585743244247451982041232153624688104626359748547483413704831226355552872885220222446785057324401972627410731420834447971811359251305842271888534236222826404023009914764783565264981420410720704720411958057540650624007107749785354393308320549462020512508168016085710043842417669221278151853584903431183955830413906813099384054302691282748712704139483575426259808303506606191100165117938925654743331276140664237834685616216269370221781662350807786536391613049530574307546705433085903251362085122302832230090565057833338510078559451735296125305119515290211588752247651100590967049127207325267212874154099932606976920956520413635532278562846287934723049895234049094447728830550706725362873175274302394401039421232402735500247637115571727094336626117178468862876876913034801802020784401818168634920194131692723664894206945649682991664793821456011977116586586792888194780416318534153787233297644972227400372632525394717122556634910801123048564097336382120392178041869312160622987328811800374529727878552082269104112288125972165623665287055977059356712519682447752779245313010133490353292785215023483697433750927327346522315537462276345858831605848947004416719549842851951136440810069756664805868271450641445256378248823414810621069352731700805340062486982974110074005230137396679888364190610455044008709921439657121207204954835062493898697252419909816262563951209107792282404574215422671955099363522413168174244056120151661394488633217655267744150389190822717625119473626925683917063350379389807867370802052760245997313524367694384395436086265466499510215180670242489237936539494165203450502873687458541113710785843129485496590623857258294578919633138522512262491178881810277124830181546208055186357558409446125441224503492419192119966659676203757425132853182339772597748487065876027621827722549561193977789249641961614145393033493259064760888247599280829292758674583438398601514723002544350502817288087374544205057359130916945022232981519377576480671275404606992304066305996251757838326780273809125954179784313264173887877882287708750398155128887402551654898459656569780683299511513459437950471655882094340764692407798098793293167509114258247232102840790512587858846862616170361129035424595593723823161047267148253716558740672137017821269907121148812633999630531506455433723422352015894051650903035327347314799881940698889641480800330473614593012315725312517390803887149273512735722568589178594913251068555715897337867241098746948678156380126356580839158052965061565177914939588996471809536782677531916733907841048167959308579011244155223214636274712221620147055158549009690208425922771322169140077520684407462981415331273350366154159163829931429652474730865503634159316919890219152951929797808184567041850328028040463567265073514893988615685342957418743467479762438383748495217746024334048016524332413144899818470118729773895714421419518102530279397903736859795722423000432002719096586339043418970581088787284172129198409533283274160367748751532277645400754985141073998718280766134689565205988647821889344218450044450319377408348205219851683572630817665743961359443989592673829359942331301319979090452686935569261220859997714955262510406590512807705633507431057885945207253385995162001785298376127144356590836435839711357522646523928591891413228201108541810528699795287778492264238705108450745377673014683742897287656895469783724184377125134743049483044443224229240228461153749105452716575576714541321175516239303795894063075975261819301608785793623268017090557598329527453127855199913249162609625191807797084412052386900759794355118351714037680995819730751320324806186809079210205680329587277256017814556911553116490400685810754633418095819094907815475906307218740032317544436559976616982254225276357860312004052608715240994599610811963081128577607067536314626595686210288141597024321790451775180329269343796942458634837451014957432231319320113585780573923678239753499247720121588410243100867310153917360916061594575444090763406237139794826036715224708890884311922697693163312353723211618885564256677628557357502103779269868248636150515714965401286818938884342057262851426171336152606774023385751340940364651931339371798687662356982298684773738519057319482973451501589103317204513411899656943140761182807035435920099928182773962152322338745898001059206809997348595628295704913927880420783637247676818321083975052350815375282748694852748389956681511625589358882641306153472068739458265162276306580152703539451607112575491588060540420684097169140107075677914967975391738728753417195868910049345977848229869020441869339261173299418507103189672661950547092197009742583141118999077552206121446255489253280798498179688073938785248400535385541503946493167576455337836601281441601057938056847293414384301754137953214579968084805812233942491346025381554068132639827353904371892826889461549265366307314390461869258297242191578996913848065904311503176861142412674454385620491054477573734190914561921044241183497461831003688145959309969163035143843060970643566147780720583684713404322494946763669994197855959267474358195566297051391827228439661059007925892252238066487713457894632318451384636750788417388096852652774050185214758159623434694227431496225589586595571614447106572636758204278635229605271629254108063282881473522646885426614653775384172667041739340098612805257553862843142175417246802641808911064223028942579017038656193989274961180325383804385125381837083974525514967885995491055344611843057420042106652342155920182719070151721219282038008000326250342265313240143256809288974808248746136471789637552788608024525102864581939680273740748318949385938549339307996554645603110776052021175165447652035373737512104961338956476232238848361144026128683441660611695488753596324539919725692657522285998593281438135234149074896897023696951198656961354826973243972126719368228165266835965128968313561944881390998998845341495157270303453833179363185298507039607655160784569500360798168181207951487460003272364349005333749998870570870734404897998162543721925551113050915099669049857512117197440056516243660611571240148285906135832759840862312398957074813122659256991793699361348354787153839509659281198157294588335807462607712211920606370406070965178417191764169154017433946373558205997270340590872980233941548085501528010991105447467469069006463315606839095830861669459682197543293615726502576869985945124859962817590393133881757053345230610578887515007838303199232124840679773399527589514486372827316608956231080874241827734839623044890106121340034305180330970593862634253611742235313981215133116829839290542762707258219252037763489287414706271640392248093467374754619536189302829187556447119725387838978910566874158511180305929974781502454100876185259624642808907359224778165613899961485302805654315073811449712741478811229847583616341767061824886001509652807463670761646889969002947671822162738609117786339208962128802467531864301243158409480785542328095513941211995838734651174320715252654275355622222619067129765313487795436556910464405976379361067411497122297710838775348177443877454166442318310307249310866732960257412511886426677940896371760067292454427561140933107936809689998151209180563216300793461916367263979634900948922285835156361033325765661644005676682542932608376730256603960988050014475535599074140090264216823654999593563317772584593114464406961701131514583802783969471247473612932361035546727686902397602397996357156746971221085112220878963273272619418559090126690626867055173329244234055957641169683986158249374378797603499354431233117088035246077661165947157208665646470601173922318333565574659433016891730748848471253495333790429525165611255753639482958850258398303908280745234626394511199389116393525315775245022997978414485690015950698228893472369506010319632052821183435963964873301817140247159098209298603837144421055393255896865785564266213165523005795657978615533374361022830203412897127071671509277762957010270246163276624095582151714621900550441295541965284197931791952989370978245368137819673045236459962304065568111022653325377921800771042734374960244004938647112826186655486267726283197420469284361851541895185276277113875104558818609266695842143985358790945913572941647576463880148231680483614455496335953327578046864472112684606028430119058904819061506861547364169885777953035030322033436157263787620389172738558139132514094580260215571178713567617602326677391201954549259442376131706668388210014141384809355030383926935735073404869825192008706695455695479354978308129297621182850354491329106018666551098934324429870620721036507681910780138067584102203405327082235036930699189608242659140198815460414994475129850700701615883805680174272533086841400974569808905180891458719927874158184431853479497883694703147093514709124109811710553859242697062917643576911371657098187197489288457021123892114511241577239622117362694024138384190617393394743533002528142094090002685194677961602001546659868980769112349477969401515529858346285403133270359650090285220999871824524958831465757302064982826865226397665073834080797407447841257511366040934140846862192381576154962264787090515324398931676611742302655714861666074683531268330044158925155629669708452898680996973513444516134308485786539194437348822919887872165490354134714890718882978396056240554177754700778314619411504384158831435286050693217503638405133828428224872464892065392520559122299912973387546882263193889575117958640720432584461397310261352116279039575564467385780467065841231582253971922920466811903590878094809502950188449918075059188293580535703606868283086224148570789524756875668664122140889380110365069354733662802749914122444204959965679886843390019013853591227696874293369658494064658215074249465638435590105837481542185224069050391883017141500285280806090253507222818657961884044086407367375631942144042797543768478321973818264402003573382761210674147488598264520913075617675159188759183580906910865371731511819231797521484370285121032224905971833011449307359584183356063345669508821248751293638129541696878087030546166427819975392042910009602378726804462774069649144721871528612522911432492774320069411228292343914520575064005084292795298377303307778627470652072056032442312135838636948691204637523616403235538268411846526421939979767190206282575496043934269240510372046911037372348058278233014731265799201167283360917896938875025260916867756512630578035194831293182963214192923162416679474387181863981470132005858809727773640325159441509379546890926377212590968094298229655590869018609070718699828121056422637369769350225780757576721581437052957358846277687696707191594946136862190441243131892095409927721410045250318194838208450282583478472868565260599201124669441768504653990623370478027294168966477771870953210643086811337895719363207797820224591798328410092794451114998888745445354753807402415587498370669037519376816090410191556053161230145280498869978035847436201062929191391784671026311031965632107432535730272103335372430729710353586523725646860744669981269053210050301676182439796379159704738629172841130852908046257326194469923380865267503569972323190586309697364014918949692551101422810358602445885892721009922310620464614194249823654371350715307645629421289850977129511372783323531966325971144028692252889720720854011422721414014196751790510759465844469805467532994167439923446044673958859454877398939532492596439040711155470866491573886967730378507159571696938527379902088382773560851032055077203941859842368257445274031064206986296304548106234620044120597508194124988764196539085486248479606246437314859339608980757622589691187310909395557790564158639150768808095490117333223386214114514592967561949444563042556169318889031577787045515580478481702467381179366587004405074489108571061939641944896944701268006904248763543362588965392064503621112417254469067266777284884374677427385368142441018239176942682220623420444655921144402980735501174034431514668818941842435920676588183883166445857516329091587854327340898821332974779192094622790377547201756423241395339319018957430999992538865433498936154173604258860325773556324674209803350016127961349370882423356182884147365925405891479247881411938956699735308483514004437741056828720351704130530561645528516209136782983847915417867959863276330911389835350580195252109816206862499246457091379653732627518942144883541361520347636812094286845033022949922029628025175431856936440176011707030345931156046923567352621601786743358768576276551864466601508222948171528840937510275058294797034561220125485496040066941209054968150962061081621937341890269649096290203725207291320677728406584706027237462197235571904528934899373472092529829449197364731639638361446331774881086689025899421921240221988067146504665482933583450142998104743023165947144782662720521250877095640790624632126938444905062339913877917782241690508522606840636405818699877510411534419958308290919898407509491036273806587767436307688439026383129041058110236641001104977127692667140126564053015861746680231668482855156635195094001627511938919420573793159886194697682374033380215769924203308085524437528393669892210797734215863590297020861203628581726320328296185931730829000157521021690915748678770497690019216991807817095280408559140487792638453142451269868531946949163465608925844908440741397006973879568142438455551371976129804516291591046241787184675722779553912200188322488302205238286183816823679978736111984222810316165328656567548247682104172051225498578166496452695385500898528212192943559428173897334268758587239672478057989718470764806964063659701126227318541869653499165540591055285849933072496142449891409440923481736095799214916013644910508223307017532494503633564150756313622135924437621406067601695615140703189365329724726433232610685267577433028550175509666165227480303407842961967869590822166391972453690940034728112464090048429220832011606751890734846461705251490117656460724756573725064869843785340436917101075621907608480381043926030670408532398892058602110013654333729805124962003184952808443954961625892960769245570814749397513651776209823877681595430742566531397698748682194433213318488720693608422907581369794816710883647344176953801072489748195522905692761217625889892508501952900585476550859220735564566465203257792210382204881848907930074221536488510663342022395935105172222619158560605715366869903134357183576144729354485965179858696874460156861408500983803355548891846001619718680367757979986825429241933463753969296440672910846189707979298181893228712148626589215330651033795272076801014644909016955470385256431358251162383235846563055994477850447251474798537969636114943224532988125626714561283231269506595752356869357180516042717640108981679705708220546357327323616954275675663876831666966538843944264887166534550160256531980853007657919669248342693511074708980880660809660213305376177926793107390212959647971660873357273131175674537532119006414496890890900758963370725674972255285504982619418777104738351917240793075064540624943888687734078061609668802720330533616716846762997133152740952254594198617704707850538326387988373666109275237687261024128047636848086059016815654889922061177111229294904548311852816351492291918668677507308420768007906074672366748445848500681008593206227413852921533309432283823207493474308407111857097168229615690214378939133170541138062623021748499252679558496692363611853391620002816226370722646826177084845526024586826888551067170028805799641165996298780197797142540234963330540549999708142743579873808735890334089302365650346597123127206408179954098811489800433552971876207820632870573732739278449707542306305302993253173638713836275902818986270907337363237219422694591062507989594390932591271840793394970178816012928580615506450884033731565941034732607520810270023467377829561267835875742641359657630513050677855192376926119038016343628758491593473488705637027401668477775172571470218527542239353621051906516502823995597712827799826009299267599752459740208622215296675975014236341300994300758321980387771078077003483191105965175405205076120683881392673527788999627050462947018092256432090897374696028600576586466540821067814739002450686957143439478636894376012418811523927647854914281720256107790840925406761314354159726534814579371066917711912676686313667186890002093343021910607948787609049493298598018218074719147363205806966815253690308788884430867738366877636310424420139638587433561413471048683022056214849950221281397598695342588566429922717579551668353572548397262869353547984091142724768781510554820685575548773428816161472001608569012134826259963576705905104341052530909364744069835082822557572397174109882500901515098441714884065206624597173909452935701196172222406454524008577591060159900478084851708057879098676688449703062101926085385274783100391024525223076307209166694324920523992641051766861455053372693979494635523226757975121255277578397595062401885388957919779992921036088073088257574752780030715291740776594843910815710378718411540774471295985827663930132633216267017760954866971347301951641347981081640009908625294735785577689478658424279719391872392683461204690267943690565325462307337334970707205875615442279721783532894184934282796291352173311025775380011039990478758425533329530973311006596729290426840628611448983315141224994058068716989982754206521744961132532156592120958309462753754477313601751029616472782174039152415003429131819179156846600599176628068963838982512896981371906674000986996525215776643168424894269008684657356816841417328244137981180873855518875099565901079272472458964991703295607663505556581771214383145751950287389889600491116723363726037036842919183291050620912697682814322527027732178912981280713660007345506040987442697242946216671793626687491762339854716788937626661443093186292275897755781120088913841547343254460470849975361338869446503726210800333696759998033945743104799545171590264469140740911342636331144505019476019664961864109545130148711335721208489615124271523068285985138429673519375977550643893385539794145353317282308276915982497115497910074907530918720250222381077084857913050948109062284501742014794634925366764635701861707422437977163891383957276448967080022598610830402670495464046880785664729988142900379384640734529459492998279484190102350327455290654997469793799980853236949097328475447444655132560975986952604572812905762391182514983784811028873026016914409186594453645479741861450542818276547833368149959453907015909525669650677096993365312174158790368617442524637763291546126904920334374619456874562148457723455874228254147624223020564822550657602149702311519161844594664065598641678085157079852918052727972052248778893546327727523361395090067130085066618306806231273532401533757727962405397405576328431920179411384254122917279256347013092721101770464916396523729313744578323700877704269527398937579252780653549277460162180073003677418128527132385903975360842898480028488278267133850820994596102572192170718362847940553351475644426398741850844057277983588995194420715054577177082734556413069276903694756448802061669132563275204274761177429098722195306569962181012486246121199465406698878230235682325289471319147166325076170320297983500234904317124133032026598355905561255431380459950711973301368775978073204387847818628080464293594948690169530808245766242156607002535832080329022504636911055218398124743154732440224711237978879123215772344880532500914553371113506398394028049061656251276302480436888150067526963611187905652586325702714059293981775706746533342037415640391240311967396628241586715391780960083220045333308595007613966469260592603932843557992891662989253892315301209574869580414883281534153380609305534525058105837014924500923009493551100065275852893801196195913296403707764791083522882177682072582711456494904370902676500893722782001615210298426959367347375279664060734355141336142249474072306505303745321523094898891405472883455652418647995214957098350757969615399311284132533354735719958826209105471189850002608201894622819645164685582513411546305289802309866663683559674488746507158785661268606919110290160418790244359583200093650295745682123155165088644484892707631546736340154492244113727400993519764434248403774837668095953617695542347870548959545390160503598165989082145700897142435942124277687946433936952108209079767535113469955904921460729260791131375462262239452169293951030463795413777875501506557774556818125652429078453244976584871332775263682201956773491213115907583661827192432820048107727159125542904174654192678756505635660466868396135301680612454822575426140146124249751296801530575619807439938173293176784895615388350008557393004866401193762876142274199985277941435769336985282471823893322375785673143427101187636578035668189036333861975343709216468865233398444114307349339166034733058373853908185179446992841360945255852379116580446326657182970222229411643053855916479181430239152882906123087019812147179776953586920576179559311914419756297464509345973380839466220024370156971638862788953183819594116777359608818313341572234686697707978519159301532114397627435271924202917278555469098876272117202301585430429393835243620051839922653800903926630233156248316483532398669781557398782336063461171873406546340981700812751272648080943603192182786852806670333444233802212150238929114703670533778053172971068914138549560940076022435815811285127455189071800193508872101528778024013571365935084525911648101846047679758118974426999959267019300248090489618256567918343737101152125776513336858989679976975178103021469876720834513208209414680945581429102187404624306974134229916398239972526956814954263887589752773842372925804195813034376499235161487973638843483067164293998645377166001635161522362942988226363907432743690909034604855095048135201695728657035633938063636597525365797657208986380016405050103118296810012553123715877522479639220842146057027452631817221244866315290970292895719092415727918345899307622815715789699081407768064202340027597178285430204695958266677979679350345501185633377305917588142368170344915957527654376839779703607331256682970459333322059911844608368271691144034717242879608666873895869018460602276673725086512333347498402261845906627397092508690107330812132347526699702127591764163509809252508856294706324078073985166398963831319658857813297768706764416424349785020246598308952267236304369699554553769855280815818225758329859021713464682626419703653127537165256099258829702649980078703560116493806408546669977132232704832640126554023169953655248982906625454627148284518034942967338456326937517346216826421202427657938196884892890577111501258308735467476311495792068942738057498083800164592375978148594228622676460149587723299818117174768324890110530146261378525467569953555577063105447605356064431918422565302995614031822922402930201189032008507675311234280941295746054387019353491933727041156917024179050135009350967691569697209539768259056855074803946583582393972627371781929198655258835050491955490646889216884621079867930302602567519652361600268784524660619110598806971287342940939920616616410683700959210988029425169938447426925301333382452428970700029177210034116116625051558176079710767761425981612660747381492067270312421627768784439930524035353361169603394035717688647585653156815249385466101743552515845264004215898074055415486312365474111446433575938549439542408759893378202773905801766956448330779288332147170333766241859308189898870812468150126004407524307121180060952780571775267047885668485711231004586983318476709903095819576106590414158691489392255422052194626852100199796176152591183687314138953597158153686707506656095827114748519592332508451527702510670215769967665865629091904312530978732877193908741157896175083705876018175434139932324899043179333981804295229026454492580223927445144135067692982907760776860232697702672396753425342905946397028477254823017309254870012698899835406216120987332386995392312500542626418132597118651830318459935103031293788847270912877307167166390779574324926691216257707949580706622819506334812595107802096769031223660629063268393755455159522375566929026839558616465278973162313128835657764146969778047655186890587952977544619067167200376133156279300137524548488699676754039119416867241293203649946666083933808962225866370583553613215346279431540606529364521316761084363146038232146526121733193006026810654517749693109693960336747666315173694958862291814948479699615131514702181567681356847498258916480702845537359893084235205342588295626134604635959716228974980181526560149592814478797272003593943327589513801501767377473854962430883713472687596837349627610818056544076772699097832711273620915220288112131051487400810307906285565835349528325260489047054341923148059898402631024310052343437549978861725026784482759109359530031588632967148365129330933698733728686350412815204145633091776867919545998233418737915668436696322106526660370797848016208815555724556848500479876291366088828308495645139433391130716855698909631622942626462308743443323344332658535046964781634727960445531607603964351032461345972683688071376542615513210438114387830179207625264196074668480392746440202537752120633215100732179537268760345456460942763629475741029027380554462453344788648910229133802646831803314087648897441075505796590989314585986611250472764930321060991500126317519713483904625810680185789119477454219758569750096341046057778784793491656469380611688390594267020906414913352889393330841071251523423499743650009102904442880870129219814496590168082561111564630464808926659005790268896796544263180227477020661277069196799385604400500144283036225862701261528527796673895204754279467252848254838385375714176467843411803833242492117155866770945424719645817257007507853635137718367842859551180885977707727138355711674482426201437954254611068503758486762616312804119624077403418398275421368860186552820445970366456595678291641021749986205293654519219590326821660617306996808649369584807910259255567172863609848693771677201231514736502529132429210984139434216882685870790454860609203315691878069757265012465993899572832076722241989247978052886509384617667143263143489056883417294803804614432646985626746134639860605257040379732986330403755574522808671121364200237739496760448859695706735416185922086438677173318249777069412437633917823679441695647850364629954570613380679218467729435151703963755921305394200685990376363148826452142392190166659036281706330978797653818320497064870560746215305974823981224994428537406926616991026578451310025860689946945931758707829532654735086248129620169004901713880843687664830239743483178178998493548187181011013013736319308319581979981807637110796653239657962817741731634254942676066801810423210787532400476503149533792807234762534066581126205017406413364307334204613465305129974494045079531911481108597504037408822635337170681907561766448495392630459074002024344473807231298420051470829854339513045789727551624739395822255026046197922568966770445855288948682987157864766783406370697167162682163041852978271906231910908076526541776643594625834709340351132491545218481965986731472580212818244127514674986598290192495855021077745485627769915556785773373575979659121368571148283249507677555359740299388849895234822990768634234613582032965406645442640949681342500073938249827990797665561859466175805747746535916808786228838937794945710961200888737438615477413058535152842579790323097924958038515833360918570777436819202141674212276293079346957284711206946550375305919186354973787430406132730766597224790206597472088680252926063627087046978292336281112482634754752516686409535234944225058031616660504555329188685240625662071651181220910623280436708055998980687335224834627772326045317878945240524165038941870224477237816136729976750377398092389811428680266757283129398581735330768670624002887063163996495663409029428611184665411338319597745801581414154317115701180488296241049323223319210622184553508013486343750201497064039816166417506852599552364191246085604826849871199498724414248448411634217755599052159849389030226794455888343435204584256993956731882920491667733024691539641933686473491299826495206413736782077584812666238114699320140392809189891450533823295251838379744218483865566090058864024261473658648270848428253616774620425952157588837148895067158138543930452676742761486751043625505175037189242503171438390629041953274382140530731672851865741954963579984028138756489401089224612813769833797285178931701852402471740382111829540759754663653115326976508863326817096291306959205340895579775988113069824191291666545979094642855907593121020865906998697254227240497110870122489125230572703793722463477746295981002648639168373667398535428445709746568242186109635645760751010296144954275607154905288259868124278935655081635749346839300850087586326926812493272283555333881365760573334922872569647804484279667521787256599246975317901631083099277531324404265900002805849609018779316170338060159969026827258531122381557990815480878130261429193455385324736767975068894770452575268060591135933687740930429400283206994282164199127950105575449130079502742505482769307897551744238220909682712668328005492550441434806856240850917019879869774382550959310921335252979357774087878751997004528444506834552108818732324301760930738889718856177265894324187933654335712592812027958312515442945045042003644858461937823595317748070095141786192883614193648655232475851321623379539485699420511338322519167189326579410083634665131388551734456723086345373364693276145965837776697154196903792867224858052951731596161698827184279355044593112228212508419971668257351014488853833637684076803984659133020428923450066359677565604514269415880715809824741305636175065637409635889278899248733711159741813413719995514455957123129559669341238131755253287376217885040468035905400266941542641338611535926225971027617972607554820890331662526597385211626529100717161652169314360275538941331488847190600418079849435690197676455921774927233093901939855495119737761700350338526448342952904469202934975275450526671088832226370776825133716982933577015356604308295089049784786387917056144289550691292418719209591813409129818020671734876518512358132046362743911319474509271199216974146297674525096692531931897542482604038573106651565477446687174836325089766335960796844136508078688621447421301488861649332558007712735827829555590825238153984672737533297864764823743258631194792560007267353896686226727993499789760292445023699943230784829720058751469851066165503483179655647044137386562026407340402122470091256195207928907622951369688232955030611704612597823588370844846442383311459750982328200099398940149803411614318133663566023083500799998869272354869781298805820065848678490646703450664726646814383700636611849746190012812035939615825321046217852648868506839426184195139684545599194730562881461670667800901412110754809955664730678480831523393708691646073149929529536966780815635264137766888367223101752653298430563652010076010397065336139054999470378820373727607338282551273981156518201666753460084763062757575076160097884674806720244337339303863774122929268754569566948334467520618209045458064968379238893935615845576024323553451303098685790469661505716920913573248264630036169435458593480760654599107835789790130245167957849984100464505834000785396664359543032297962943668606269405089920735445007113272067264467974018619454101861931046268722952255972090407816467876310671060077960353522930282961662478401774873017297934666601458572203805975342148220664528753428866815824869259392351157026030591258992344488415074000801880696484783264767573515961116102157901926340795198483969866324564500473601140702820604277179792059068241735962641878546854080495725162028631037805754444962794267673219659633738809179576806809932824282858495120358107297866959974158092256951461857736335037570425360097323097350056512654650742876773157298652704357158124923571808512591793502264586294919731692106587330781372737543826272131949119836357499814963904075900171862968169978665080923096360012524271413351913903871380165751971867148926078365855163328189250777008954353166553128716095932351131745030013241457106676499683048328172477053102683727787051797388134059147887687926113184364012592190717603386568325599016480338014816801031266298471765072433782917540947797246056166636638287158680927613579751282410801010136313081976889831628378990750648851776754923287195160830372670841152077230065014145954031925032284833247139865162184085827953300489934499588704824380245098604067832517270361138343384841085022713976494710894685125783442299011378100088612426545752030382989146318613062067396034972501033920692653229525573080119629005317444900359390729961219947365125179990657906713332124994671017714222122011016175572796158831760850565507340836972160802632328055788230903184094199136755961822885138704424553804000474040131908698414961985194632961049001777474930060518633771190289116749472012043049990608535691421987186258341623626198555017837903383122355445797584688051423629499547724709256669513710670331976934785715444810466762535549296553482399800847295428432030431872744535067272761638683513416833250280093354469266112034169785832031962241032865892588473830301202892917866348691709658907197664048027923080922515655455696729472817385917774305042717762276617446233543271966716110578269531690824189503922260733919282395346252039536588866454834389064390454074557423314762900045863268428967641173940017166205942925953339800100221488395687460556171323090173005546240274401846680309938736144121858235806741779590735183123237376866810340276355246332007945929802500019086791713676385464257396315979974762575919411898195850643768260044093179293249660130541875795617030944796865072793076393058577411247305290172204284810069555341560432084222100304950882104302195361265154837226096036975060243255258387092315115124060839272422809184278722313914552251225186168467627004315245597926275648804138571953473783830813974841688797623806042845518522395234196583047483791433478728676745402933641002663786489177304022112421906122352949036845118208980877445883930972892457071048535331746930346267853272910331141171323219293576736274119388071948891534380843453131843926644984791563707814353056802203188441340085350864001511812390702802289592968087686708900807032747658919563760533993056332113810585479011065490933259215378770610652200917095197199426550105939133014504025970509881335188242481349386744261834549833473893402579855852224719278263534040069560255394529204486571593024123792592300710635407984848610567746397801497518149017782595315791759772319504039590270327844795652477303280402787834939191325825256726254764664982842382675866964801982663769194052301815432782004974655518696762295045981195412910626579519497202500190456603978396863712859723600042997565502726672943206451051374618606955716306241629954754447144262738459980557678845750008645289509688622616372686892191688285157439018401040062670752552500434186635232135313635094602663528649637452303684442796551314036249096936014322910018709915501728103696615284343260744332116822601657973058457850022934362069456730158891613254281898158442951881347119948546853126091318571975152483093886461653265663541332758821560814889682046385393775464075412016128930016938612409405064551636831385357946009280115334204708673833990097302627009895903897178203884875792167232673669772225145053382665824795467128996990253054481005690400351782607986205318380855668288704949471514383494174219674462129186695828416287850670031275010077983353309605291531509704560830114151005935804291159597995774714463750121045811626070671515119058770717488012794502507647178455731727739571545223117882537995866896564435879197025914831040293573331183517838030570313581316680511022445777779558768978316686397294465997579641819446866877517606777000987755088683059584355371919525789088480502491544784891103719483125213228580985627793016161598020437466382898373899126629839076550766542623705902042238656334748621722258465305424397210198120178821497319666781811799319609830639053550656706250548270092010494821060946278885259804421861175148771595640521909883557747560645621288757117064113742841838042049740084447546741620837969570600414665448452227718557842476746261591955088289949627779786657634393314048771130539535760016389203035320925785410134918927367277611589764411115938999179096974528062765353190361838625415293090570325190036393693824051565848083781834557846719948814667546018022410462648000852947319685162837022363787885052715965726555856621805885618056234088739677227492439197692568233942064759209644496594694365539027966729112947962967381493434103874930265469900085814408886474426206460445697820915991171443326197561174125675130921314440543460384699025079779857817637660713780635077711880367721209388514473857070001851969170472026892290982114424092979436613068244550399478035279822506719459969960454560352514428183033246051731625574513669841642815023172487378375936596559694168303851161974459080865407728300648183238660694201759466285134451173163741812762000159747260862019348738824660531467702157979582476294783840160661337167931628048796533230956339050474661849469711498043320736187305351390348718702238855277747661675997811512388259282310091407319891974486417324412522344894953558775843402129333678595375167197804287036211762061999287758657371132665846125644226902653576068558456200730928580961472264052375722747089194275177259789278769557815935090247864585263593290658133003286186047574564662619237062974115634512367745739473844840914328335005333421003563185102183770972788999156623232850294536268661135252070646341417885565126738403300352748094967695288743557588900544940781917997807366905821693864593478840816448151402486534353442280174140389699386702294793804543452368588789916414020746272898909722545110145175081754850575058688066842202121205651964868335885760732324156250912508487187904187212077895763811949799668618307030609408114934083678420365301223500254605531434688389106967992887252780551475143444415684476977875734703468917894807998369852165874657683728285141710246335389426009427784951534432024408852477066380313398091674431689831886570087390028124210795609879514059643169608889535681163101958473062324511370829557519525750262193438071751528884081801697739026632838470980694175036330317849500813860683204145590767795261936207982653147080210427189951369204257820526794290626092404588623861974097380435267512015832645725045901505281628869809630266366224498315013947476147743378360020590345946048788477052775371369384406494598362257321735838407793643761914372303267515754244667359469916645870435143116010417421202986553483482788169620212906270812595934460264588842199177971756455812529948495766934449811264467032661109683147536062497856585533953056655177327860273241566163684300916939785106782453219840203494924034692736169573486762410428607680838185180003466160371931143329864541320553758997635085117414540767469501234138469143365831304041334224447864562283080140288876891210497522399507323753657310242201574629163277437908000537874571017046874073750350450263181263433601740892376149001253507556286286016165251907524744370875341346145479662015455549230051965375478199215533768937772776722674972892869703526714452346283802367899452274101784186637404270143231439645820514366523950174014626698007145323622145037494651362770646338169815358898448350759676291152155562177385671810245321048554504130542503186090767600468949359561315280073756364874453931483511155355568869458895737448236017126358618911130291205555758337746194495368184383984346962886356437354057085220307748314128460466365387545938463877635209559226917188613015541565225748958748727900786779780581082197143460588679075408116332234386247050546983178784945488172348701861540343660250612050724465172628289045073969213228601318485329069049833450018121341492790521824775582323605385585702225454847160439063902168222529363831837883211620839827807052200918236718167078746073635880971421878237651811115971705374246160160805254383828521600615009143979517035002727225559537891591060098020605447183715848511911006108636074199179736233197576791904462407655233537439157208989161294183049933056871349921433912219719499562955026177654829173384888396284957981249940358577327673623501344161114414456671048388641242950626793922130511729790695350445026897343648928881776428367713005590123959874233828761100571655427941788734668370564619244827460077949450012682087116662975604752610654661035858498097746784357810997880693178526998701643979171932760230789091425324863918469660403201196065686454520679445178002565643966058560629330701095780454918013369067393865710837920246156580540077136227915296659817494686414070573788672018281012802985192731965081038066126599327442112153309696622241131188266143522206835023570008080380384436554565187400049308844432526798197362412391187891050768224485791030327884442489962836776783050210169202564252220817008177566274981020201922275273275340130495905252381596588432301941012334729063670957512663907572358469838171677190806352234629306222577801817847468841504787824387050130207211840674458198012207397399851669115007351522235589672780327743893022769712509671577165287773479780684017812972279215560108319260656165197422388204674733124305694987452488748662883665369426325925759060872452518611457248662175753759664731903200821834194857371665495881832574992673297310441864256060811595468613631816391057703452812189039399504486502690277680976499156685323072151706664881198818945297797728438480533090384878468218950153496282019138814571358946679142115025709275098979977350920868500289500911221656306443870773165024811442396955735077450846605957400017828616427933428429077895788232279472685961624356882080922966611087862838091626855835569648081998813513244234988492689367934750296194013267328019956558680253784637167946351487547512874361111981298729327263523865727882003646195803659987273252693084563203917346895591366966155848168395867872954904748773907752621758577269039190745497070898242939469517498709753998158525884136444725220050042959863433014638419737021085008961861879311640725410271016838294334478454378043515848845498394653720429175641524771943105336831041913369457611274608233809028283289838321712927883607920436865602801589299074734577585638987673461951440917570267703145954174012829853366739714093562732136723763708753038269911511944071392833185784132479008899564858311357333429276478611140152673767065418480870391677454596110180496292653268163978824414391768968285335837220640505530607442017296255644956076465293915931005002021370367396278754090415673806786291574110455208603149122222539069168436275866032889817267617820606545750944246206578683711187801694418020857998913208258832637889964522891168775636714385874301882156057254960330902743591370429482569026780542532052358809578146241719217492647858328259218917860485818820224164305917643994119711559580381489372845116245868665917828361522320908417211197482581020205362851174866455453799635122000453435230151723017070303714461181484789239127327620050720469258107845313988619723434080895407473865256762979396332167998989242243088156997056460475828687747740146271746693560129585087479355227975292427519843351971712659477404531946229893665635027045067505155760448017665223132445277356624601978092924848593004735255796875948401515666443740275177838705300468455910056024675304283675888898759069484756138699807646030711782945874960129249067205627676641950288230234725557754233834792426281719220699320411758103293957090039906452256463071449477407605963811800546645915544347172698286470307642382626256077615254509530549615685511105399861479061964065115670214004781269688800146017418136732860830099207688314632364222963912580602581535948132950414257831664557503795153854807010409968553384821327401853024274474036454074674243067719259057865175512522810891268516525836224752525348345545897261333292109406500400008912503981573410651585666237788505097734458496290657297739743189562554528530568065093401367769796247924153653784628721924814288253476909689138122344999813238597141442813377406231233227063281389862077471840180813210151750122924202121790717622967083147512746639043586193182291224260701245334011859429111744488286961940661885751016589123612750914825910618484223163133790299403352088661342605489911290868099379090777217862767939969075470592839906058102599665507836292631105098263919544765971807631925746695576419898009634100346450699815251600341200755522588860405101411527751119579862099752603424864921900984757736550421386819096248415001024881793442754327283402935131749489306248901786734539094276196283272821137086284969466707148785735854506325204872832262412876137495801118908964067521867335264429072828235740481713688009222012135731781868721830799961919217448217473976131432025678008352797555023956462169982193102545516150140189433435638277720178122823966056068048968929360764463972610590813187715036765576060595576521239394677583661593182307524934184525253430611775280683053330246933918509368385709410228451422962783298193884349065162940762952082906098324150796778390670109162094255718173298670280997022990720998024019160058066152154687833262425600443267726374558006574029563227858576050645132633238519968761887590721487467710331539776477577887973371853008429656985246506103644848779701507381372836606781775668451295596240490256997994327983033324984374401048383195241236129236810725753726223447722451825202013636952329532278784890107073361511189573970235081584825410794998268664019485533207378018257047742570006207123897853533626045222765625101529804589516431162311243418010730817784401011559272505569080185768966029582309661966738787847699509719492773712046646904514298054992155886480775191446945698648293463556711436486054366754349126880743952056245474821891647171711145275850633764937613296369463313980036376512217900318849301463860393963206158096243072130020375741192289847608680015426846728988524570080512750974090961079820502528001716281342996550366162296638582620186422591393010438567031526289463523340188625793121574015512795298218800869606542841807180516401368803965343301383208203374895170115205825923689010616559966017601873200545167834649302327274689341366547371959654870646994085619994903027949649615399308242670793464603824872449910855737746790329395707288392211964921726018583470459205430306412257230509896922023514588305653135775666089589696576859670224024395404722176074343902708228372229987556223826760221672075450528480307426556148169649469122354661265733210903776231413200188653713328276627149770961586756393835475880892582025801056873576858518426213437181001016882513602619160389018474375192294525683430512838206125143801907590876598035195830169623013169355792569839695685899894999726290743927721311470050737571315210190718059916711006250070651479935279112506182366014734287470134850315287143347166320995561947181546440160362005727148144394304433955087190692918569192437206534595207080786819051300888322717662618384100827105722652811231746339362515132394074498322758832723561055996089533161896770653127059028632249918761437175090537719673303956952539602597962472816769806472427862809202717865224548994838455527796882025640391031304931192295454636371300824908630747756015670290837789945559600303689917113536289707669912019882152707727570734451379261307488917090511030041631941651594176360507964344875979018493758280699342632185068807769661017901413605480652927357596723188366183488117174641078893239058905012691975397077423032560810188687982627730546636743974973046834939415522331496401110815366150802793584694352924282176246980532241002779585495808149567810119352723806491118221574637749966246296895456939944493004590236828046076085589989424694271366815268917540568254982182216151121834855315263722593617490343612494559455257596117069309932525027671501805257302926946969244962183463216152738727551030057435110032779609275393404092477971078726045777968301930364281838093743214379525714187279352283569888313978848154732293665653984613704530466752312152564307193701784163380761371451072508013166004866398643781149592448151636005931675577055430244639525318361511689479124071466013084279880477428806531746492339041355000373006960602875775125434162401483477950455449747337294356733045394866816640179556491304169657808584920392427794296282928084038816122202536469835605339072155171486167034161852847759462599536166663833246147701147760067276908508035769267166973897135852390606033883383883082553903493256251391094420924567598762775771097726676551790564860993460041462620943356206257471750696521430648981243390752243986459284799017165811058109279882822025154516401350112532058580750941910363086028881501215077930184059942861194652383010466335275876467166182188484491438732305942777029426810785769630433273591145262952903611800222590146865577106442850661950824406569782098120193989255845717309434517800545492464434058593949264045129437541738357063049054586533036947249933937086053494108719802721687310823952563246546435761865534200563822507947200336626822339542488102344838390273570177975359190030555987653385932417231536723545589959845929605058270901463955148123702781357289254629208147137612678943637304552220366823916418323330503938374805787880573271089384834283628171600050984576444204208213694186962997492711083235921487218502741818237730366965566152285433198883644760800574880783208965486732778741529119188168469599956705806002981309145007401563423518806509071184853002962018587392094323530891285908531536028695080003635802332927573746637667549464029399143369585478586836396809160581552722829461346915183948722855093037575787286425342157951002370726026507715031886618012931559598156947109778628823038248596837470155217008825304463133524032464920751804005826500743388278452587016523489017564551853609970056502911826281132720399751940197927466806381095205638658197465264307518021051450294562895991944590670152631928014577861004626813492957704516656279512173203031366178994900191948661845577529451064358708331666003600709792968433693837392928099373400112347076193220053384276642403524432483399654453518769007366831077332833149145786628982158462910227083897979311583984683737001924213734757540188540688045723228767260134167528239461134148065815655916895773765997399234781241751691191332830190693283313057345297278228891047635122058665615787492092548251709606525588317470718118023646523344291002636485464495115741842848617591501297203598462221981446144559994878535371696825297208765364328102527473733323551989364310824118362755939883911425091684048129656596895811092914427777538398086911404838826229126282800576627864061403006469154573856973611249277798097128266782117147376742460011007082486941860742998605230105568740245351742610141415636935747419237320060274520830367550927305364955817203874752115503525572611203298499012256848546781241065380736793766680078146072119601216626493680126385048745047994440131478387513827295905330199792529982679397001716621782730987869418206334181999666815208200866856632947254004079638654100120511997823538388329402193645154390544975711482878952542138701905630950747570701388723631456608247865107197700131624441167426224827402711884395729709198990120987270329184918888134256763796803358964356389475840590757501020119571486947672873268947824465048611137225969018165412776029317576644301253049830120736602280042755458969026095768775306428803521549403128745154214638995645576395262707414460791996628708216343692833440580328469475446093285288203353965187741973872150112522390587903051911690484752574451673231555457144777806526195399462137629501693078299983662077192127429052574653971865503726461364205665386607981347106482870109526212507627077502338725045630629464663705602028330367663083359292479692261144496148303610278799154510814013564443125107215036382197153684647224986634083058974194835748919338041562735778141318267357128628985069680325870040559314382935234202868965142185231539572758522718099955137804436293303134123766147043841407422001346719950859076469204546818900270181645045449759199557399100654311823810660428704516096979682283460320176096186471696584703139444247093598522936489378079812694988302755867990958624360348563366248419589950919119736337619533763059399910382193531818350005649757449034347183948010896813119506123386189717958350794425027764002289913172209386572470445530159106933634480188847492999516964686241354075493737055541756530181484332546667254277127786348529589584989667881341931694267041382672414302163016226071669304183073171209126274478714581277572194304708894366093069374247401571951577394780856840430923923115138969837067574826752915838293656802863745729740860975144884011050827487292470058123713661808967235343683582402785548615740358343509423973575598684153865620806161750175012268787600328206285451348791497882529617901888537891032574086955589790491481842134532299774480082013681515407101908398993600341591580372840021570854084210932383512177566157486461804798738883788134175878850149917810371084399837024102227868905587424724941302600450748830042549393838711457540717823750073253848049094135505319075974073254474830408221677834322461245049168407568909935212963076886675853549275793172948245519848247984454890788126312086040799093945655172173905925191062961307522246347607493308990732561109194842054566258214038743333179449282241982417140577583242756506850001873718162695316283175161537464021006694581927126525350351295784464838949465141518569742981442398207268050778378734135332939058007417643703039406039399358334306840274713341482240341321433446746830947304176190624682280789778990545481978926436794707999747230905308432735837431905894473618378671833501825216238065027410635472984954143901529110346832340088822193248230683314444445070003949975129406753260254692972839488537584920142183944589942450100546921250361638405259457073141942535408299014900954588133464838538490164249408893281874834451903703305719487739895875922868850371711386642331781625099189537548209640364451640725989796575783260336171251684795451229269533326841287707441960761716195765030659954234216819549982242736108776565671672836217470243755951772361742079865794534928115312414885317228983856865823793606362389138789286462773297733737021206335088020589691919076875011563453564456367808343746891234243947231915273643266451677221297934498678816769453163090048118025707677403123200092952555598261174800467229986155075941244363446702230108429995888290984309355876331061247415129707176746841997280171028569532568083084992185198271095087952492143468212851616951106686544446653301919497181039257637144343200490363102664756029443111746086826502658251073732543171863839578057594839975209527587043595498706756885423424610499285974141219073698307908478522634677316644810014734008029221164990903303821948003051579754605497384116197348434222445520561505429502224974515475452238650012756505844680367593292909968512078215819524634856422549809700984742244346917574868632152635269772609833173574157314069839342754738812216508623584084652838413228706185351833616336372803266452348510011828579045927005630945214861280080445648507938777994683294061319589692692138948679454124269991119522479760434900104889962157651865349334771337034074941588553846148509857727498302080052576576444007275512406882897563764487406378576974382418797339868162230865890468222370067252053758473764880917589793920316580149220659075451965680484638154017723100684491383534337765511533201289978344983387412387536840799291340811661678534879777589936725477320471630001247811377669529650389458311964116567363881717243881007602877586374618260357119155586334603312274598346042814030029106731435493740960903100087416452256652536525820651559196231765653330821836962663545404283206933952841815897232992683717701777734580479577798737705140363002659187157024349388852710892882879032266558974671647715588238747165410197822208030727947727287516049639061107429761880060620296960342376310343448548095578009414797389423350018614134681070858069884403054085988436024388321197764055982644233325490810406919165867721252591408487862966082917467424676674317129555914880873652767684457980620584020508599700416645126302671454107887466495595517420151588200077140751172039076256252221369546039665948908460206625797006740540633998118627642319367604798231601713081176318820282540743005154724174839436569474619113504824245700955811603390021070878238900557630957703005262973710688494671567424397278190842621402061481027050509354246813366807055826462656337769253379359000007367655713050258875245669065886903030480396587524950555121328004141755903628551466009673446489892714916183262334882119535973653870770337392189451416209643426369375885226780624460305381912627429507059810507185491149926742802563442347744134885267770682842943984013018978424874546331975179586741344628780785289225822370509674607550934555452593298825475904064031869752643033190933448280227887473346051284572434133349918452492221084572519859351429534785758847313759831042651741550721344312293615212413414853813893801257896973289796769837608126958939833319502034287499139036236392488180437563634873784329533057773414168854467681660305532054938230224719898427701356235554000022213837036400432695358642051298871787607041727201289465039219918126338762416716860000002955589002670427564976518450405025519202200448752259400296530832987939836764848456335078104051075807473673753189629712513764844793469174447121654566265588545576964958214248164884693130133559984265658398198366331442738688534064093092261311857119965798220347982599073464877892760788073401552308038387131043328774098324220287808944805805279359471215722809034401045927985848155537832451262279658156013870617018160138684357723297335727486766808760181509899501003438610910145704013302647465318340225797510982637983544997477639834650636645818599198752239775777205445502384331873091631583680541695916945886754027130254852779278860923818586397833254566340132372263115743366425213276204896580705716643621039004433819188730990681042184243005754599742261796363894813254549889596848304572593325433499398149498794225902946342039074185038341239128421594990741220053755589655338095620689063245869967026361463371916558617719939960680844175097054810295776103889237277922238621553977100402554658650931222161490143109165318323375122084603935192539573275256555229221292521451847550914670279267620268597470882495343354334145377239329948190944939378745067127706937054910793801205303759531698312355309769778480483013845379405407360488269646007620391612779509407878932773675534319907003260872928585516303171488868195249732722218360863273251276021656490497951550964897372339362152671856414142203959193028515168632752841861072049676738419544891825075724729511490885089929059032239260918821404046507549985242390761654844590491520822517347727509140573066892785065810828038510218440353176350044661825740737719585921328737015710900606279228327695548625534774997027695632572567474122365466143132949843633943826496887828053133981612281272408040796844877965578216063378525582327039452643946825654902968868244746265936769042770077858031715088053299882571300191974601359251237787413475229894474547284206113826737686555229565153634875852428377179284686103788401433744471501870791978448653160937250952443049809823577716289060717312762227074259067661138756452816876953468171174551723024170764338039786412039529449984604983291153839158970989699388716193152268363562397883635211188847725344500120052019810824768698489878756214872615088451847570502888477202190331946995199624973907115815046021085273186005843265926219346081957240873946204369210468094676271518671403304277612487843037350548679137100794182351156552508357724103338212520508218192767382845653379141792447845139391999397748292652034844021011672577196816436170967168717622293615680567209559350560987202103564861940509677148598256885747498031718929406723756126587637678163781461369857031738194843619359905727726673105187244140456023546176350743481311828122199391131424581099949615266544571355633946598368588556190794870829306819754192031853047367817440045645337046404672238989271264478046608636630943747907429308686141597512101962531100115611940905016260934702576989016169252702093259916482624271850806726309407484078417926030235623858719095785817762374284449927175044700443400451284240687124822449553247636725641322140006043391810514224259162040289856409226169404892736394862583038397215676139035082056346080811436615142720554763380258339789309642624132300179967641875602862526214924633280188139600324045953765924000782789551235932120213941074783374647138031679822344588057447397917789323325275129673372156508490677183169511015190365440651011260187215579166991880910992560317557674696904675014678965459278025045562821891391769824975203325945275262764678235066271957556093918748144964095095190887974263851401183699615760822666172362611571196279899316357525864416541303211842872991106002055196850127738677682564679913746442729091970096007799183256360238206027509538976384672035793281808278713019780299285194654660638574702154090956761970919045980984672199323267541896250214545931736188175457511077751686656317307972106346964588002160822117095919278299906345707986253597201969709896163084975192008259227565395867551383017803520768754234921157270578397998614347216048845756452737951609990432087135225886416873852098609583175279208280018437699480335043492470654415481004125226629566646705033489333601018158614130366294240222563739524591954027661341607971557355946646581562004306505168124139589792244289847843317070763900092202754660783763303045466459226364009722147104631151521237722112311248895208162032672368030762509455370903153143444027395421161218622614998779632067051236548053402377771623141432883541359241057313563963336166410906676316730289352166271822026123031578064743009817493695094905042056334391320169874370927897983871060100683121662124847477653499865706191008162503340732955912631521693193926502115911048967136562682138631005749964985517606846205044949065512933027427814676164036509052060320463946888986647065811433769404491397522823518270685199381945497857380551289750447552762235431545701099300040379644150888311018793525815894913589312894567854126752559421838464027562230616360897934408092543685993413926282801624185457476477565293533323763463804734513606642442834578304397638082877911021777743817260977228271381576421661831486314867214927811760531737388169973395612449359669700989804063528026403724912211663662289023467695447686055923553801333326707338192155092402508329862930116195728098086163941701648171858736943626534601476682250109727333294639775720271366714943301344606491631569450822020412454753578637696563583658528141061721439869694590205269549898012022243435808572356213406688192671939149052582536927257782872538811207227776681305241472147568198997796618627533117064607725907461942680641980115772747901351587862691692103446218397550780378483994294208456444094879373478629125549979442792183367465732160667254137547855832810295081646874609725995318423934511559271956811168399775953658598449195600450538967335392430302924960606842439876871553458413127994759811923551350898617549003619281147668682944599618978669226724960300221836708121410669182964475743660474056719295596149139710851666070905793565475389795098159283384840522954772452460705617521506122571351936669075696282732197756419076516321585550685585618527466796340724889700585728515676868957926464240323261261376180060576056351762988967266665669048906925900745885235916673790719689092477690966751660727256910891439462839959733571183333532310978046341703037378950052559181921622860055888520069737955132694450764410936076873523409082201277348546521644598967089379417477791969423322336053364632393855221497896384883217368931352708767949870991145383518133778049680862752836909616232427963881776261007728712612917665034663855809599135717749289316120750469703669351752084425669336273471693953662516794990246315651241630522030819773434658202563766065202951718390388198364094590869434684416542196424892789765548772072943977727868945459234724814423011441390010183580449245816702174715008504546999867744159411453352910958325885258551977089202185940719243827532649961436961442200558214352988865125344656540082143966507020432827724919126277280600018986695228293807101724323015495363242233857227885512744260315210789681538452648159692342136051092594543538490986356652712174909559143309845189609640803481011375046271014811474261830935158131194951571148267892391221145433537028612127602826248403611829425585162330283257302955446235651333859221147429577568483798898440596032648497621619207897225614709344362321483039698020983864041740764773923717019707111442119904077237972651838377916129423122959020488544522646252661075612240744641291504572345934591645329115841145073541212933082325312081738132087800154924888102568654151692024321789903462790967173300024671294999977601655433091415751788892080928182973164490433940139368523066354086564627483145208249487421667026864882628155329183087347031674913758654549911464160119514344875789261717086975126429049160697290623272933903508444966025887474886452061495902958937052242017941786561693468625009886443513270085302048602723027770177641163180413171524093751476223180071366805920731393479266732784138346740994180962326816322677463571435078747208160714212850733205400323078368748133019540896354928819813207433746677071050199977207408301696829221713308581382916048426288329002288566093772975038100088775877095693453083735231948089949283269153391522309365981211496759017150254508106186314880494059381839863268828183977391776021124318657450348918578542153019063649296630419181465617261134150378470352379798112019793878719391649430729925975646668590228228245016339740001054102388479584096543896788908430838443844385944837308848924932106353977643195004749510660321763035662558944615618885135397568995703982915081042771856374736114820672933057866988936170330289919063665199244299014957744902847303805516560283579253223009377248281081243449117732657094850111752139028689748179124724616315125055719509534558218328372746259842231169764639740149022435427966096825255197941507026266225166036128173978535151382015104644890108338263787337050642618238524062447278536402966203304100118861653262484387368753740546865573877992696512131730986172629984397147561091389028154458794948488115752415954493040357443758187045897498190653204624810315606500243656688942309843403356008148946760188854709562335418878250251000033747731078934786430539837542809287676257029027565334300878474479518727858630612548952206235019774039471661651321798701580626016420489789860812078492539181363239667600965044949985580823476973022016247072799819202791250224855129677100156390022790770069627498180720944011309894072634892760416743239325379604390672652343731116472825490364040991856845166796264858470257211024970359033239235884718783058361559623753654725136710650383770530444379887174336153697606203051308030442641966109091124311309247640235029656113477054261173006194919834957571383197538859625026117810750368962722745792429066664286718701966181227418667764976463799808761710605704535237970756763877640431014506361273070659598118713572394922548167358582778079799541912507037583397175552718665543097767967342734430944934255800992603661582573052746836428677916585672616815768074830326859767951012539654500725993340704959978355897716585569648426733174310918316220887046580908321372331147725388133734638777746650647126359499190967218366834618370585001235670342617563228530226794438317480621532070802191820181146678790228468102824249779084404268370161200468908419441701649838166610955170937420743648751663501940083233207965896114018198064534581989281001764906494400726024927731811925706785184911057753696312307555614625173880427126926677726711400826615196436682430153049107400259057535233198999067766543049647341031210882030725712707686543734958964629993165931795945948607506630045208541176532038614473338652833250807824284817588243996772840767019145497721650917599287481166331787851362068272605916699316573960808580495834052164278908856488712527880586568814512098239540219030425421742772767916381603217315522131609034265560165454940030829726696680316211589566374661864290179119602529621875136063453199023780510333125299446679808669838696661172662673133901350621252868595860812109931240326076480919392915447496836597334673020479017420391859991025640208463402427522000637529036779946980247250864528030115264464351313586158994870198838597158588382319093398779626090296356695391873787093903170842434938936482553885795692945637134288327140623388436974053422535651344694477838747189258922218468375536509090973841121349423931766962084784441083783943815199657768021709520740902614779095447605769665773297542557282953513392271496952594237105186479515221354894642891468053614468709371977722765343311582780426400347583356516912477403804554348085526169463604822181868299155473700645552959594633296518240428733990754225943979116547758297008226225835582849588717199636207957226314410348374266054112654019822015471856302821614487306432180943211214825015980850304259144683272169201096624244236654427287251686225836812599343188482873533685011427198736743824341856180661849600900886528150241705646196190767671513385999089830752290614457074855544874923313042502519162426075562762021796485288853656316435784844750636540651044420578488682828777230464575584859159053588273263999900624560636652227337718139016852277379875508456993777162335355819017269308727693315405317209461882321050205271645184627173130193353534330921384320552776005355277168495515542187099011727292005488362445374964182228809993612250979132414798720079437962113587211239726329578414515683557332471924075269503352519749564254986903339214057065926332422242984799340421909264629010896673573334671441215984272908852149651589529386657024044334174295173743602200824507690997391128118355585344175216821167302997412575186223528903770644229336747812781834446373761296273862405493127816094539342214063290847479920329197639696107904228348792564569422598306919570264614229884196283559202531862627224050224155846626692071711233764299357523144140125281858708330702648870725541365106891683771127989874819167972277962515405457548514979006169650194528653990675135891009182945128871080204172288669529607885045686653404180801165979940374892869337839675774658347807970386875497900163498054849048718091403530739127968332945054509658746801705987904575775415955386402652157903030095462995957080910522238904330389289948503383630742146942951730299900666971831446924081429574755823284202298177510545216425420432430006395685714316293971189600518110583032799837619021393446337495520515672424419937550715053441441004725065175581446122734120830095856343268347996523859174666048162053517519344421799881149246747899921749002417007379553973413194812858215720944807294505144654687307902088284877914333233945865054569065001144972193838806550062318300369868549320827526504319588273810075163681366962958722233257879561016855228796853511794849087133346576488680726867115426886374591054947752417066493853619170175295150039371744293281592599563156989452254401754402467634744103376320584493469327226693040804963139308308349766121378550920292966417606371229047052215911664844694265681393309084925242702253471818193037223574088887995518635420707127312094904419734833367705588646778281631058840421950456318359401912855172120662322479125967000930222345672597978881394180220911417919629498598710167435244737826210833798711605994489992925197444726357617230979519978000328983285733855236274497513813496945326947529646492695253894276761592577600310387383871920890659129928383588577703848315234494414470185655520197829066393336661357628366243032924415075963884379990985787927442650243963512301010353799182229165387155842384726310651632291490878064354228353206769118048128025792830242012704557212154217322499084273574624291144829100232261840517735498529376469344341420699780832485617228877948801024467165935282036811404254272487955088729369221646680259859087348500010319730824048361552894162964624403788252890695048373549042657628536927225278372940762849172086414175078974356992127698346181887685957712510058596845156093485140883531718596040104011777311561867282298798534578415310416322885811699880095916217600596219940106184236473011092335200957708204884681691329174728890091324408363233430461562413367712769757333146010269344559763765053903286525269099291487667868916162704468787218221344306798421217855151033396725186679516707441370553473318581799392986042015730118204488931932911950381793283475045134843173019588259463169801772204109867539585747450377681501561070305266463884516685323235524895870088744918630364562830491392842353407836279365550146241692261211588154825527976102681246316237183950731106981256805160862499094748767348928424810397037246353774579134645588498578301561268995275428515414774634798106768168957322356136403405031029254793763437058563610030643275132841806786305481990106557339239472134431030108730648753941558678450511551668850494281430213025456646000105805402221814738459741196954364272348830886897289664363565951134996102705425462238308836960851358526900834817867558759992580469886958026088568802718100091725656907732132576598192900645808999889537189333752088898421849865329832155056101864258441239696968305329953370840209365594808268952512998348172373718121952465857367508920511610301358736749888971213085311937115308880723215495307833099579078332751378578695670971328316918817849577429976136787594008470043287771779599178450191116677168251568040384570717397477167879439622763972863143274218544551206169860742793310997821891010033882838487773234040130347606490809992936980470186756341885760019338935117258885438550120011679186982913731577907001829678959396202054546479091354260500380378194681724585009572731509418914396790167946920547250223649426070215893075966454512845108389309157709925455376631173496846886791517172774323698447544978398301889564148419664063953923602171363078762282904155006671199253389869071490426564559528102425031590563733881409639087710539255158258278726625994296095373320103706342604636636552943720860738759515130902545406914947330403585422197003758061451655396308273517693728619115066858313598968076162596484304445489640726727485403728957659886556022875450447816285116411005114984203175585225936299995707275219883020616910926349902078744236761774213790829483474380960179554628771829874869656371036362282780152020660805196504788745032611153625805900691649215870513034289599041557510873779496828602016071055344488209375710708294084341738894410279659443716210573376398052248792164714778465654190314092005557962976588161399782546150760416078259780772963775320976506826945810748591072728660088801135841399174302013594651624074119723570232910259621104455408843390441705321788892987110075125596178921568646123492918891123451244143221047034889378592227818018626929534868656664675732577290804155079643955697926732213922059936882623129252087168728873946464589900657563167848999746835081610382980560326149719112001473981500164351911191135203479950516074734230318640947522084380194761790930239860730457055592971055099475392937171321631995616076227804452994007287059680488730238280153811190074310290787453119722005664703435623357184048873394324015603634462957909239063226974537987333125190736382182243272094408522208501480655305113748596796880935266061671881043781965838373863163092909514866394120736192441828077180694489027290359661290687607121344806064914914088089376373482507336423967223086561480642693437858886622697306021302418881612732885657490144827470668902892942710193316801148633902382307996914286919228774181244871045766378178333660740246017061713036335507300054380610847135341770580319099266216689316203259490514782199606870692901584580241081459395096273446119397245861535556473175601009285689456219627801245726008872251315456895887540356507080665060252574143893587499284722324340417030864712402255193479067719966182830708324379302532346022550283523373399596315888650728993920668269025300753096451114157563131951306181247179853015273020913214263028784001736772355380345793440770566119620306769397285034773572344172497051140883082281658264937079272410031713800401780215579096816505209152948932469087891276647424392809996878086611119489994384719362106212465013792007937900058655788912542625963576183060791444573246888676901050538902183175631666030603631865257844908724132195587895293055208580400134217570153526633792800552326256074715122866889009834939897331898574563838324467829647725985885818610088543505791615947110783532103422611204091681259054037568540157762654736209346211801656218930733044926945489783328776020482409870911371198645822501936269752720940830518532381781286369220707501869689112024766088347240737005932769359215617650068412023161406299440260999250342438458449718338346760628701279616291049085511176336236311506306891797533555054935139483600880405470467870560523338460584587320114378233355280431236228096384909671197820767335700637748418891984257669308879247918412134787353176570154422452801926023855985664491164111573392672869008405548682473904950800429609834750602218093252620189788200927733206115964277325496152924278836329980407191903538514394232271738413377938638028281229339417445145637004937060752618171181209171328349601508539048038543032754219264758765737422182845684289557816568348783963060278377191670624239809803414239619955048146334109861295720280695510808928531769224090891592096177284387311676895823962399373966735194655352035252589017579937401055261926014129434512914598150710318834949015746290006714492792869041783190279518902284459993440098605144797770823797179937871158195406990882203832759333618743986193976396737393442155833759595895397557443687249551089058449518233795563511115724103606661514834663513428973432073867287181575451007667945357758855701739501809028229646902658678933034897597568124666886384146068353657162850424452352681530060481304520420472637149066852786855385578387911920476157013483479386887710934878443955548365340638914100738799556043886202037026484574456739517357154409434501586352889601607340674730267081429903906148119245405751681988865784555482278319243907457601533684379085566193561594448156228696941121435468446847754269534431322551518239758301786469441836856710053077079768588320460740520424702491739170002685683139912601763593004300575483012710673585169075147022881959842727855571147511942757208549683372913178083404403211192075477510241011446974989609494557193137693669103902713159354446179338471337869308629788938221762639070272691818140298515824041964353644204747249403669666042056372574494321324887037397425315566040405052779550014336056165506211631146411002649817869515285270062689732380086847940146843432228138390102388618280939704767853188187238133787006014540891500193527673068571973789096545980318397727035720939544540828178734852750960774292766562546773552677706110769716988832785033498173846672365285407897942973250968625010995307607073505158766392824267593130242720896501566984364488096584308183836641395170185143823695543232208882357314555696500510654674304594187317010960139772436357686729128450987347647214276217254949364828249692606557235993454401577585859177074836730951445403363954470620969959235373965407965203141710527219228261690234259572756568964277787560128543700148862873880372685031045851883361921750002353455586839243111105583537347357400470847327941006053408423868041301374973361631922385476166478924364011871922304189371699339017371400623788713751834130268746759737189836361944671944721273585895711762482213218751102227735103449554175133069090227727426023811998436035107481124478367758163274721951010946018907019238275165586481417274840281367304880077201650520717958407903080063037995768483264912552341703225134252551427589414015358105698062173840951271196397271252532041821843727235929873028616473457943027410245487057086921831591221784825293930243754343581577107782874742704203214392597329423093224564452303192015834155617191012466102749027668896829170005687914983285607713317105465725413646999624075265178936220450604513424984536791183503968758319239250597371480041524366128691109527632232269063570696669356921975599917089560089051250842066512962683250668871007368517981506436623059281186881662230475463998345009138341511183345223871039026919088466062300874884508304569521354794342348842427760292788277212774144737105900117804274235699985304891548171570756018039694681420445511520725897326183426678724086298818121690098779489969437035497776655061110924474549431688919588166492719069538891527085142697374044026645646962150812935508353760295854340455206767323078158321637268782882897783570518055971246508362711970871981140903996589600058524345362699993572595036004093729182807689418054739659427499772048821653066246337922906187926121341811122692145809390706695768876798091810393026675753417994686148483822408324293566899472645019454945684439095290061889743336746873888158172544258952005664645030341992509291655801054380546852842813634123624582391486328059237339664502643858893641578020092027862183159876991815642258323953670286250406736856645213089467008342984358771417563341597416526317516794476676182454181567466265058881918657087316659974238642104639996777284872352939713574143119673335672666152030031796736685584844364821341104674357138182833333864532204050522273911004403819323879289723071150913696507603935725951451762470158736627563255376131418339997122296114776268980673115353340119565730331245506181295476207521350799740226713954178097193584472597115958169975254712486336813774361164174316083004912481099605579231121254086297440476513486131035400609182698304032693961015857346307009841359922486127521988716177267264657952241364379519012710692510919727199219372143126811490524362899510315134126317399018435614337349441801657732898212351851289234645198363417717941862089313532532949851955800361837227316500873454107433563410911911721624979069127645968521493516323658345669346236497569581632444947535803652476459472083041302771006355061215567433245331912625927129768340578957051601281944247062679200055849964763441778153480274265860806983050806336620906067898847186588965152328884816172089811520716126115408544249279826888320308364245165207641524797677540076138971631989945783573037824811752088025268638827992038128410281397471497296368160276119472462974688561007838092292696454122645271125527506149326802008298193202732341049902515845040811743391841862861346317440636577674299979813835890931507569659088715551614127401494341302926101464219746990142485557406955580819220542104711983120144722687832947224241786182133281146022353251265682130320824257012644615551764356787695121895066936131886230071775306145328456925529091850342595227833869093804527605040190275372412310479108734474931994066487466725275822624749659713794822174506966078986278934853861008074183964102973167750865543924123056834801262960368640247684668391841300493723451522127003063153245392011964976203061090931616307385859036645835586139033302219016484856014712450393581464759758766271859593443458178141086333732482553723409492322639353370055788170360713024106489571727375797502634523804517222775752107008081967448793718307901164209078156987859150565136747900554006663197308365721158687185760959188476625829206005805550097181997374187964770092426784137533933475608646422611371692326861100490465909170691676363828478952131639033585683966258449374565954740853431176230624831082158712202528018455184290116608615011034101051773539075754202494653153401637429776116713974349911817206673811217264184380523197813785711082013199303134512388044301688607212268766078770939936497309024908330706999192492026609820217978456501174479159816502307155941784263294017684200514391477068108004541639115262032893821321123445971439900384250192174610150510518059035089260738738821519645853312070734815001865200996544556135533349300475316766807880738823314331397472980410725734882714353170811034134724675048242885022577762758682249283729625742295595129065957823268826752551089939919887446141486178850814050663073649777450873415013079743310251192762349260356450922809124546194851203264691777776785414210303197676587184889377092243946324787268924289419595602463420606739551935618762373528436601064851275398140955580011292767934957678236074733095967810931097620285056099982638592297768401373918285685950596837785548418330599022122055530337891316020030705244012624734283752176635519031528732701919883599837788053745575228766125836409169280119141497574407750610092549008414100345369704979942146234246833797173521168024892800529645436413215062175828524770890487631716301439825089895964650502572779275487319316150340414751345751249843732278406113701412460419648576487361886634754415783728867909616634873008903326087178902680628356744346745770419080750124538822788762798367676309110956141629580958295757494854293915569274425419807463555730501578000608604614311047886925188016576208350102546399690751463534701787271698198694901847155523919230454914182971311017693673962221214995205584001207259409577427220314338720838728811850663794283842055176425312816176922603219446269856127871084746858806923599233603316889619351073641571610502969182488761862094328892914090553024328729671238093133831849804445270380505728327773175216214584006404853312762861413893650732054045437231812844096941605011877806909255205881956718297902286595468192684343062656670664152079583470127105666850848699383551102643698255619649401121895196342877370357200467779470496818879873489093320973594385882442680052843486202599164639144553886683886958805163428587481826735250032914854905808610593913092399594988347493905390161444016471435061740089959660661605152342643862312427210911820245330739182594868650636794772010192871838757255486389496272041529771592206310025874661579429496315678896892835968599199564365084818732688472547652857133955092406887213709421700367184884076967014661238686111734472961421163836921272416431624956471725612095944832992338680777760930809555901456119173055787912568785835987342904108151607094731228977458553587916366563734137441846812135430883013441723198343249453569665769571545013578291749901583327736809726078428827822960132692312707500202537497790346121562137527930976093861050024204315004966671295338172455109601579464838708396406347518916007367416610113781380571477013144425683970138012218084986378034264033287196399131136767841497915011692785573478408507072902419087052243452080812091462020680744596654081015543281365868567558039731460331468640395027105666246851390618437194868751132540162733535058735473520520985292002589179439254028715823816838462219496512158220253493599918044415323518919447857757977868328560418590755471690451628291389355643694773053951192143838743144759923796578243359521638879137123878198783741336475302424799524744552624529202365033022618693676141136093156016233748020847951959679725937916654631382675835805914974015066089504997301544554324274808968376970392982855304345866752646318449832130510649882773627793975974098145731368111817827507213374021730662270132392260537979363549586044196032601879030293650809565447527219490737353333070003095800384968594229637461559258613616132995935816950999372519168415316727043274179575945580874834832843188913845415884565428293924002210687557406920787224095550062270261915092013768934463268498806634566758018779165716571985730933292735214889897858297031337988380867128280309546079799923664738182950278428117601191283200375743128881229546798604804109015165576826686945149631454054559277189518270885613446548289917535286947876787759194865131278949590263568422136081504602946156635647777797467276450809555027891912354535101257310050260431514388269395986726156877515732112776365545035717091426995046534751670175309515169530604313705063293929398402517742402271352356148258987901409500758831139753413316707351239762087088658308155848044225762694181505743015125869192279051901122664016304515796757809872537801007703714421822122475877118764062841523287573668455061028130563338890418854281187162950964528731284116609364432536442154671438822145057118177176273937542535534114767994133389551679752009638898108067607345470307903869246004532358977150168615103460957187076216363322395406276312033217496768483289305906174987465788328744040090854517477301090888184460332455041259957004943379332152491235878637567763025355674663817772258632646186443291957796812236303156467477680038898138200278952439055199213506486430517569581144872464308729669751154619185238981795313335489424669197279306634121391676352728979139179606229198605254750828101400517345882057040198342977285890651809815204607466618822520400185299790544826306100684954553158958584457759076553257502290213959169757071871716286971892444085202589648404203935716981614386334204569171045430726171037686607925152404883548145268430464311171840301079475435600770897188522704855653201173374461858355905030837447269744546850602169622198460999064774658869318828691359818870405800208936559821424741801799213387305716827037087077488309751773147090019475186453643019955929038116021252973995158780412066630377511479099933591915372698590730573562180761092905359713033166154953595231304858674035542106775299716261555918888306726295874536060958912502540049082266301110439170947114672741919128139959025564825296968605256871641426240640164614489325151517691080998575240406367689840264314113248580159705260127357743361158364483431885526948387193600801269180129031268156250972061050082445313503552837580672482394418855348723733471693027349065750254077695485150815258305150060158299465418109154972712532323104681781286700613285547223981643272844486692350821815748310036271629024198573980770051266794727196353922730319452735875900408595799102381206848689309834399994145920263275467614358410600852857497116327757183808778270457493612681700905157126837716781613108527403018421705202516077434713914269782678509216260554049380557400583367841790901269937128719824616740845698563661956058610808882323819504374191129844610684718869767815751003334519160943498945510798222270135251081517800862733526988731917632365560770630834850100825854064955911326666420841487391231499282377511258601734981272951952516207349496224996384787304351062402749892287304227195670679608208076928927588680470446593612911732881942421833626403344342231472181547465539516575527738058686404092077120914031088763755529952809941109913179177851238686729964525343912956358111917028664124282529409951289676113439785352767226279685185046607633918474168285951655235324681876857258132253019024867014389555219069804411439438704897115189022660052241323806762008095794586688730118135949157766537564332583487037901880118730123741306904814909593378431382217459819531272353645461589973607576551208180943804165183188166455769103421534905615784514928538967198680895278054374278847745284453845838632501077645406645975566971799192003699414824536823870710538063617735792285612251848747687761548147905954203072332200196397975472124832471809513678240585950688230162626046748943419592084396857011979644882395267455544976459466945022257760290944427737707940699366801645174253708127620169212579094751051896859279411046404019650257953274272995485805277328015337722155288296661735223242005302848282067585559676712073749984185517295885772165046833310190329672400231245513197249412895211681506503765707378462786694465976426938253982794652391452820291235279227752397936688541210023437723367743276987963651032162746609944637897633839858235839883284289746697316904527798385282474164784558525236352504590820363766806922050804607623757467342884301796638881764098735547532311911988795406579586859870103606590149233469592240276894306594567810270838345218966602423000224946273753270621451679933484694800891114893133094455059175600807350973244077543835556827853251284188059194545180496434094352603263402825371754011929189708236917196285555551565655761451416684766880646475582399872652832260421989279171782510663467841245875954379126852115410630101920364576477292473672756435915719130313586605638190635054642300049815545180015341479206440340737304832688276729114979902015016654417329203148507840434769807650597074909175183415689390405740030670429869008762450968526447568192344729240143226577038391780737454829478783816390735539615497695239397190036426939386801021713460833118356956915127399243937208069244360172583800329363214631369243604849357626679846716372682574654454831667404318638964645088558890144506582815496206743132800220173225033580209080882458207556719516410296417972929502529166881700952531506833009171610363974280170294053529603768823887494333316582660086258020176284020207986786218449214155986543982017138890863571086832365677229439315304319415001874484516095533879709633580259823590842696834160078822071481258827675617541198812402103564532382349712815811772565661659221141628231037079141247307960476936379862057654576634199746148655170094756230911718209936892707880842146942395931630961938517680723489292513291662621940530275139094918962388691659957130589094260115808526289430942899746975696022794900846375780729023537890323495286295569038072968555477426414877142675884710006152717473869627513205150042097266483740035895729179995405259442392206567866281994048715596946466095277920726683355280290626812965803049902868118960349336640680046423056628075376977317560152214868267112013551739220730559433939409989411229835864924971974337274564973495766512361523877945530327837672562214759621588276372602323309139296013743532212552780822158292629191591454700451398782653197607390285812770965448663512876615314361027071775229355058954285914976624467088677346242336882495578512336593593821628421987527546944794247808728319142114057726595178309884222720058987201524097181652855202655025998662249094743868597659023458522689867794176852249197327323591105680414696962183379027605245743085678950735411498003525504625816859185981821206082631638472042139417223228930160803776935906812822825323365505468735196257216737097644450169504170983743041644735953934370959755547284182616572252220317597957142522215979408578673778532210454952484185014937549780625762731654269248779232570939475118467033405250141194937505337324817787982553328669729157640681339788337254228720086814898284011137673170711523415575264302330177477796006765897663421345016506952052660158813589300971059141327323093219676431607291709060295943176591998813720448363275497164142433939644009241040884505483159344806419010201186911408195713311563115954622631836193457600557500887631604169858921940289808801002875624176068364932767303743056017181975192265093962283421071084553548039224341355509207065146782518474493741237343124113768419460933251619197401617437724706547601461088501848509346409188195059707907520878060525137434023994946395353893149391434131931764454167683503594676065863766959054733953962572850746288761406756344419851124051529793070423698717390708695284341218356282187213220129460789919893154111750694601213684549202763068099362050038435994813488205681412545982822352462663729622392591580966466577465208543528071033648606240740554960644582324279665522981673968796224828363755084707773094019626810007598821878420443534169928859903649173845250117700951061819220161388662587347923470167633152120559154734736989222495020766511659265246506949216054358546277633160650712810631286417148448299649437805548892918016492469074854054136855984455223639844366833960847504868352273640897465387072869004112789188328533392842519278619861177828997684056716448371847237798536939756055353070308714523373100724561420839919705150319830549738854357114978644522294980873312920447335124513543699211680695858707961570067450218384652008371492372341035634290816140878132735547951437689665237397384264047983404502069934383719767342571277524758518988772049846589411336265309522057419026584215413777735070137810968555734639489453161591911524082191434623135420290279144216601556879218836034728017482151388602311702094410099731410325789823017019287483024252971796363223037790155744625643848513910338271189185134818275385567770693947554259355360305797771783206324642837045976298198334991122068775142272762596350138015301429712636972900418778833660644973741593760592935508666721220407295969001495191547429023161259108634960395107656292519066373460750894734937951484048361249543168043141889572264312036655185685532240219955309285352610222234655150402544788998287577278616557658875032993041687412895039958853756028560284657689240767834672502105612354102554341527018786899645883349152372227507983393170114405912023012211963565036799369087724677057412305794741744658327244121788072731347397315720479881566042220354689017708721068483250652252662563148434917377525250405039372170966988226625697522403528236199803748505374878159235152852481192641488597522339786795884086762779432995249677653205680185073729747434130406619345975467998732366861081528700298894007896836932323752356206184532618725116778533469755149649553946139566727961142160717617242756905861450221379639773495978235518961325208438690571044835650034255653769939719278281521409624641366663977812120867616723761159312950291349107287272525821550455870108482857412732810166205276822160598108799552956493935989128005670159057288465969595039262256249922087908437448494962568081563257413487852293495153359401099141875738630061819122004731704006967468906799084617465971808721406963004425646999792695146235899512690022244425946857071437507406229196100596861549307513448844795460208120281321722980894961104731998845807360698263104662611539609296877337144868945448334901788991378665819339012185560095774605797022332197065616779992383635898226833663841621614974592413914217544412842785311610844861089680876363620892247614289882435136587131148389342141862620703541236245586607753375053113782689976142004491283743840312749586854919882069322345399220251583838475471749309780659315567869902355936247961098059771645632210096789289799688016404583925271269401740686512857182961572678270562884243206235062946360154934318500228202873653400243558944910223723621164892774832672118761431943373737416487224107291097800342011052450745822789659751669408498580229237860526326736077228870510516719315468817595548638724343551571680492002978447413354510702572711911611309481958222192302054218523837197953117191100495150582257360981101063275960966185410858595093437623895628448502149733329220812918620302497232114356558305808592919098303666022618957791777787200332829455610214859138365798185373363205043628121417692884509226080772307231694607485163412726381759201462400919287488849209191799223633347112002107709589355799721905359307864413963210738784390253400049762038336288854647820807215982582629919110243601679291290231771158470506326690202650413257916421137151711409016060635758589773562963427467006997773006788767212299810419514413591475480488878252647699166531183439584350633820017176684867196860403664803250291315352405840752576485575977995770812906775762555502714704490766270081356501745512560265034118790772166945806401136035802707894150577569079707466798391948080216700201930856575616834942801219056471759697094767284981264673368966975457468765382935352452190343201159983978013527037661159599705404760701760854557357811926266390176667072009228958751731383698578848166084857062958781813070178464951181274418695478731986539025458141190613289802680014202564836922315874841847228076028640611954428389467692246790505425034897754911832696293350554737831828356059335518268935296277044000070074883204173162956413176632079235887719784663309700260212539419340168279241769864880677447451701804853507914732746775479924907635095137151900611003419320541001666284407944987577506778883360740322387632260056037792763266001471006295533652147167631431164097193958049344493043796116829121448310324919536928991010999704478066026360790531685725340391132479234413577850493787938046570658534092673039380874818253589531432077535703224860628178586561376425928737037902179924903053038983340460142445478973759339887960401543885680305713138258253972763499373786531328815769163713277591665807446426803063681967505283810300858777138204523078406527573404431756368064912048721030154475663674529636349704431598506837528646795531725354179808143738403326263974918439725458550612534243809160943393774557540764835132619323938837105342959629592894535513793290896703504635260223982269649464572152236430335525547519198302447009834352123863049083348999683997645274427728578591790790914495213884411950649757551184423121664624102731234191124473283877501327821758073787419240034495839637067913499979080153863325710421648788649127462129463237782122365885926470467457064205408900857085622171012536433370184221538715604518478391824954835425126994688187812154186045970020332581562656415162828735648706101075759927368957487156650799429413243101604088939150854481158458505931806988307511605415129817432241823991625458819416422228232342250112020389272766218518137784926963259417052592562568513063588245858090218864893452532299513115894024488158152913295685760144370964534671999263659886638263160947873575928860051755555011120579682421231930941849034929789620398425244431953511089845592812608161929029957772510478101553346605676771742109357654667627425163455692580206299177113626312069734798792763817948555307889292008887500434060717389745201074824471837615308392509297949226472749937984627555476125946930729290673629622419937860628673207873286473774337611161064668481848380024335613308884014751595665969384818578450806476177226881051569606241796583043358619130573824513100324861574306909592876420526670035987892806976303611510920501614513713064591446171915099868674571249626599182510602221144222084817636271463459982757931190435175515129149762900961881720884903285127578754573257427033169452117793986859732732080934520178045825974805714319790291333198164246840728341095612458901190408969641809529753912360652123714181540771848807424349720430724522482680790029100739989497183948664878122339543154261452630882705879287465786342176794574481539731388531837120885620120053513383809661482562004324009593932420877521165660106756430650088756129919164656943824486895276989469902674328622229575545906733081594405355716091141701492665063730628852716932482868974446334450448907007686554678166247765102506113740893653216973941005048630172001553218813238377075434630483759742432140951290803926857182854813957847120557130973985608073740767356119816231272004324415881997292461147419229176491975805766751383439428588735265214141731324812755963557377845698693200867939834387143947894957284938380004598899364872994218504097651818885539069602395773318809475243304367478339409282914179423660056250376235949740362856016661324416245503559664104447111554563779041133295702006174304391660474828145162938394900349304283727418157051606334823918967496144223675700488693833993079393454030510596308506405457021967104385087739088919829227629432108835694375512680144651898854834165014204751837984179442096008571899046430017341809446807492504893802026346988482173145061444347238135484107485690283844022961757204089262869486203221739419704946014444246903302737457609580946837228055399343622266471230974400339680406376980695509176410933804906509313520176155990018388967202069861977779091040139709964392948375538658305841241594590733591060833545855876780439764127617057245412533307403222564880894627661693304120609441183544007920805472584486464794272309862858001517347606373339994935829910020729622977827318923589843522568844382925049851984578842994871612991527082856860642400463686828214928493556294068326397957949306430210213587113476105638844318925609537250528035601859866286338688969350794756412355552521050849301151185769592119943283736625779060596165715048327571999309058284426454196363646503527558613932752193165970098224513802920726520735005918047226626439208170975520401070391169504709973448200221606026506376362223881966165778654461840174164474169770019214444749961007921062114750350050481034926905615290487138241285067288080010390580916517302221418339214510534776665826671809510840181666034382695346153964554275569031619854911516011601075916246383934398321663780328504997990033644277677056798368392450645823654459468937367978011466317724712422275698148572159261460691379492892906229834587093571723090308558653914133653108686053563569466588850243526277569684940672023919708410821328961102750351038760103464431447851590972879261723530791064812708337207513569814013576944901523139909238705468185784855479913886092115065086007558164126485755833715338028166281456310234578098029147619388834876484086337438931061913284053521132236772296179142808074544363340837447482517605328164125006792763882335594726509270962686893051238542660902870199933261322895406586994152275950784081229040381310663910346774721812937076985298569893320043637822930333625844721457400515642801146452011071054630113368315473173762071414315138942790961135911440139137186640488495710836834250158572097106245666040706317579597023857632834712914863044862707591561114674003293395969514402304829775096199400604126194452249350264924371599190450826328593520718434346705894406027422203341064574161035356977853804320901139095177921339218416569629280843075912475695095923614136936665966542168229966581319195993772846446439021929027167073554744547316393003119678888324043917793369184362722608154625082700192033000212001036306228794345904061072519224520502400615736231722763691976702982765904883837244502593336006347605655520527208073147930475862811291873402209914864624221673919607320609237550144819899501571830841552422152187517384332292161170906312320050952862022985146532409162232646232878579312539388754832846679460820816890024853689026533165296806757981152970125309060399000505125096380987195161430147029203525390825324153461516466297267522303368646372575408102128557423024422084944600944693703561709356171241057413782688020211150269889391874813301431361680719422707232306481459996804765207506989546530132034765195822494911162994515378357147413001605371529241956685295851117736805542332090594624916184176101183633861114783923069830313456912452768937635510454730899829787668142812202224074769057602781702939180317740522707223984546749035307908467555974135320967023992967248378852279778017250242047639164314959538459773485683801442656926948135958432525753302415122688795051303681625660611429615872333792189976102838618623737905133324235564707029461198837143478909529233083794650729730211830231438390444845932742323369463191440308493973833692110572768242796115349229518662447505373818727425861504515096197823604045990389206734804093157212476518453295787584368522505998235363266404495596985185398063706592532661537225216416381251489997722395141465764997512440667973960767811829642146327027039857979167119927179406606458892275830290571199399080025217305265069726259641231300846086210910835025969323877752341491488666285558271430135557817470666959683633011936735029890979644330897354053365563875191709376454440585670032359582076189884634111088413038611888670251607513289596956191232805491705973309431765119295178159761368474646263978379184530822342269103774068987651462755374591941989708381581614499479121680678990515072089952539970564578676288548355179849092548696561860663234466390947009759707352107339552135035879156142086931625649378429059172459079744958722733177141936135323382908778836993059806506954593509166198571177926637309903318738303640482485748377906259829487407030092567247533359040877273458968688813560177992752530452197823791416609198458266436407860376888111896342393069857461759106813511333069952845991539095952920543860505341937501388069733220740756994574624463347678630495598766744991703883506159033400070482946621523965571419013877799648566294357978746654762754515099013122007328410610616217826592799391208204250436491447786933447215794294528038043871405634103907316433146841480459314649846655112680764410918781268139309547805519186211607663758737797897648676033979383139050561900027300512587427797266764446674204003213833063499075743631935065357815455458268159412549293221214516379868361308621142121807533220632462663354330667880551604971692489762224696319014089833991009645289313089515351265883697054216470170163083200190819746380458068373918544564629937914308061562158781425711586142972189589382415687336121688315040645579096192723829673126504066912114031303220602582344619792452187311928617155797911196602920151364490294679355609458125006430287546930201004764959927507321153294855311631717672774929856417394027168090589423679554408923461710095324766584259529327323416314659393321845250817833269471683944875148799892614679732029349402040905797664000177821524933852545336520401046043909126759481855609889630600515776970310312781300126499340741727808314185812823548503601102876045598011421225202878314186972381083135669034060906163503339281066510005943363181059040382669510508996410727264514522304633618992377897101179739534340201561237017679835910250808455787312201866080454596818594506395707023044985261120774871400699756533490232280924794554284392666708552208413765474153211090497193330511165568418797996735091318006188767915960559428557003480822155239489958916057402243447784960578685668003395523079823945552802792994908058639110117594552355799799313330402719950877550246585293503134542822345456888636513400684355932195712913116886185799952059939399062330963939577389164759225071098413678531253791237655664755229619582342121220477022139067100782172869677783525071379110316307946876013176057919504930927865334467701087085507915511409201976036577927247086752072893151008550090639038204299610073869890420696634540396081396389550852704354943205453296872562679400407318716356079193161059765069073137103909757476592773092229640112019177849075013741690144744008014755366336867515409693181405179924396607949703653763743691335304838942053895417619267921697192604727441266898914131778660755240021829620964376561592955155271674862674730063306473465221170045544741305494491852792149933639452885399751605043473009344852704278620977597043582263044252106760807695342375465410645352237350435188643699326234648418657322659510148740075576415927156126437507707887780283447472768779958750226645763860069166849876247963637630761159756524573838704731509969266510226982668349281445424499285194058298345899292916363066532501520253751607326632204246751741481873422714282890325309626577973547287396479902951450573354923760171143586540309127488579450010465370104211500202853090530385546412537126900025315212020968220289773786161972914658831984043696237981116802259930666016946172158408844605946466569860208988206695805707912029329978889592068167067454243141853837700987552017979589912733273789804430385991420792586578525173149987619080109054969876943082009312942208250360263809508507997475146272165838376569704133694944528539827578282138790128039129102349256725484667910960934990277493861274566537703984336056909530699382749150321786733266456038110300167811238265703923282970088393118371910862967139974127166495265434824468035810468347895961383438900080609771243053673992654514896704076868057613554338356109397219769765820842231540749465665968004310635642096893460455005999758492270127764316846207923074408210889417018774469277317008265403110366651352865181536360191077936746935079774451713916682762898947203088826816201071856274442779700790703223727945762801015633159018193584993654926007241080147373261891711613448635191952805201560323888370221789523341997706543774464514602718588203811706929032912972469793463735185839985578464472686590396537566874741444872285973120700913318148709003757332145560621129721745159574386916393632548143946511601918774795149885215417058816187040252149779721560017557630998144047337756465988275130214750133071360698778542294346314723254436930458531050228824488037771622755978428073724148762212688107247130154224809530050796234754025355738859070469360473061654093473873458102673454257069279855515532372618800847775077671894785815654015939154835530262125796251475201947496639478485079299662643911622542985260311133487990269639590928171946306833956815851048829293826691635172054456447172941328876630148725554603628160648098877900977635893068151626865372069387130487124711456299226374899007791077169230332891487202368897538914972258558946873918642901633187074043527554361659339415280973985596649119941647522304193789032103191610740342426963300351115658828384755600838011213353380659588944829445029027410689270099706461110788308912079003196292816634468174532013854896770658508570253326054144879930508387732480208788520384173699921732573090561927490093877326336507683381594102423125900792081113169241927147388364692062885338997588833109479773560754344479008262457151022285651679104222069031005603856275280195052360233277714715780928118791687897635601896354038139318421950100349789296059376298959216579842049628935106130382651333950206413739968380848544567440505342697980042091571312366389564975712019842682256883211308910652602985482211564471062809532228576509180099315807911822372580301361488763537822440284073730554662799279921899427633511417757478051653753751646015179676120395943504837836458560060623907386360733606437437509602197314476243358086095338744084730916815548471951402837768967791068589736626575669181637933944938311919529440075539276603851687680986026552482810739746361010050843397947623803790050332205611614081717845986973506942641193490267823633294913983879273577081085550060880717814220985988065099270735696134459664026872488824633872268562302519584077141843255994801049006362690066199256520656752048132661739115328224670429096645321849246138858094356457335428798684028546678735500750200885194360532717475380316453360638946002976461798908283393950423102842433424617097998611730917474250239070376770104010611115507821385512335751323645620082531479643237629764398730710816706492747675889414166555320852776346339521182530700443043245350607656920732409715907329144435596350942067426800042175968211545946148644426702832154097309206214595696179407459341952554428051054555436299592367772347346110922715424359848981945377103930756262701474444041383646044762727035035002724854110201939035170600438742798096623513841385465712547056468456142008568250642231838506355132654917992266768601585750721334461086152364472688723400150062991664154949291086543656086141566373356571427411378646217143246467750949344231320084048136839549016101626348334056494994205153265948530458589427183936386293902166588281242476223030414576689436649260859800149560485999052187583893943315496869825018695737913105413642371499232854268914705578850112343311491052342279371479908405247329581293310528752423384935706044573516235256104768636300074718912360149298550609827261413537377272108618580185617948982028981891304089190828341195606162848467651196489700952950684639609858870403227908336913167534808661669283743699766795917577720201954865389698168356809953750586897117821140128939902156117995613211100661811811790433873025109844447455529055821875552943008815368373712716748209039327081268114641002817633203162101304906872472968215107009684162864232892736037940823741457789645745939610442496346054905353735538225951711638871825243033503610855455591058140907797712351709013377856329875473388433986560605222995293049606367407448025435974513168961320194297439470406458569687245436331009494573878245485173314297809131884148505624955437150429343092139588096849782338764004481329606868051384535852853501327957924576215039178714208221064203371687499017802909028390199739742951491527608983439276938290648780018858665425672695067555654629513964077036925363154518231321047234711371964657194542686355346950082633007428450312001333105655947313375023217014919875482400304973023655458557041978544616922232956766761584982292372913169948838910248097915398103345960587444672002656459151207692346925428046084892405625373858953578788274306252721699384795942898472688942607543172659446923092964872115640527298818333147280099618809723525909320310691232109334488649577439365536394576898116618607778508826539411008979577074745926635083784669447107608242125862885487510433920621243031193820169431245205319799816369195418930366827170635335988033004012329882098992241073921430409623980532455714058133298794058166455681500528915184236809116197103116468366870360258909065903673820131934699901723903037309971385346635641013261697945320145709510166600035365578178061797218852859122862560593521767363608988004478677119764868047515706142514135934461295716802769128779266003875307489030290231761948866793476673590441775392636645551448504474000730050845772099801182912735976067385512866094563181535860752026844709168412893858653650029197304099990017980523948895898405003323673600400579703378100617336187745856805168662858870143571847210631237050313298501429373620382454365612094500585847717744197501670554829422615555513563347348843081485658521819344578741565134983382202502161456986670902384887222698048134138135613692608608469930537911542893717900990671738115261991522161079415857085060164994725010827153328095689907866876008868625646069013373695471762796446622652498017122118883548218959730031929560512033577274039654945424717878076046503123511345126893654772697314242463246325170125521349643334130488899857532162070350775288453637140809737374861465090162190189938299630208132694550134890682817947113678996709946471174854452481998377704999665197689938861551964740277922306562454286172876937775073154752749158979557541805970278781487893396105203697293223301074378205877941743310574667929091304427663092578768458052776908387261421221680920550208781233904545999488571283143088058067912085566554112105570264196885413525235527196845219665790704551582789704358731866677789965857695993684833966432401851236452259439087163317524992519152091092527382357608549063398807666410739857737842333392186342371858939633702149781863566758143835515528287844420863428006063108910699300455282111770425206799277547184305246784296808287238683514167480507997967846333525414735813642556941983426336893949572008980067175378421249729524628426619560500004938382825435252241404539848111099657604756932340933134425862202884226899591452173425607173577203478638840570534113535679181729657570358746636193554248467933479604903728693837050860367304211744679317990019985138043891558547314565562044629326403293715642151912080256738929729320379746671948589273463687075357201459629985967191978581320658940007979625859762729387394272935435686693470773278154754430689926656840869900537801846226389970925764943711290055666214310555920317968244457252934923534917719958338292595787554762062058539547305162390169518721532882823044217796075865270471550983984460052639272941020556981847604844847127502688663274896661550795843464294857319138199282467400398904972461350120553136466514170651850965768893486973517704346191915144144422254006733865452174473697905138347533372979122451334020696769850557879025289424427071639151941324716932972647262925838525939850106113410391191940287143503611561864613597936723658683010230005723409974244352045582632585652780114385290722981785081917169520330267635098956913299431172499975626131901504529887418680622166125177382078625032565707873220492305982781698421842636163081647095325448231504454806349987499381738411646829465170641155274869036409063742598106251181930296654118373616391372005324702477269858196254990812657811101858042693336867885875383892522223432623163193153104312610972479828057276133062819533542755169264951339639925192926988376959170971510564622162791129879710769022136643357844833811773504603403255599917684871245629875994677164060551653214788285259419999382146364306886626170113295138000518951714920775683999180267988297137926674852891634811126030388747770190732022272477070946746508091762299461168032905235251950004243740851059131298384409469871997200124600450798198357447298716612347077448611048379629837471457992303234007622915517681789350202220139774136117581441286714141112539573930920043662697251880960753916155401612616356780905308899245573931204298354140173490395886757040718533440872029038224788562664184874365668684248081631277726945698145218532952467710001355739930220201553633654431487457482842010883899738193636425195612626808510047366680412647504732238967050462139448716115881403780327775096809260737986782239695714725893677193782883682348440660627591386595732734090895260689208923453169466724764910846991596311377719873806501963627156814118551881506106963478063452726760243584181412033786254945061476013542374117068747959330453204054128564832175870293610890474817931949012300716549472489721260851114512627829703158274116954362106487373965428620690300102125748947360665965456011503871946638653205407453977828412388840988260203730456736768401463708342882330355217044418252516944253406557411484729999415646865390714706955557334750531834782036361148753769516053146259596948759584353605018943732065462474961330669446836080209016171097733068457189650188790664403597972618900490551896449914561620444387591449486149887498822924961648461428685748262880111358087302274578706185828244287059945416120160361679774748866598587528161040144778455814243201140299496715759319443574823074627904242385700876960178149263575465397024844528898572262505728304771396079700990207504631920147187825259916273282985731761926458984801539016030368265320877276124476767290346325122060862480515134552492619605212788794131698742946111980244678037702113570376593284324847095453339482593828223987768923121842804968221502549822688905088921972901982100124589999087776549677556083417564208977143362918054853629802119679042437051461494675041011784543380824887214635224059023081398482112475995254917861465873650924177651006847763238843333051161458188037310478836910976285482982127617894355233160330027359423654322745064021280143546280776770417236575642796448934176823760195952333457341053303122187969937774720350028053333518139949567519565261074298198884945508626630534887076456780705987510433494159330937715830634027160948271506054162135941411085757889864714639190722805851768548298249376878295199064958897105482337251486400416231193886111682391580691005453464576304421133951720433104960597923073479397288504705980995895417725684015052693045888372321016513136250581203703724938576195602837685877335397746611620438586376176665434756036691990925257053299328257852890525958574369813245860262600260720983217382715788348406398500944712481120155600823017149026676161489062774437729148445374746263934676543361486358157072725187520722151906600319198684993859908958520292880463851371715831905882999472532634717686243824460303388269443729278448352534483924580753258237023374684839691304190493446402652820476099259833801745849011367301052871671695893364589547386707794108945757968630099633421513178132110563543055813767464955598008698271110262741331285589319118672941634893327114158770837530768821752804130399644713277253516125023538210666606497621873209557622289240169087047179405808034702511718659221054351347480927103946290156171714670461784335948670672721330212776807571422401079089617675117163940010135683174575134259461417375604537589015437769535794978253356716722880711354242519189668554555268406186987907805914215089904525136010488554239071296606971769664588674172504443429391700650927590062041594433441246232681802737333422782075171793844751802576093077727580138404643245729588599578455840379993922124498094197321950584836244158256990762298709102286463425436004840535967482329584480613788416099649030991941123756491267833527239299005463849428422400759389319901212796597107180456848873700479741253400120068789397578162764801595253521174173491628068080512475037236037930269974386002881137410694562009104374128134804473568356506818108943843387224277666439483212825050883077936300391559732700136793494822451926899402816078634632978975967314164074822426197329067338077439467294966641865368714859429237839092954316003007722795441577216207540234335120867812131836421965187587433056194501364715765176175837127158420654483099405011299052141799321521641901669700574644267372493666966467162434797902410604999819634981438533094769834481160005159806500224142008059852676464540614230570821874619788596142447070614922978469733041961517217900112658438902442761671096638343780163108085619128497868263649306387385304490276112005220520791767553104658513644050485185826933688687671865844038360062401005931153462390045727379144578708909247678721834104123504567829148845746024791306619247571342492689940640127704168611312660359744177931362603425342309112456303993581480909420117606009698911361173737071750755691115369255405727100659120313002540412262574592973186741029347298398501484913394227279588423983140650053170761003849521291862603450082285642191293740265788587343094000173515921234913448951484864561227449545957240912986470990721190089735496028642126391945401848585185401655929865575093936776946404946410631430007048041438785763086162599029429769939014279625370189767963476199874082416954899108234458465103644039347988535184000866428143782169384481408146084122810748628842905702918459184766378284253734620100527966335749116987160086205923010491541422544682993239047800707989562522358984015702280752515357995561926587005470662804346236779047014913051251328352642079385076933628319312274209817801626513821312277919074487012442218088225779704567999257516644843056657192969545521008956417982706115699491961510639663422600275022130785152457766898113504505449820798681790787505834183650179441793435464194157740440785775368934628216411323880895667074883566634841953798393028874281758065875124926002078651553785900083945527207443178890307760935330805528390888323801674578762603364444202615891702397323330547045475908757478895043935525936444125855656837689581552730044213050861138244036412456583331512267418407142921730681718219167575864531796435130217926327887061627954831847140316581482104274969497998324160884152420052801153386518788844226013999481199591413248416592938942310361218118604979732512428160060498528049791254224243678459000604097424457239686733858691304982305455533287860979137591516790987698611247053827465095099474343163690189738156230849564880195159429532619936512766090477243608064114258759503248309043006112508295651819816318501011151006855172259783844287960780295519969900816367350220991766447378883044986070280075993349095426052042562405496221762742100419361902331062381504785931184000023623662610155111261928199787419146263758938039164368590662266070737107894439088101932693953792933905121995707420425393019513128290734973325325882573877758746874739276043236769729072324588779249981248296185442913320268197410891212028521159989504945829690691519167777551833634343548074876110371132700896433640600942633766334828686165667885903595347263205835701560498754572430729642980338553489793375283178440930965620696552599194250063202220853861967556034575912504262737546380466516640828745507028826895802635414338747730917989295802038617356661416652396624570526101928062346114523252927384175273253165596941613384939067957470284892556093291729330570358610262812626468226848503785988228329954833644506057261849567286206157432374950964742082684252038002557773988771897841464442801170421694077265458946728468831800802576974183492918540042627548052475629616447042736972279633357269347628517172979708432784428994338365495327710576543556492395078432745916828805299276269242723693755032517416211242157055289536391578703641493128412250845332951016449031881402501779428547810466543155540796653577812582304739176477395627324942577528710928529259809556645431548242693137030883598394899486627044720154091894731280063897485158208910074046042861231584045385767845179930956474070065822321157231977171078233241891468441079875819019266505571685711960484919650803016632701391552755764346187630368708922720325422481096851130044332033210237549535133666755456781164221943298455032180690173404307502124274089645968563519037649789741981397081491029174783452610824821917007704266890502208284290189785109337300983338610618177934596510551646893105281699843986195292950608818861171696196452973778606402422256404513386407464412310819968162111933552730011342486552998144377381743879581913192694569014679699238922874607276023478279009462605256446098222927391888859071356524758063887097224046548456626897383276414507521072005715998159898239424252550978179150565562241716774733095004216949611239327118720984357157435200282172953067181828674986855049055776257589864976233567665272019785488275266520678474477537387355208537022914069931768542878384919636874233199245806866107374045996954707563201181286711517461309085704601865308244025182612707190648220391800613144134384691461735459241367331114330842588096385387307894131119682013256519124904171579789253155192614415320039173518391958303007883757974309040531691838049891929713104710593466080249013434864527187629943447319530129051180139367885830032819712549715606787194890570589841294078442452518123473163655786536060386648660481794106393427962460313665826881650050711053170692335637076259029223674584206545079267929005909954042307239676771667423115928937862419815053813702122331844466391841019827891917333228118670562266131271557365574226378629649572212243032326828506404073472266703326575837130676396369041752962971478194880282803640888893067252190991034110662062680317922747859335541691362696571108621043025867590045129287145920967588627083133561242149872914710920962292294200568917762918650405932777464455146067917022055703319894802000552285926216456470273195902068932789172986593280603439326777291092818185905722429124887249840771256914130012575606465580425378328318194605566038046640064427016890211499562221939924635633035600259553366927293694841942907339655835399510565671847121523159310631561461818766532662040406057351658234192518863683602318667420961220377644228648905803623809898439323933480511878516319446989259776572023879409431051777445909159889930398259149530668957317856975857181531414818283734129012289751052757324979987009109904771485869603311804392601240013582926455118105513760703319365299783560374612933973899286191423707661631703153617091176575080891702419161232429044920745857654477178095295765371417351327728549955765153899697514531083096575798593808614410090405494331227829012330291013611490907555058365063082440365161433231561965963453947289960363331783433987486905153708802743868890047095900263463611791332290301135039112920865836226267373240091870913789786624717320360427833997048137137101705580840158582212063353980339222348187086030897488742176907420111412740558632933866616821727715614348323878793266075795846131146238311209619437402408506936724988683666339253855712098028971369798882579844447848503332505046008128211072626838199016598596672109793563977291423353749401086238915223199105727787153876265479847489891676705492358598489755890112295219147710928195839632474557296848525786541603807429997328182049251163223533663329501821863725808389436042063553228914531825343075522634636834062138459614539415746009131480435298417124585744303990328464968608717108606611206787159004681402989739176488259126803608518036537798062212792027690592817685177164499521681273882711506624505333698979627418830423311883387299910298122161625686610062014074139314441430068666320238393005388875927773041496223553803000468749010111919709753392322570107326624556342950038369934801455417263994672936954391779320552882171245520643472001888847793804286890982665223896625987350236322610458996237853515821526430400070099134291499245640145377725912055707482307140793778966037774181891812438053171599622112853264729408631077455159766990599335762367402650810516331061092178877255555934820389319311191773816695932258641454940760943190773104594993642444616917985078099753407544880286209570620580736389011616866956007590491700776923701365732978978554588739487087355510680829238068653503063127747927433463820597126175160920112134549103102511856154601088726493552978697774068447378467631101852154825270187203710343100233094418248940013842846348639828276257211745788985329179323767839576379571011440966285077802922315049042200305675430219608916379608669731543601937407647579532461066873981463777185434253516550858031014198999991411066051080177164714638505155736006369736266366566816154409767693429486452653865226330539142432507944375511128398586552729123601253117990368626635308230059884604262975284788428732750846810702747024355686937980007186756090198124762753044308259554437873554052055132485853349056746543772919153722207336661252007170071893587191204483320469228650957743172547548305935098250328436913619872316139498007871485506126510745721775435373077898614707383562287865224430456199605046721912215127632335582291022549804794720381018126582217479663656972646777171246524488486056870324102526059958274993264866436764684142239530210249667780145420049683868793904866441432358612607470641816568776321191054143610878086334420186492228859844834514818345704615886099714199359365343712148722622634769189926493999225080862528046605429839763795585126402068139791105166330442753371614831369914800731151992609448695516888059142959280612892884521302145853982879275973928410941747696452161063321392271077251482547486344727327703418623080556993740729747190018294153102291964692464451258458077102608527977029782747986969466060494196212053606978839327869640152974678424903040209728434505332613856499806787123908520000715890997317159811069161840885135130392498196016822624736318024525409067980884419886701275649905343252105501245416465244568968251725429185152579147312763506925139470186000650241612308238855684511262532926797131126532493269997050150220131658720268502377806173427248186808663427934830293198216053043253087068558203790785514203549756099126435224252933596232922257308408504604382293058556471638563053950200965318264564690667388778784425744479121135633645394755040635448321864664238630575480353068530428065554828465979367741515641498714428554430726567363005949158722405411956262192173733198869468276700515437641506927942038040107570536308815434718973897388495877322623033436464649199574903798515794389959032619671529251566623283223015434732298335196055685070741311144359430777044653427945688324218944063183951269055225287137675909641383264353130911727810871440955681672597120335225219269206549953048049148262030418989662288932937945804662553269909973868548483649920373564948488933048114620460332577380043909365360497270665911925360160942807531287023242692357565108167388636860977135154535984799602096647206926948512912279073717822559364573437289608201013096938846073959148785642494406137628293181044037215547306563739714592065971463739349163111588727223204882179018312728025849641351448110962668033356094486314505503256880215493040744957961666027009767288429709579127948593941787219882176606215489442459913754079779329486006805693292896079885519217521232007149689775650690684918904850330750943190081297290057458866201724062904433258375110786400652166364069667061375374647429917612537406454323588790471711505082896975864283423206392933798753735092491479282652083076676943732553410006598815196655372755793066867247647046577892351006025068064143604300481898560026570137791339351588092343802862651850876101329857250848874766044302826407759246607127525373291993756281667513542568549268859108588782878048399726574436231057919962516714384246097371831757186618386371525310779677172664463827661566080506854676703876869510550028550597110446919996074724527181775649018236750179769222473331944107931989654995292938779210675534097912587766128236855688032996691409060269931792161940427905816908997910168433224155088728898889933912133096172314179927063401772089095761144399982643377586588803583054139220397092162072969835319002277947228192322315527921618042933041422456665544565140602505795362366955557445508573739735860888267470898129378301922960267376982903199145557469681767158833581804797323158249103320993094675076016948776932315065351820253641650496574966663660311667753273426868096714284596281802396379497348358290884077702332252625361947908837486089823721043697925336666583827227978524089989993411863804957217910448684500613905444900737253739012879044572855163433991137921656444540094613511995759380858909641075384424671512693733390912928493532045465000246533384538040914900146449854630365543423962269862969121473027723305956119198716238618698408201744541525266605198233767389775320469366169349913854000195655779572630172232599033966435457594567784482113436142464858729703706083908416163016164462732047898451169951751552728893535786972190508793032203400228071880545115667927920985205159387499152811163957388791397757709573173400478555713664386810207042923957598379229019663254449608297013437723984733526836384580149003496571352119395022091898472017446066086052123602806478924148385481075862059762590547344504815678493395092435436640334669392964929870398130782538532808701286396230599819291072248277582814868858037779040722579085491770638983199582228846010002353032319050630759207727034533941828856590102712033020603508687061122051880147736884893016782148972473155793794548395686795079573939912317422083793746980660200724873692720230373034149053728275197547729422269217312778236486479439988919418829778852057710324603150292342338185309533283992121146438812356685519807345590744255656906982401526794472501189759721879298267064714309295580559555175256724143100988136392369507086675453358743709786856024986331098008746361871033457576061590255811662150657315721259640872856676690720242002558102686738809691998931229534170184525775110755908656670011237466015087552339934352238507617209621579088133819297079660371200549877793285823065675094694503922423734850421210174612786420400293114706521791358579905123587657026679480233824180162713543213604477037002101967679050137455086407563263236134015410348644983655370480324253496688693456710764774049488140946102341506569057838312713748085789521149642054316962257482502138187446732157763040215445117656990607988011397061875869282616134528321902639626313751231313887886293926764678101347951925918663212953209531504929488339084413569532934442560932704142224225719667367286398853345703224793028089370229665722800678519019541282240175843239936580101555697209800462617673710740227916156364865944876023998537586866523055262691582820919897985419867745048687510754690671490343385991070195100561294506544436923071554431685534337768168800576817088988322146044887528836946540294613819799860423993098781105802510106835163387531063359129332758255210973362027268539689557401455090268424908593117101107479334104857025165662803569150914712241691182623262426816779455710228048894431855448981396979527696585245647524832946037994573708838604063402869363206143726664916463689809606919171215465591173215916500746699941543939909564887077088594880673881845364024871544003449588066936321093618025571946567740501101236765482074748954625162374297212853467637459782119192999440642605851771796116331933685911451464482714186214542414541720563795239102372673835235303119981747224132991144582350031981142450946864823419474585292705105104510378345475173944518855915465667899133443256573322333705597172093543981254889741105462107171262223668936798226527655205515292644785867422535676605105994985294587928244131511855984414532743795392459972524845231009745551310848080911585771153466404989773085995520034985494828706380016752556166309118857012767379454710988647438123382053762056171946246457196341914149656094812690470731955531471402960227706332928838270084707628458189631285766987860055232871244682737961983605853192826763217358213299030765858826491727694712998073534121663670212160290264500582866614923787444627377295462094569844685914752319173983282682491641239545138592761686623648898398650698115097779365936460399474315061697186571909596337541787897882854134511143368063038276872260482191749807677752483309003595916865421575976394485922263758024775564449544860147504231429994746665526826165980011922664956214471473002990758868757946310408489819563389882651154350184542147976463339778923101483863057839126673812980111907294427130814163141397593472333217710876133549091420572221010605866255125338369158120228440890835721881112405042764245352407997067041866703031321928001712926757583952231649230958082369517694908762170378511814397184417339079070604309683872328011354095445019623201903548728987083495763103046713985676938503137291118461530952009545574326008154667858709808617969236440729387885131021723209006587999399816193754981115447117378339726388985349423339109491076296047978164722270212732294769004477665026488871641984939378614267524237333488339275968951170673180332127523047683325407516950269290214517845714114507233594980761548923822554195736085480344142910992198718756257506568029711278372000924748886080193312496500326244958336391859082284232524654023424187306711604733004888937626593768660553177149579478281055707022066725012748616929438502713700548351401309107602369812879886843343889172912728026585460126743624679633025291398791951720483281284015938925485003129914197098057759692449197887886354668618431434783944436899954708147470470401837545450948528124214169364971249083797898194000919396694300114588335502266732440905853561296812190104660356214817956117175977394358697280394091356650887480086676832851510158562428200493192982326551861321223383520976658224920335994622763855614722037360959913081438873820738353161101216232277613854807645356155268335640685946842442665915569729736256212033277530124386866223123607297621359300242821731960244385613609663055415509294058646793707147922285500974077786409786039641861354215397632478948057356558641500535403619736829666089352746807154295421471865165659980255578429736918600078375559003932683207356946041648359655387030212315268263321911515111550218623586856725938672801635136670024134459564943944528016254945450047282483734052859976444687068576830316978730951435985996087638772124034587024272246892441460985720744379056521025270742812768970701040459267501654513143632699166889238125641015226404620721399258580002427249180564777664644748621906826928610270085305914672424577196956854880648864845643609390439810533115905722746336511315449426057135078990895082564645103711623037984830975500411245127429489336972909073972110493743981800526518027364120981720115518894012634249985399035631136322699825200283329204141470326178711112912684550244778924261962657838385675302894000321742618989567568453962152029589097300915717907822002014617933918609304846418527701671241198641690630655307026434032224409954238996775432822283644874459943071504360152966288485214902511641841157251158294196951793989553318923798910909817771508257000374740321299519594612344320710828659687543103353148521600221618240373285913636112651725633058862531013125270219030331157008091317578201387909000450154263510538519127285160485235870629551901840540268236019534438164339341751097450506833682720875226455230433118127275073692846832396042368106344300566757838082899238014451484414937854556589633462280254429194665263159422328326561194131422237025458470070136664894485937265148303352424836806785349651490324813957298575616692152336111233377472120344977352376444622175837545574478701078630025858273860531582062905075456727688039362807899904881256464174761977927447569244608054504615701693190035232595253247896067175112951485063296334310377216514923121200953718686578753875331210196071626345547414094424435874824850494071181869953071028922506903339604749358702856553361609248898109675869437106790132969564975955215346764705918503962994502442461033412123005465231244770490644678697392909055586566554395361712883177578685703548794700465796783839311272620009435103957584501141407910541601692576884715016218567042006783255646670274363879436911242327736267097485253047646048126845713764191381657075521119674393054350973922472412941652888898511839357512643890451655107513923838958296048008357934548653898851994754935510721099241477810742530841965024242880275246841265863433878604072886640125116465851063151791129878147411359883385818789966458751986663709098316832404962632508185274245652417512033340697179747873729840159443702062432157581625414183114069586278618582028402542267069685527969767332187037659742505528317136468686135817709630034821241622703340109812008812238142715653287847752659082012013941959838359222391431570038237671264565856438162826007956602551525019533994797573703133545908805462402452587562155121370638631679797978052855729777749831175564350017586515063997430890240367720435597619066771212402073643793253241455470144867324618082439637148243825699093909769626127596671928298143055035740691772375805158167648176015999458153054929222314829145203306212395475746493156332877165858675638691630784839579485861366187733135743939183982047779064165023238550711984708564547788184402130671652659652931626194612254660339693094341118112884239840537508959036717159378668564039352475056302367046864357390886880142489570758912954023073949168230497140393012002043665208475714953884720959421279686908348204595841411250367352326755481705519300004882003844035280953067188130584913332865660648385874034829311827079129344833932151284537409373531913540351535370891215142145113591286711883882840820822477334605083971203272589256952257413620605186639496505840017926117046395061478362826445773482083087965553908197689667455374024366557048821909647832928760256679607643715104071102724829508620517762739719777060856028657660668486530885025884401664522748960234877520323295491558353385703188523166068347222031209124350346684965424403408679925813327348764633718164216789681706640289659011844491748497061005445546190571605620612646538716041956131934936404304957243272011724203499387602037625650891482350890211389212421729061277151984460904176739837693947983653499660721926417196425056608850707062038531327716349613503532105986935940714253147361569195918429814920159950426217607569234513778792801063847667855530232982856059249974163464395112166685716292359301219493301588734420080582032384934701705106670041862826139064938075696916559893274022546867853164846592560196669408042965086685102856320042987006393993110982303421533340708774368470729903937162790985917743841392451168011119963618709029367208095111263901406125920761336088775861252972863901554792721852961257420847380310764461181014253889216548923115683340190067277613851526104666462163372419231624872600574308953359973837405401845560996177843864088872967327121435077729669309996791004771716844530147482889162052075413996275229747686335796119952105432287496193901394833850806743034394253069624968644979774501133059280009912620867213886789164977836346934731931213295945201397742681081666377607877861674869462574942896397821583855067083743804274642197344883001281176617803791889246974425339935380007678274248402712365685866483779061649900776899853035469966006031307787201035749752437102721505225554223648455443173486930877627600253697408393606071409706792417473131744646720663521454827197762899217493875907465621474002150771564316973002543376159881331477657595648377559043937295032618412510241075341776681096966945237405590442761906828678196193621172433160830384480879444863433615910966322775418592580055852433889700234907831781527464796862370310629214538896317625335865067346450261625090708294968613549565355403749110397514165281695259937008225955579718419589598550496776466719281951871302064973540993640184669343994897401796014081592614947054074229346257117126588071379751079014152826332554745219652245051840791423037833548928439287463919435092881024158845948711045617810875102225696514464256760822046351304210906204116552753097680650512797104640796771127674774431219672951918127134405931051351230760251737941954893632459338123270450919652928730219644304127023352191921344674040659190502080823422250713075966512227830420372520029133421213154201193093432293333096210749778040522806940396878487316647710169977972205334180302358333471795497524210420396692764107675693020762617898514050608287606356981467666806770198662074980526031673893808244186733927205652122626944507892526401146357552118854507955070704134058331778554087643275076662987913813758701447569528956460748786984695054732129658824022434639934645445809706710234421691765117867739735759381148272330248718859005585553576424777008664227735529145730403563794315263503241936966993918392825972399027829662407466286644101841000465927726820690360232892395144408041947442466553848975738975805297040614483578030101151873015417465456754464639747757703415939160915304422012749373495237004834061394575571643889714888132404101016459683614742795049091273305065619602290065134787553645800203340695689937381985338576815575388775814477143532368348478816628531172981683519221455507173604570604116520283159044741305221312334816992317482049939371969820369032651068995938666682473243874483668860542546242821185644967632864766926110687656910609387890417193569611960600316408210527099871923636336119913491387266756078348203469900769967927324487635361434247729156395153343873109183429873831522013164408040463276501363671939381028932922415106379323019035726911983363544296892374276983643059502666158252068792950217135008582383031002746773059222868660403467604537286366731743609202811975051901993129150029930575699759681161082383439473917011629282553518922382766191802397517627028254024063899059681100116135877576182392220175805228086453773009612270941120922932225834754728499886390212497102115122434031768444095378291605162465180593556544983937221162971340985295582487891927888141984583287511189656156122313370747277710252580990826463534327780459676521151814935310151849639443193341203954779778202801957060306478358916902846939184403143673067877596526144092298113657946917254584740713622419164564860285883526680895902163039343090091534248032248075154148014501792557808496999995058136963350863796784566642742278897001511930207670467725980939554691324880351888224865703790347475070878680161431242913698936929724771674535607715816075468056830466155590959529914305234330830455672569486919747554009862806858530988904555488965449704107139478479842648126132300178872977493972304281138719042383551483084542526393901277434625254768973340235140701845898457261558544367743223774721376895168430738714632218086283034012410117456672160175526714202283765526075222727769411289186916125948826688473817468429399489412852304412542656884892830241638493963246681138928725787615943264335393449767367839175849525352504431485396683921730428611600739447422835392646128180767027943919327435164920019946127870623657314907242920672241444142100625582154954963590581034680860808177145174448081256696056215088708591944545508444911491730415098169213005385459257970489207483182288294966667910202783558259369711241268624551588106431698858193360515910640834042748840880525032174062922661744556310466393798445041032294117213046519676846879096698462955446190715918056123951884361814198857095916970598589506013456597320109190434489432350124831512091409437860971699959116050416031032432066399326352419244122495165934806216911628331674054115651551729840218649836216741850995586099408604178511716336357425349369415595340139443336224473385676320430460220260172726262457637615053044138364920990286812357019940943316191597904396172894818148939524111628831892763290553969336162628774057546985606339949915587093277775835347748943157375366971108759980628945760207387968968128976162214525729874420097784234781042852035303888409165904494884829540586448606046003950805164920053882737689700396120310728163072847081453961107158375138649748477606774849619693390091219051596952288348003857239684890018091232785465835064164363351393568694182582638525207557420976713761693346452127457858850716522267597683086220270901286293334989084226315529032626691049220507864538126498664312312998200282741801639645559494300245154364512978353239953852905487410176561534595047807883447719441342552331644078374965943085677951582858047286233886389554836901769129782911587955757220428528644634875522798716091357678186448520470466162411182518137368007906530033982789366264003627981381761819016802363814134932405689541784549964882338333289440352438532406004913996607371695899944091123420656700588371288854551486444900988281035144766233543390593335638631254251030833738894915055234174992176972210391859348677689628430036876489384325012610257715360403904344241313731676152892078259582610744337403245446217061681784722388339927379060515817983762488677889891401032525835242315554493463729347489317716695784619262860117258576343652216667236126654322403414356048805212141671820163975182591329971878582640238730258946903052797086156249318933122529603636900435517741643921215071093180626221595329524701208912373023707457438055493685299773237024227514553494201783934880252294573973957596569495232172053388894596529315558736635560480539670891995980720899198035340665118619170742666123003310066830174467507895969062887612707914102728357080858694110891668441590861865141687524909292261262700815599212443235619724494039856002933387653163364410928474940564172639253350573696505879432859505014718336845199356405972163736895235601462282524825306379369209390272181672214639051953902601461604511068159512666283430462298392335577835542181715385756082982465445264330378714194075570485203618199370842898001038529881692207635971685381936107789085031791835641845059751590074627232529396886375572054972018673724148415463216575939246469298162883884890963175430060908517159909465902512220610107182409862721605558554297916877198470642384801018530542317366371256222955973606803686731683779297719900291800161263807270323848628480370280685553775031295098179245009174054353156224082523421495733091038946930803225551592275900963408810741902593906167617621594837242312831282453307966123669271801285221032153274569971525313819415034170763610889497593228971858651882976128707103855853543112963346896745552212734685564976652439709219951531404073896104468788805085417555403860160955069277963081359883903662491022816037738580503142013496840578003262222070244637821798647422884897233601352639806097412509762844328183632975728710699221241723479471946250474496732455146385936771490869656319443568260670745329036474166295625789794704988034817216737049220445294078766806126886390571181175883537506734908695111042436363391445156440289912428742024201987305336850060614499988566482997804750840187090991994889694755497398975150292180888831073641044326216075467910435815401008985599760471172769956368269879038559276762265599362409519630006350035087728657805341708949444607867775354030661021679383670263174040800960791525029601613974939304579485869560137806063561071124112548845089486629834891186671818475597552011906652686965756680301037531593020571975608662624011230503768321163743722567511654925132816024197678561734724959075995481217508785160561271096577288460194637514269301005278327095763633924445735164638039118489662129169830730099010247865513289975058376350063399627375897310782827560203303765770492746754001010998623342942597857911315126799648385684183070044253774592053242583191801061039465244585403867109887058804338996261819568104612167688435506119905296641430712842884477229644903554936742235755812236570124743442121499292544225070900602733605424531727174391936190325443764091535404426077260242497187718567379356755393108172203582446903258257034566105508396977224471213900157393598727611828687891274999807677624502540180248096530465213174108395058073390469678473254987157833122855573446850491082399707205008569689129310037713939797114321513293078111228511378423909053569145918862341636879436372163765994542061793143469965851388412264201767653345804306323592080674331900195375752183285372681944098633052334327012525345975870361266885667326585266417295369382290330819770928657124474481225609390564798458002157498861647029578571122146765099996218267488916715690261417791619076040583410279197552922595787815166286714373015364660895198826720717705776255904357473604418371338201375035482797981781787711388928284199990847956870506704576541981870456503252480430450484806290920740890920211842411223334282180652824301438982223263324607770188701433522044381446320080612631187780675715111364122148295620714344132825702483698714647865392726223134043422353079333227706372415247427947316283467981146527584824721935996669278483287656799882718761160592569684252122533646773890946831776480574534217968093567322977458087259603955476804634881790711682890954182739487941969449898357366035064538613035772273564947186381808937945722472371672057682658006957646438780096516705520462292570835148488227810363258700477410789543765538935356117581212234113069382951076491998731285790411414973948198184373489330302623386742560336967372913976392690452211947050491453071328888930401248073960876849848201757267583243393945172835268737263527812496346444770778684282454126198081495699707809518242135854072307493695453806204934097291755007169243310912554370065139952572562848158336455355597261343587925428048832254320263685585932319588263800199437348465816382609511251605869196362451583211296196495066218976226223806330501276665293806207349608296496709782798625001306001780436005402381717053874063481283172875221205720109016772944544406052352731938439928036768274976599449866304485072603205463452171657339013789471266333185041303362845224518253513594804604264255357454145210184080600280903184554066233077019099504082202812920079117254442320679531163395084885505656734643013730619798290015440391586215695617263017995116485859373353416598446755892217347702923717894131633911775327442712929915177703891569236220616497827968782367297928970117660030326624824973209163535867649883038822067085695538570359613355631859296221329843364553019320912750069698991082593744593041322559559514229629799839026975552689780831224387127693182035084486046197684427912992979992707846763270577066228786086381109868581036798415005458015882024211416800330351953835288269763889270293280597926469218875797157306293326391746627149192833352123475989898530575270533434645187620724444644622177149600142611357136461966530037844262836337584607780472407927355599025366005755348718632242036033558087494436844919087686371731904830438851295311428515165893190262296393714944028904206505698096984767106702986899537586669063184492576069302522799290437831720468258369928820252227540174609946836227658951972318841779049685636724874380532071924262541456036004436576278823323464263952596854152237641532868288483156813053835294612114749735401328915570209523681207842006753353184589238334819304646775197460593184503184140359500263895686497135228550013663037267869834524950617462416954615115817705074173906686101619160174135714611845196370533269343431520449181975609969312978716319128223046209519434638582036222017097446813053409418454201174091658809488064522605517190402950370772304997749590275365038035559024127787522548586516802216493136685911248467650900824551450438105004474822878456858384683175154943559715322427034253100554419125171541236990105288169115405909070508681067081750958660023556512225027875230178606892206440028017214324762402717516002680334437255609646676792359601311770609855732760864018497313769643386122254619049258574146170482491660390931648227150980333882770801042009511551168040390975682615400529282080501864253005340486428579992967406781702025817159102027869594342713231416329545754285399895615989385837311069180026900975678882612428049896468684176103658269889525525009836017568303869716359374181819155992679588049844392149631794209724913569992831411199892930088146666445675565594946259669576053406504951343295579122222983731419657874743999956484331821495176331193986167855884101801239873286226259774389385304426053265655091579973058167310926082550124836231125370486281597802175225158721092855439366559473252108289165644277148651958132689598784570461950399863071411753720759074946420143356520982792755018928007482516040114430609553146114579560378774248930470732498408653219408141727742484768068293191878023854493668941917451086578959372641525343889847290400354665894704485072180401285031140752778958707676143108076144513398463552731112755504571582752370399654549718521607358643890085843498197878221256499743273599755516065140648761723374641467802068223730558658019400534863054991016424545521272880303056406335884220751002624226861093191199684642944425030462295703222465577589799640216068549240586228468099799373889713221445317241065032732248448236768652969163509928174933266253904011322487424865147491189243043239551860869920992816748847081340928677528639556403119394203565605454520086716763187310461333625430600007763245831146612568005167915674574357735949289821607842969035849885773692315286122257248219146406499206968053734709832516496589493848966896895188842666012632327170411341838903442030563316698461783154395523565564779976565509623111668551020082845187108879228379425276785606356270407887813849113386482491361963807351788118311759279801714972963621982989521108798500999782313853421889711817650519117984060671642956502646251199138799218937098718744893873911055353929791920920863236889652567220532942581793388944759359341393856609978701482549766964520347960584667251974825972981339691154679545802058643221381701650838023463419695316927373342921425756558062244304228818679294911448447653731412838274776115593539584970493506518988644011219895122133261849830396117697090098176987812697151517084553680867113766259301640541012879855202931509489431044079056902145128432899361128905120457306101822552901814056486271123166907613852114677282541416546743576720662250070755638646814871074475235298414978338684809863759186734798684712180629400681585990524148402847828867935732533527898740941161961290970382499187259103065817463161710102020224360490779140658408193699005973262152679029020091895440058127472440432399101723577328291088868491055410925002088685314175570541106572291324527638943019444559883632464088951314810116477465615203938036886539694786294261942040964961677488168119700906167308980614150057660018560289192371764891011035275212941924935704670260376058750272045621243823758585405398168199798691938053673252595543958088402521865137673306597489593049389050003865707797009684738221432832668755934806030470162867881845810459155405585547965972921070669628194737193408099969962353929796001239010000683937526249779437757809395680390978117548264582603473959389269877124917216449724415604696229889377585818768594756629892043242640950024000724834287993306932657997794943005997113219742511682024832969786546446590976626379873875611342349451216674271731619825048387330031290091340320185985923594615754584095545100124519640155346216099133362092227139852846231413336612579270742043494092174977401480591919338601689447245673772040197853679937294967092791523141951416705342926578058458917765498374136878774332338390555193097572522725445583223121712135507209729737662571637072592371125595708977118282970966983632877493999270361120841502941437857985142713665765218964313692897069978472595454747152610338525635026723703793682973177730388753626098047255120468268593911531927585278116823789688250788476937828895991848721472710025047188477130086597952581903702500380283798032574278254264415615194153243003725845496377997841788557863288978397915463607785173806745891952985843331988217618771118522595217636869469687400107745159861680967533286310444307810450752399618360604046664367738241715141562152374590948070456551822334200132282798885445201150999015152923048154758709985965857575613909693659072645489666887134112408095180569014969340533899889080148217982724768876084197395339007698342460228544874010764604450884795746588787578238520307697013222849488322141398581418938899310953818632302553130510758893670924402065503627509222755476096202515321965038191230781542023677164668707682439853338121493950688135394033682130891089596774928731275475846472579483513434795099699210416305548547938474533055277823753473926213402129923238723514817156609585798464603857866140717543288643119590791313952410749241602236863824933033287528984904335402967645263152493007583349876995173777103345451028474153642982969186283147730416221697261932416078747975391339541527367592881159139693682018362938701379842046798373055265635092001838631777326293724699866638066973638233734773307105285771286433417868283774754314585715673371127373033429389029803114663487436578287152360631500901652796383880270271932367435639141151334308757258769865458850806487814422981884962123722467669393842969621258164769842925988317766706558645253685924519800237857207204010871415433635403576184853744331344180189605630608339357657574277449398665523685855609634012974287737338059064790288070849962293182021051200806347471184495063385802539336153029354437512982900703062406017874266393370424047237172216849825875896190909570510011066846016009353080694088524893742843624012890974469398075182796750973870162490883790202317846916932792850971239520108331950691203485820077066632416926730328095152277478896946442331320747206020766974556292538661026473664686024105266067292410348868979673101556376459054868910903876337485886311392852106620004830098481505588894912749996001598221241131301636955489264714892048588305807723069596645455165269931229311840106440336628311578843955062748855790751625121702455128996020828952920860414592759205155379130288945522055298072359499575183169618597192032929578390031922357822850910673649308154021270230704903832907390522666956856228359991845852481979811422703181106580043639377715102613538323748069249272562310174413582318150499047779211177298485047626253361291169477200147992303895951366416973792356986790208371454887487579826889504304061404738468689789557231167965192600036192257637854323391858389328261593973369553189418886204103980965584144327491784008652888548201920041669205061922519022655596312810239061098605369672955719624050847395490613289927473742497863638114711208014254644046148678284563204108259969244998082443481273727820303173227468094161366546878886856193260376427861044695255861092817161492374853204576524125211690777552578253408204099965625015462011178199442823869043397298679479970991690659881192934824927805582601381557678417638541951593598439302614571836019406282758588292121906517661495120368391348813794641384508441916294639429976538091839174337051416413239073311594449499880629651426890068063499734189609851281991742819760178098624615373100421159379866343389532110147178181871069341150949311653920999772100925389879511308667128846143727660701230192170910744945919132984968248286331367039254342039055904154695449293025121664806972991759860293410750641347354371490692068699364693614253373179610638778056939561844534801094151562311990436185748930284740644598924649503800777257272369799529841759878181055722246136410467630819829795670749207013863696272182122301791309499388888244125660124481147449081246771828830184449847157662481275213273343687515437328922974841357325988338315596256921038358986066678276304420598071816780676034408653156034003320281625864301575676943736668690065621748168742289165153609886437625246634533398390389888413593423510359654789395995571977390055523455502912818242295176534508519813182956667327587694832546831045042435339359873715541085242342970304361449391494257690408216177659384185975935847082217059584750857829798483123242495553139033634900438093897231163987075056932234813751789311297275567424304221953679523315122721087124053663682446527257341520063611721950266580389895452959317486838543941681613073584877778711515737068739991097368731826771877595577452960618241840594335544107114941321328815467946832085027075394258635658899489313848347032688742474418163693462452390823589540146070796806375667384426865390014665557674059415871046051805038819491917525964649019792561392908205206694560977138268917979705914977013151240092635374417090346159479535973870056928975385251435418393313353022975221678106138491589048139333858486947497569894417166814316341169783788544094448855058546869390235650994593124857430052595278550765271868800075988555822207160518129869398490433939248211791166330700141807772723933536982326813432492556328607825409991665787477520911762680094276956132528572851128398678944714984566234617386599347932473331201381077735816234675426592136059080261780419621389809960629695814013928445064795594741516620000233126572463512537116192790411752690705827448775558797147204262425832627679140097217519970934735788530680092356168347271866258723996779984750999758853140379410531925795949555103653340815831019327261712168077443792734617935809711234102187757264162773333836740606553859301404953074293053555618607368449448357921066636228915741069475682201651071421197342900922822911222207938600444053443023881585389372107796183155399259250486650505847858821872593011620090688822850405730354331652643382367078966296295982120766824976216287641246394740962451033016026541642893042859550164541551768127809501924900269301239626057820450417910742265799725684633036686223358124984900903762523411276346901563912887106638060185941637730175493839950257214885323260178792088175958102931578514921835631252812231854242726415946902982170439398115024302095030776598692278659255060214577769052261356851412363591159631720835377281588115385806406064237043559425996504417885595081982677727500041116746214845343509980446061127516093792064995188670395708448669001265173996615236377298503522965549533753018842282811933185988099385325375820868631859735834058212992969906767534887205334085014613797003771421676870979992690047791651491598012628793448099972705571003968034439407480036217754512311907793591156818770786639980066662233313862310235106299048395185343111742381385572327648908070460329821443064111750757914321422335590536928187229068936713659380678413572805680009887130103348545294467988545114710512663033534365262683368866949098999186191579992040909876628380472372723307226752728121021299077592652399609569670678422601703395970610796818689467453778552637991354845973484007799074253396303316217556859062925594951859102504881743241841083657995823034572543095610398195556082778843487136871818109110117648572458266589705646220750172960081462742614752203082227464972810053949887037792922178947974200949113278241264093195126607293792360247316960405232075020627178990188845615176862230068761302715692199603546776267024218422321509625200901920307568712420013646365651394130365478385850573461563650734950546759042973571709004666840024019710140428088218064114731522927288619501695860418280395627108109069313077178190535013942594301468295768212576007469019886133198134968273269068060363056833672240487982770885871487752331973096656941994254524607792146902972155406758850125331839851847404684395405935784805269609535478421358193321943172893944590384172369692890621012748159168155355652006255796801931747633855951026412725069514021311437183165713994373351687515574327944449982279574834761752814214988363198906689352961808663280772470236867923734466580690914373894604822686391196248956588156411501276125695624199573139445951594219744385574994878497152497840008371658504463233309540687584139666705716434012211645212236026065905552828158587884307521872118194627695065441953938983983125088541290994548511182015088380525088669642143866603517524085667692711571617373404416688833606977885945567126631851695425116022773406381678149282703509954622707585700373626466950233810486624839524274977190472387157415403795806763557604899270907831030107304702362910869774250929362119218219504138634196702478369274592532914589322707613740457821410917806663151185351842567306027968557651318919877671074486008144433713612905453909083987679345929051246691915774447891195162771204362354922550552815681037508612873841726639963937888957995494140759608741869705330728016088361359236767032114236923519768998781427360255928537480455059159160480609890256113787561180531312461183856979322229555766691615237813892908485124368424031829717331904665325580766607570583987498200777680869345216176883617687894519343215990353449488238742197239732085787744314258272334689714581399718853371046001508267424254367573509349210226890744217837899001589591259489773948845798463738976153398590548094148453336511684934314513160269852197636893958289124628021391017419451679880095640984183408557085073870262911918169924837530350189992257504105815800720455879974250917908704712805674379071127106539310062376029527945298152952706517620023483154748485111388661311205342417629169101208678399390211585828262323105376395247015975111179594243542497007291324306721597689619768533472812252967535650495481848470749376204451430705206901181817150265787906864098069767592656687118862799110143108987569641741063677958238998225940790491271646709874460277814354385640348985257658466204742876254367404859590089748420919262690563976295273764550813673145982135669570141953473313867737167248356074899372780014270800609005671148015989418674718453979370133072799224842986424812304458766390308577312807958855891122183377913085732837030095626889079325604200735130431912336422217867997058181011658707230066668713784154874633860215509847583801213621042249470021446890147592024201971342184440804417619466238362936391969606731083087267273676999025334111859936134930340468157720923873017849415660170250927209869635678872933681813796503734193000312017425416671285061304204640364152824535529005535258774805518692169782644585753776273212457908827125523251399835801446839511342258162546555373399982223392109332077424224475184420869838008840404965311670568910344230600125877061183636117960534501613452972865611019335736705151588809290483237073623317793637805019285391050215103545866991496222599474837472463232609333297414884647267280335365272564213990554809009254911661390360043714335969278602266432679829917043639843533897618128849850927202013059262823622727569749342455151511080316537263766427992346715633194739737670495591952543972359743331334245675557346918616448023024150654967652790378361051154512063525934067247187593121860469686474613867414584379585934867367822833241195915199529820279720285097567937928546949398348548273497728950083444069228627402054841121956275100434744722222601140196749960191460143226851920907004000456620819898407087487347071641942134613358044469229390469268757044149670402661063411603445819035969875409972480365730904525734813856624186752699211654342984047975882140458801403816174005858023270098714960285443060943923414846388299736344060496998302863272499742828555140158139588700316497555846542955092199987942211380147584804208093595385000247670145330602173522776379155631423473637929271778449518896155339277673617878642666183944771185195649645519686203938882298327255703825428848947919576230282606983927766826980863805857519122416061484671155419672489596971537087556031013540252075672399971141742082617592030982022574831252210181219181544822666230560953723767242468988649909863124104251889537383130972097577465189451128342009533967172978226992007819011328041593723771013063841150870080191307910205362255306415240348742236132729947077068340549581934638440766137834144651099174134304663449993051077181005636462105379545058208684359923399924072398597211078082839305465864951897845190552967064562301738853572410479983067570988301486085964968508136096401045881125183437705905427184570854298740108860440918600501301294021448197282948720728974257108655567624026990268621084743346469857256176631771905567349144147577881583124988556763279042529932147777145443528114354382024389619838803857895664479192669114043803887731340461292174132545964464932348003945107945447519122715782814785702095113989736787176007740257977067503544746764663600743387765773950815539871822967247986019735662815094011699401659653910554648058333989986844773338170071561691619298213264069431335143889627771676847971956168611891016721818384237706027846798669731905618172615673942733329318696337093801329579029190547093473228029620095727300688619234194359846262692639397282313997072403390833858742084843523165397627011205704002057286535299657309955625076807451316464094641337637128201375276210815385279690779774441823123012327069332391155615368939775543326197184519425921809270216101528610682822605478263973406240168472815114546460615942843847743591711900724332504707492954029007147618945683401968119867432418501148251226339547196650245128710021333735215150948913317326982687514139501738724470150271080689907467239189893103209063977603637817268702444946272706335440250599180390634962731852684501406504518364782646689397787439064270907969321253222332861370772390279966161292400132140431146261236516152013297447159628456959378522906879737417722180601613822751235616841203915195638529402334237018004294220069947263871276642338730311131299177787760092938271238847042901985631206856467496431418961692197938780021421321824258243882026418952687949039891309666281205799693869107096302037916186983446897554108819031287971014223433564841577877793945230022915196177673058126180609253628001369766745646133708076130961659888996533882373583813561314098854507050303673277059994877055924120076454872018008911930703189126004398612098780860625057413301010928368409282726805066714938393213018131778072731606415339345489924307109188627093691558284894207633386865070840702322630464193780979836584551088849481473548259938601427314505991851592858536122270367608311558734029370329331379187346568717314901744710234258806306048050858153676662602456473753342066877439123461686147716091610002120699040165830934019731346047560457304338175065891858475328565186387713849386970678457130588083257886140305561563866794434574121654593653276954295601413724465294362615208709081302998563767601145244648433007558787155062709169959195011410380741602282011689304406324658521883724920475092167751069713094906911954570657161931366668089014616789452664008059556772459857922333212183419826210584987392679846792754855694512203894630506876368755554755644468277866014172101075640096021958594169185904215243534261568253098797405146715574143753950688236875124240896805398999275793639818611234181161331045961844909326943155746499355311585451081328176096741211129617673430878708985198536486618599100134759031676533043942382994200932049615488368361844872222044054754847008424368251064446277256606473118620649559906344585241269219346727287637645785874088052451186741962982973894429929716199275807489875424099881344203890379413239024210119331185361876642020696698175425173996248046008120798913168692362565514718498505539552550864015090679596937481790218873245707693541191765668204925113809811600862154532400232771282311436131596055402991112559736369390626277764694576606308050093036898106045015611399392596601503620007219417766034641886250479849491089181520582660150595609669235405268438647235103196062875197493031229741216953083386124993838705380098875786038690022180236772731437389904378812612157194436951619975699092479338454478892269057746300916431703987033471702271518136164651864148455849242554251428957474900022798023137835235878910520797806119566535341586504194788934920626919521375926669934400579096949068885321839683558318754161087956313781828683335994230650713480687004936235734315550845921362184154438217482991383794524193224735641838246576074516981991773872991011974678074503703415338110009259110049258046522796745207954040490520183589196578274570815826571335122162166571647746159377007171432722596969376577803511531395998945144280541928408845095515194564259991226489624828042004022179360762310684129569927908726528950467657468196874643465840158005638749951291952690505463379069601431489966616254899775313248116702744929008908238449522181008395400020113056337896653350243961985633140645776115668108316670527828704372165914918434437061728858204536766707189555102057181559654935307257307450145083138554601728326301351458845502822702007071079316609270698219024586726846042546445484827114700639679391215104822898571699467422238763026129681649313427296911770319441937935393897798823975090897126646130894477654675144999424501654592393736786465472535646750415292178013650155365786128838138515916999154523485640898135837413162594420128555193043838177072449150566077714445968179209948779798061099217574102231321864938195225944387357365744591271082187002969472121218626708094855781169884715718913100331117876195444313705773037831779241341595441399626333342699284741906928657316515298546069854152848310474159657835687744472649602365751921249246160456887947410780075139792918501613946459730813222783066325386876151943518693594488048377265495930694900903601329126722256793220063848045123714322460868735149923790462316494502001630125362881458346846214481320903454355289522742233512335050320359699713556058309630818119135892525198692138694912382971222413174973758889245850124029399312707530353975097547338751821373602914719489012049067005534343823670374044525033116327387936708855194811038930960037652206486812750644992714361160132268232324760765200111178647589947406276887880798162543672582352556086549224142475369601092117492179040185634892619403311700944372510677013181514763850810612582299842104924214560147387769247156384224426536833153352929673695284776201938087572540113755057615516946812199557301754351754616572260166477078595339302078402390051413586340185499091430658999792196305679702283868465157995777270356010631666574457835301615889864827958064888762425605540812340734945227569245320281868898616250113460693850950364690405092935365549553823841253777308827867757965064740373204287948706970113397840018087369052885255811717441092804308072766659975214090611333070835341017348994025018134773680492429447960492686239178650334564655310943451798489317288891094025241012993762167761252076173391605188951765893536061996936868836057107544405867658417375184182329011334872078196152090646206918401843440082111628465002598250917480438274141726476386011118542237631025218067272232827294845788344244253554926637070569986153019482492416320020061767307092588571314105042545816611513425467239489272528410072348965235837319957804194913744478484853358252163566845221189328401399162446149457900340925555073769212776087280450305863882993918250438438890916976679775984011757786074731987956303942122187162946999826731021061792099358881023508248458351395624343314259801023704161523954711079540846088787940182593666767106878072702928504642912621439178970241400228919816025770623344728535097693160227885321552230728948013633815185984739304245023568139874981615268593779590153879402541442794472999480157716298396357983783217068037865894908447403240784646398161979107711762922715548487330362855876562701880320068148017623843922331850532213380392470108728800600414404474786589137391214491433437146725189957487173947557700104179336585590398587822969754133858130026714062854469505486946573204808101392109652029104641081538599380059159483327818975804890648636913678198461779962471553045066881869404956315295212245859949584033448838538240970589505695981074953271369257301729515913021705286451236804488660500873490002705135540909513088505716685508906429360699666785336049223694638886172786791377835635629236092880050955883060366079758951159784901409532940863361042103188954735359990235488001173368533920946514458623747860607890678299981214923844819165740031883654840299408430141184552980772774073497442967799922489306437844796502923482726773097130576978390568184730090836210405002457499677824448197167774682265636930361787573537616952189506448493393219379198966758156089627614595398081092686737320813744494745697582264595880783950353798704498431851054410489310745507275490577937061382003557694267169740300855076960436205391401137943207704732039921554229159919669739139468241193079844677111307907124426774973490988660955100384411153456900257181792945010544834358575469613127729243020361980548802077880686733272638749112854915008314571390524836410909127735256104810964673403109242783099029707216428371087077178318423157212163310384843828402880165824830000513094488941118013953144851318516369242761033202046990481438878430860985399659612740557056644963118998251014656327664617121239421625811676029030566864746260668045644950480978915035827530192325678831285675008867448230823578386429989530678976484527579606585420696629959184160492085671254967474213731144875273041260267997668190861870092880280215413120419267803884549612151414358200701577766832020337499899072652223246274363543346458815534738837470299969583457139610577009851823879681194567209701014985854897534588046342626902452789680959382372392540964188274311551231429069979022244121850994516190415309512305209996422105702878276350069919234501127612312500573805862809927272677395106301712643697694170390145387980329260509542801672888948632723180199126534547646747349632378838882846358774082872425851980189504290914531607783774062425097401095176037734237259258073564106282417423102670826298110478357904760370116409622731987309168998986863548370183571345958718080011177671227303342145788596928651699836187521100525433856328649849126525277321044778319897785083218956886000839950386439049046229067779640919559454813517196656262670682963197929681471981812342734871588875430523477727115073574635627924916870131506085899201072865227919594427809440069882602167574693597297384140239172367879489546523010037907498427564203243595988303551908179864628546586029384136496031066359225176255059325354191567768263509284062693150909769665439982006348225152384875454623213085714681181537150007592632358609810658879318857112263271393190134608832025562202492710127318593030116758743623357623199244447098890384514863777381500286740467135306930982616279979389151420423929026789435484081699115854819888597072414684619763333280887267286956406752276449975769657275092155693132343373537872242281980201891333844098414826304804612146492411744027463097742795395733623887123428726736669752838570358426770341899914057928455136063106984928743700652766131145055349922950118185522359615883127162164509519380725280766068997855170608338759976814035638278887225469959985527966072034762836590912870448987186712412533952971167722280130769350142542299025615010217132130462634311204484110153198129392451265581696033041567957444426001454212562620239967649705288243692293567660008371254613478397540772821108903791606830968715221023177748461749766477353209058383316641998187759303264266392077000906047141989404680602667844176492619795767458910794482031600681641820551870583000454831609038276162455185798490921938711234580060379357076284244790226594111691591877268081578604879745480322139204302794938649462717995600696630488621348459144397659427861177538230799011710773263790250443433054119831383190530285065071881181015719063972341937456656931266318283111280391400929138696157237682502588908211618359090191683244841966758803376657033471873368875381404499350132583791227570028495423819485233260334275596607563355705393788644279450332986321889099073020506103484260908853140363771840149410992854211486243668817061015184950168963231835934030814432075350221086515382512908250482509420135583467357325544567052863851151657966503084135407678781375999566676142940934275627521812736634621390285251714775063148116911635064226141092522937058481282202382288187662990400182523651523185141528526864016282347521229058381699591637304119545347167320368545281008079015841864238420102558121676579209683496193739828227383422279909035028277323720700224124158825557585315490266067155840413338241659117246405162060429793775999224765769411035308207680588467781580039994495023683200622714222675125992971542652236127148108002351153631282546704692104056284050659775728987146950773035686165173535320940847978482359302429494863906938161187838231341101617829837819897409895244502799546128621453619429352768605428636354627756559915241207679332975242549219677047455178166958124776123347576257973149941073974238213839305219821961669008590461294531850484086232243827325086790494374863072241074098966804044115106422726613673336880846844266895202774309641731282070585469686732762216457897678430902312771815911238704926193706489671281595505058461301649871796630110784754975313325202417528902285853384874629002698919965686094489842048211710949007533300250348308443149648873928162403938924629193845294497176791968611191765335404176981476409442101171557433336295771509126704795783452942689846357346069946993948216349199279020416325528641558416738578865301643891978066714217833611309343834455823883512647627720630219732790921857467572145816529398617687059798057719261946447146015370152742755181170682407646999928721713183729198039839082483474535665196274144807127300280721757855437817905152551706501362106382783691250993869363553164346065036593229542043753062782147019090194525302495776373999212313737409619464736047169007160499202502127100454886256619328064441686012521318194627395550232052407777392104877102479931553820429485241078592488528360103903745105424878883011726617786826782220174843545228798298123951788114909787772987238027433872384644109886250071553728932591435746834050848860090165105044131427248181223042411921849152654065301370867703239336456749977183825833577824092525595154352217239938153655537407076548117421660035350455788137106985619108025816984287288989033912082929456319555559129620010988687038945647068722285556425511201347592169061980003156008646912843461488744123749736958645906760734996591483136702634245908007575071771105682236258588692662163877932045275287870713980099196418319432962903158824865730805277769133844097084352811665146775997657501568566142087183119578091066035681223907382081441422566629849048822514744124046066238229953667747584195495805553541863437070970503822134925984549222694619681353664439808210058490925791188253036411275480762900547993753240343807166944334262312676222838623299278717231605974104548035489451534582688809417015620857094263593210208373200317407651345324970269814954020811621267295507096169506898137930186191967592869583986517506055682919687527821572211703452845184887250941008118066568152462963859031286847130017894375906299717389646667851426478476306940440923019069018347114277054861547910861322114249221630002141982934771367862055515892196121067007362907362551803007299008961391626773465052280246556385984384316478512888406136448567977339223561256505272828177792489602573314408174275145175083750591436560994007167009395730789116629611495372420920157121309713929222114363366664136265175313781112969211811058260966429312101299512836169219041157429447546868116945509174676028569342941117020929895059346167334426465192330144767928800574855750324921402526098176114025985408449384714900619330707717106514187546631700740498232703726464435695218427744674424958368114854079618766711073955926246773734201620638390214513386197248649951565863178577979002468386418756165426484221948914921579512983183763008272384738154542686907403020004565473992521025103071665110413527526928823278554756284275391737483162305659463194951661297382921890377267132507759807013937023031673221668110790104547075194286080173244372355136806060777066288985331164209997669775388826262665736377617897165425530723434644028334094523765865909989065061782439304067640876818580231859222062287294587988486297336785972015434242072978087243699917600985763397609406254923724201660921052490544847159114982765800274871768991845386309023177931518953379689577353756414150601308436837631803556214065271716834905485978849172594740187010395680232760380603105451897477653188460952574267557073282308445741043924473192893728087388733393642500687656879789803059723414942401834636274495856812063035324522500039463178191347984139973952309568075589643339508253045502919612614537195577319677735984321978495264320228678751962102026114896024905639083342378496213065205820893381913833476449542246289501429478128607913987556858229041418945313511783370741590040083471357647487097639397475094175431737703189748861931738892193262442638738688906837607652842846281818187438633741644707101222694869403613487254075962544839474055837909513938155014936536146377046200711666572575619732537140582477445415059966169229166399898288907263845348783841663791852349039265516579262092836180823849476186713840972461280698254141548145046726862661032839897559034379580251837198925660086698317118379324207573628745858848708694374804780534802599862536927626544664569405216624596111150165589532081200898412506885864697141263176637192914479205308095434124426541319439258188281148271558903339358148535059980835811473876341995281160254746244360331384026388176931690387647654596133962122485206810708776128586398586646738675970139723113771708665554659883344826003452354012753265810905007286334478914125296859377283438816706926311517134272381055538442248222047333223087231855311636275104652049155170587548987366121314771460967031526020962162945348787023164829093338671022276171760643860947988577376552241360207206221115693928665938635560364383066564237645393679799005930107847970712208604764914638497264961568860085306159941105527692535490388303342986433249986445512051048692629224943909393881217752308412233030530618260091023104449149300053562256728041748174095156776356372922258164721750284167859315366773873062816975095272477913844426867183712130843723238781295674182233193527327547020488152680547716758354613302771635554003464189498968832585373920342149141502281383230758830917575623370240101455359089002135167865219164709469377788339213471337880694670200859202396883892807950291904284863921989956153637144963061197162349499843362146759951911041454193546424593450210222323719565991332989042129302729825396667265522123848318549191084638647381313900512200728233734667412237687827707669546238789895606716113141630618730943964332157904483435980749535885079063905359188110064209625606540109176173195209679194257507442278043807358217276441029674818083056227489664650039505729557873797218272837839651642260061848636193311575688118007180621050907122209514194318505922398663354871957977895631379987706479276939032858864573343504935972723150628267171639398055295067679681366592710020156611003934185852099436249874144012549637561712592274233329381267221978035780269496982816522518134709963926881160396979446326879751258743261266537861202850495509652690115863914584559364735407410917686187239141779582442389216877212260686786202294518254290637546368091452796738697615343524620481290475480523702161551352218093918042972019021063858610636246372087097114573732809424488377693368842494002768568312090531861420868199475109683443134506337569374909181545305268043357585385049099238895081873668810937208470040292014050767830987418040437883560698101394071600576285143405655506724500495592319482283054785761709690585890524445173997717836848936894511095414864266532889328388473190181940360916283193813695105941882180160003592392803160204937423266883009652195797942345924728871287547420617293428514944397311707350036986308512249828809574036317902744575547487328739304353449092596086616627611837844831025280683456583485686700752391095706757292133385991949498878462570668683435845346442272041953286101625003898717761839391623662224357464940256909580160888428897493002882583592308400724195102193943224125347139350998442080692731750705052117152801347462560244009712846517891452298859932595884139985099799592400659404455990630189605402758768798692657751217829847089127917766649448557708559107168241347699463366287078313097022173123568662790998111710555742499370271290761714405942064157962824166749479600950704766001041761812511242787876566659090997510845738627132660450585417572813436536948093111824594264333857833193386989490205681941493085036821423353853620771239535508064764497472142046850164854031600391505337543232667159818371429299319994924631237273054235404485322039510499483971841126903911410753754524766304236158237092741458044955616222817366238299458209235529539297770269693546750236160299762359422651471730106048982011234316261101971481471613265423381631739096867680795832912594623230947663746889669272424865844752030607109508206265068164163149691349450560242796542624912798509813833189143550453612396528477543605070781323347035949844252469454628936622223536542989426354498984184868336595184485163800823733134756068068556621012935820154679187206895546510369029563607535240475282799666300392044196658142329252101300326409470145906628797888099371231173588594491149776770401073265300992371664791966267519209239954773246570272753627444013307529666722634039803752348974843609762299372036859173440191089290030103529897551790076468665645911341821974929610792459966817219455770916530520202757105215689789524509165927674061978347150569107810533091717087284690345628484224775792806321027127326316017976268384115562429137240810260238719975775246044909592775705604056363544137059658950310566025130604473451664164530634486911986646567270697080017996704948650683508201895742286464333479178581955854967332113961765230584434819598864385142531618081133666249337467622632775470225312009804837339912358230432633512369053207750148156812152394101163434808834572114156878325817434769696040322696988794197846811962624258408788680018405511538461438639155523419394036302593033280658444911174431552617589895002947298382484232749788355712135996690968978936629243339818784179885086507354139268436540842959904031548208995226500810154724112415607515242839317066299344081661492334534506485061190224434690894625370464333755576637063117098048764407917757034314867616917309194432326073585443286830078096827545402330798380436110926475288504762124849317939512594410456362071471421510782305527708709170117618238082314568787979557807361585399361029503489765721751003644555047747262919142977993800949711026695671229278749517235828159958696454589633546754729351154661225045355957796871639819425360266273517520644036109003016400641514616124975868136417881163799052579260018749561141620563071332136345260627420340046330566441847976950423944217528445780426046114568062026831537027565070651325315826315715866931342080291771096537528353721610368843560166101291835139753876364360486610096785939705054664471483155804061307316236762643112004641641086512887238844867794234126002953011490882485792085475451422629437711829424858542884644016101734296278584505963474849988339699590978724741756072254481948819563467786464968422836272535847135541605874018938523449464226561597644916519865809548641203426423933176450871856858457018765070309411958709696852375701251222106859766785925215109916082076535919591511368839049552893559211703944218697578055910285194513898367462015936470266801526319210066719890338388198866853004469092306990023565941226990754172517259748073527066278988215659351605733687797361024910104961912473498572024360624889785002713790369081364956347654433234497956130952911000919777762950468607995782423878220083516212840038142607772493315064007029330225013070428896032156597847234224519249186099811641109712817232147142860560141449712172574393346248743701452236785998197684690643624693871875101380078438178642418073377919298794619777907788229338795023712520662176807625103811137128292340132429160123765626345399253969883459987105217909647021713604826216659181460836752439300511807850388416274663962059096271966460936998944698623795127208869929741661348314388387849875385066098375529626933727647366336226624133977724916657447269501308803876776575888171679530303888219742730853318287259462650577963119505774200195920273072852601807227096709277709567323050998990781791690968428412431135174573290319856213604321570886579223803810023859724551023658464527054903827936618063469281782384077411255081461118066106591478009902835592000940683968010855076661214797685472701598227407179643335897340742917896239669238048289313523533694780173060560706396974717759221333497954569458111304572479780691646799294791620018629643457900886441403249222913978175698584290097042576250251208917957579328728867532815119560184926440914568704767865954810823749382828962091388152653426654929846831596528808854454035166726634484677406638626978020040479370482801054232997475255542796830251176292455022064282512127475315697119385652216692505428286387981575104773843851806299178940089546925420057851981494509742100995275355891718392540734290810243587351340880154750192566730876663983091038139260467657102591900936929914662730915677541602704851571678282681160055904142993918323277781878968805350626492567740461510637604805164031215963041190285948443901028400369304114835645093839307941851075243511816137328501138772933684127188583902676392946626613781561543430316165647991320954805917660704232620389909745797860420809772143319452675711238823438694919219830185700687523667024932060291010567011622224594558004864935830173095890148751539901065481307775034564593507562485891079970302791396492690915017911988508728047317293951147586314006036782556669107884765964002924921019780216257718570658227910935099228515467410207362691907342191933051643695676107819922078455882641238178278733365438308984929959409679799232668854020299621973827116366630511692598321738207321816383205906900214568732232625878509372903411358875308431240172811045096210243979474153606197106237246881339983993056484783985711276311982133170435814567520950804019698916407244290157033259796392876436325160227777633629519292378903547723869009381274569789146931088794732980870785710539059361353146635919205921842981645947412666202436035595489254900377175267109295060269545572121972183303828992069376958482876677001177537396811948174617996489893420995705692260876181914826805852340592167292727092104752321652728530213062496828823106978552008949116485464290574920529798409571217544256843996865944977191906380897741311340978038121828919046130366672061404060403298730829217768313927452476515055659630653340051594079595563219394268130791718438186903254713441169447868501300002303347552447031515489402956428780883424626805914478110934111564267302858410964842477975608825061866161196669254598245064119060524724972743149617572943359538032705003790308182262344039540661336607427405259869524640280384011691996588533754380076965761803702875692820105895992712868724482265780657357288861624203909150675299620407870344419119556919680301266625207639592972155744203107137845657130151104101233486131938703911949743208165290894061086975205108434890580918975719224723164981932718481365492967205660544546705557278466824630707221209399377935529106670893328841374118635271526612162975033913506232680793912881772318611719969577074386741547761462510378544762025961853485700893598733565638617861679868644476038942093764892590719707849066658132895802009320375700704632795735258804608162722130070478094088255499446626343707751741951596361146092176096207010878165663478155198584408898857410309186194115086224627824688817207270188822902250749973840873085802072848786848184268782237275629480702400189524268246894159728881725672131024518637400152078552245486765220180597047097204511998480621271785933997980169394356355055914885915179120876969712953629371397102056470810106836306715313265550796714531116000014564228763202536319298488458359551550711479281722227021243060255387811954669711614673344819359180787452097440384207217273428967402476035325215783834695038030200654241239994572210240026829816521043058679973854604750598711235943203168388403981682575056577967307942865351225021590906051291669837484919677350709975291189091797558823881212854480075915019273566129559346604214288240869332810772447699445665208649209503784591766870432980918918786003367011034753922338141720668691886710608646047961003192387167268416892864658353194891339599202007025307420938501307881248904827764302650952942854845202853527862108220002557795780742434117799651046004967774873034091767599767185020681563438649505250678120510967813615921211164548054557893828916843124911360528065716691523479022977706854471461024127426194530985677784507579730818657578758326036304231229969852436784106893559390562041974349273967691733513325578998169130279363622187464877500580309027782476993972216665940670825289843110587143320798111055597010153323164329716312301480963385031018333983614635074223472858791639372756195618008048225321897115674924997324976909892963928676723525152309767050388162481778931196210939980257942443016804524140158287486209757645338561957280925935480214050853739955183309722655275760084073093550630576735775492321486196544494919581250110755458571359204005611431074242861955011843699922503949650621698250140117175326174828323376189268215106625448386180293681168568486103936879173486849086528887444403528658129805314162777779063768208534020105765279541682081556890179890482157978859281694299232271809401670348706512855157088636691673245118242636393643297875478078890880944300302237994009195469503126731797663672860638571666211565276277203049948051053815446568655890603138928868926217801339865578084176736313734601728819151669936847290922632432584953098576816173910856059863593928098338513557920284898370722694703613675206961094460368544915453749794231185782251952308588741738444229699856721300685167810333509607849609873497903682909568139583105811903277641217808629247980580885593412504866876032715123078484554832513817970494292540081888110755910310936618891140788127529114922444573615688838654578923882048966027671537391820945703735349255122163370153645182939386514229008118626587515064209536872851933646694117230544815192333412838412714774300950263053872590297445881147167266305446506482353870705431286230620832301474126985988139012457388372802800748182859861389355002016933616597364686273511721173349270573770204746066964846161500918667044619944982748579269677820036694096842960399869905053619065606307274022283662418277994226429347870457276649871255196844703344895683526519819863071493835195322717866565372710594034920393692458865129368446683320060425417900296228880002689343666264803519705248689717021852501630996564588598526430443236098055696637860642685126798177150840826002635402026568127371952143791896621759373818972135713394945789901302916890083188050695133527250850232102414970245532429646089583281626310365410017583110435538143895080540213002949408544903300868573499611556442420504529655466260264381299358278959600046430373480802649647767986892279372160265810090380914750258174641674792596977968945376465515369032593591396054902887937573623423581748409125159365015020328423354529387162074202747180337392510886808388523012790306738277126906213462580674871161808109177900632021876913389433066590718859781141566703498126634041386912023740205680750413163209995297590852011912813751934863283446961569757069116372088607202951559900491095081315119637192088357750344577984904200743989961310334090883121138757768034481762327175756845671059493079011713741850554771089475811875084589254881198803071814127001657303785433008799093262983289032524365269931294936334408404746162477606511846192337841700224930846175923416859646364525904635020474125235796443520187785634053506087977541727580110074759349169825596771713040164280811934443748125071244515195798607050144518153575730806873699154231179192722954841753731846222949430384046204764075044469852566266772126544672079740102486542556639025266456083834475991975715783594817424256255727256493662512978405600426059979144632592186743715918980293713166349947697327547750245728468539056913173880198827525013695363193711831805267330355365573297291431006774046286063687255959471295135091256533286413317907113043662297262512358341970057103355205096798434654208232493561584495013593802924533104455953135344526054751483002289132795877889899767502318469447104506813159441771984864222371214888436536975571705391118806515810186496059000634420712018084452873860127501435321674760587999842998937298702723056853242058241796058126100950171890739380660636583889863196694679003696688894018378935094061197437851344802259148100375376595817641504105548470078956888474388115279615459931123382781592086701483921305129157336498745217163227142353596368978758104634964599504972035130106903376129457054001706808778001151013458068586330891337019166245867834976254436714365915375154201850185409857105423801966174434614739545430609632977043569169570051199804254841416971065108045820736974169593901083403591452627565953891941385171682682549352904805432051094724148853228238602762774717719113386447322229231293158457265060556694900848004581523470780621986875707989981468799296269297340793005361906845435708850025564414800207205938565155678718570465318264362613483505877366256651617624974358074480205855949190577380734323537650467607541327788690817293027003934045812175522552448293775117456146116535520468628990108372628296597102556082663908125658515481308198217999103455745011168393218346966199637639551808300898607760997743893492487906505417347561784804997972015882387361699586109594685918949548477587350085338563306652789319207652850709466258731437848600273304907576949880543247270377356555470327350103947996678335149328258890327211113667158787131957015269440104017228738651035335509429994248756780056291263205430637497655257332423354288558712394294986028921979806710676314661367839560092387101887345583778181101919660450835752920672225450862239336799702809762913064420733607282033854612360549101607053129069526913281473026079412143474699683334804816601078097164260866762046567914568847812924227513532693123404276573556802481850118261604664829424858934051780377885350127217419585702894230815730772807609600715156583091018314201045582925261294992604366907447610613239134009657783371970073437125517783456002317244626478872723837138063179647897271873792967287838506601420736045952265365949083227333604571949508212790312872180907878167192307759094916196344351160198104420202212433181003740509568014376644944856843367695884702986837694462010114060102317700622394144271599714850311823127911202080414158789645315163707054773994490452196260136999297411376763022198261729325070266889197004369269067499522116027564380428198213347162270880844585271570794130316038402503406346509394249751058695664649845040436626105718962406899102663473312237715887715860511319488506740179822796746504977883385150218807993521678841811658060394518542746784532560652497823907184123893405435227799998356720889359577278577307132107533700957315016761798762881245059698919224572593887178412683982124249910046045921749981726886147342970150272106828186417194864435322892870200786863315323212735744069113666787613627233958587589843674115681705918484518231450638551684807642202468072638122720092481922141007867568960604593233250016062955099610102344826499370401902186538398698800025143650226534603552930772405841226658307923736220601894455629959243076281528364742894099941110615515496163490275023678124304449942161502298645709964965433075282107512741526501764784080040905511820497535946726642178902496323440292715071367713652746031708212940177899138140501005091979075287535165907287641265852098055904777595547515203518222595885528193181627515477737979848720090837160036024400656531673851728828216408486781651587193141882263365794697347873586952337357352721115941937478424757127096740299835756937530417218328831191950018044507782675566713338924688934139944924588075232438722037334827136030499637351753877071186952852296638654661540846517256914130804363489448595723909101022014499527578118988891335173811482806372230394562800878625633685484298161734132970603011973174423776973817562964831234401390639810619533358077746826265181506046967928557285614595849063673460509202089168726980231494069713030317805352806168319228809775990286156131382964716471109693018674200545889510565219053366127499057601415323711337911904678298801768922929714841696986591823552873969276044237738581456151531923648806159707910494815062800696951440014890852910021722611957179578325360871277692965953534552332480227630206170876113159994856699669012517031495015057835153476773338113267154752084627222798406700458778751272699572877788154467772251753010427591412680178340571728066989050643002620634461045049353393866629266531492882970449270448624300428587375797420506177376400284660924534531008532994442495892600160412472190059320633215190077401629898963061415931988213209722734909277317187765165107018795756612400487476849216201086189016206995649822543296276902167621983912851599135570555397851899201109221000654770496635684008385105268182391219251247965545696070638769962249030871030057253830199072610077559325529850435332699229960656717388958697726026161528797644624277241733179077708362347067011434449509824486716057800818396617291568450193649901261586693811124380572054301554803489356249032407857091965628807097668685186789267285822542119200526387101656334178508450210940339083086381984262958834559013558872288361835065422977880182997654652470377674326924850848785034826820980487599091475608546254206055879319347758424636236853121611488282235050943428626263537731647065700852322502309816873243016812644196647165597440431445432624847274069166751548580407376595200879244211253219749065260676104069545785455404688689195879963874416437960286257715773359168002054740362697516179437954802098616518626699920516863411855615797344778333462648631572641560077376910478281632073107265337488259592351184485636993305958682309209554872971602157156612677969128335715186174673069690850706202247210999441522760421663295762180126201730902539893074980303106424700155843658196898653217491992280471655972196483377184800223710441536678638455138110726701987440964597476592707095242144141577434716763653447320122526736752107663083292550516088686201625490593459676682787375231854787522588916640578094296380467548875169827356361653388711263741558884946753033890771542844082505150677982996093030440933235338181564269841008686654391483633902122210593458573804980284529997762741973979299231432306651099711196612523205714291791367615499231754986504643843866085361185568480090668492049719211929185197363098821079978598688640813173594868701194341236485104749475371125436387008703215897977201959269670239557072667723313316330491254481432175267713367440223087080235228071673508541530300646454856854725701972582099043046838796558288660220905275270168657834942985133405115302792356212023553599949710724407832245313745514826277554093548881582014995955680755468862949532907418561506233259023361490058739706316340344672706456601200369856108385001413131935587173096652315979877549262058953301026922794653679343106814699733741757804072595559895687134605910539225872235628399755234959848016012923672966987073944342799319233512827101920954029564663410898437498228081564018219312046955509502146124318030848426194608505825083732578110192015555560827581168591192076379763450695126837591652816649870315133504988652894263544334256514934323279238759283438679220692540515407780777064139341511236860100257775705427759230984009079224879565748759114875113892710397117858788600406386001556023672926298766536772955334362054662751960864302197766415416015136176864475523003566467409052948847671497360867096751343884631155423120433966476713824734745416613825828622469103276826273200796554391340107888174352554539259582304442407536955124013592640496528192577668600856152082594406865118080576326780129481082142910332989862420004953386809029454879528487148635331940951768574496409599756032861951045440501037351736776847112551634378636546191838734759609106072832603070522443995775492960567323384555839479323520308957925785230823799405840870205279282829508580060488140987931319576580673803877407088559739394867958311178786329668885093629772796676451994236144243395980509605272059834743193650053590942007362886004802497143462199843322050711841054062554535950145949969565039933362542690711353243481775626269099111769096915399009933733024059080452853172078427162128541856221021922527585493186700337406862912419991964488976098681963816287508820873066478480005879103696629711433532695515346846462218326525730067770982694047565423074991551929363087635858017567244603698949542952666789322501423984342104583907592243522964301757316496249809426514845901388516861484618716663278246977741296171487053470773641410444389306532694150952389800064924324910726345316845071040001326399867788327275781547848143079485739003391570146614651184875598896370028122850781413819556453600518081851407174295686831177772225900536021802176520486872430452023020762103453671082416665460109150825286733395153362509367281945672960577566000103971590166214081141405830047151552636256393495001210597873066025531011613006987821657907794611870092682888765394879280179344068592589299557655056478950530251044576660885758338929641652523687244376349001168939592444773158783012196740707393524878740085230573037596452936234293733693870833362114752340117292213528008720731048245325430076437417770893140338888551880035212273795155321422379366369114859281104039662227869280935629624129879684264219443585479326472830020069663896386232137397473430879492652362083514785613920404195597588539562894137961468861694540280811498465833872795583399632287978203890611463106550714763065960086186501360290065242283070326722089155374029106778698630702012097416795302613138823530760237981549986910075949197032681153564127815804002289639750926024216398522630217076655233455251790714908254774132846288436551870943178589223470796795308268479431824054378973197241758033256287886107296766593421175194635084475493575783183244764782671825665104121310646716708158407757534962911330694037282477391960678799193318942022657828125150529611690977951770537222584087763560470999898494590510228510842682471963901459503278412132017742372637312380922549310989804647273132990493930366464585901091965750630261186610320652787005803765904094472587642924149566876734210683003389879048936927555730444575427966649745101119955274790008479946024651456888210809895370980462136533021987243397656740602538468789585670375624889404546521551429877751836405266354866531719999410904104294046728348885851323379532145693388064206924556281287023187631643761686718039356752854256182758290958156461771806219242763404473180661857791879833318780874685382597590845135533641252097638966029678383774401819853708623833317605679917722098590354427407461415387860157685945414044751679460270395648291883926656297697829206975254554986349211863218113964625865549806983261105065068772709759685868369527583010414662699609840436107423160852226194280778110438333555952955618354654106574120303461094396567794819549389952072613150898925063019392726362809542258074003383027459246639318860559392271910497607757956377679290747089374309576128051659564949457124138234364785082574390616651911548744103660499842017173050405511321484443305454638148825661808074018890919394365799398228879726335517478565413584037142912404769491514409012641709552178401512754241174278619474458061773760237521846341598706165723636853974684943381333313265757440731195924716421344028266950494036574863688759967024744235533670101513638119518064089464077215079805693542054675192296476409673397306717255868093524440737100397704546425352373686424379631122316129453505778146459418012378877637237917324218397660707791973093274035440447914280478282261900115672064025402247350573391083084612244550500076077673855499087340495837550429042563946985081332597226121785727513061642835649770716167819144533500528328067957847546887664057115991293420118027797118803441226974605751061912295559343136178367484340676143700072855471002292708234181095169157125236925317559076027715291751751983577771913421634687454168294767196927597042538636963313930436889093583125355556090326104590824846491606518586348255641604405238804070844213821168985413538136075922958641940368683797611255393938450127744146374420986888854555417323274904230351820175276262055252145726405488491063503014622662552961710616332608690923393619238849113850544701730767898902091453089799520922356466486238728917159958907092754340911296985956577766629779768413761410611019792391365833140121189961757707296282166363714948017570992271969634689277386781181149372296060027274771521942352784070045624856422870371530911004987583666765203192660393826912804328063037917075175780463209393998652782424804858805140427635793510835076756243434204156509800369652650131281550830170551454064146198957492168477723472011429304341337332303804137216173290976601540680022820154033650572183786547141908568659214673189561818636312979924538841284731580595686454844544003431670895956795942819084321561348252101828889729821183027197246982564610592729837784660080377591162282072858860907261342243475139835785956168769740659804686796578392951105535884344651332110800543461174138845071855057329036580777671356649668196362740329323311956785699197911333146638551882357453060170566612873352520627747238008387435068613872923838951448843897775275653871356021209475375587029796298274703165100435075424835810903255861973971783766086587243591532400296591491098593880501690117204478460493017916694468191367320518828199047831233753860993887328091697362521147888256938317327711369142947217477420894650679438225928391075747692835796429305561231058814481304653664701389633399774103242760198684654601959061668857464909598474729550927079353782607522476462584817396740010144938557927377142983299380037143968359473181321955917755688726807670483093270583715495523614054253922717960103275527513834025805322523003953281218459431639972161117896434877466119314037918367283106764623362098643051302963965294943886465391389531315015261717974784001194498612986135570199144343190699318456729307907478573406017468748898376583558538934096402422434123408876005167622378153417951457845324269109410313614088260380479864145253133255695506531134118802191818596610713795473232256040286193569819404016016483869013613945918844641306455499357507063744366047915495152216933219683219114711143169885223182440646419585958574598850551637285213213785298769987390457242329210591464628775446390566777296222900386504159424750145070840995547263987924267531164550017899574079106004425180902132700068832341413548507114252854979699944681312439086458571378959915805012598654253581351849145736394030040102026034967096845544343018668371780231473938342308678877060048550197906466247714543259274817795935553577090901648903876067467958731298295509894907165695411011176660924819471600135158662676831901391351471530707326582334185229848655459722702882481308005635576160813212265518498394486413375889158907068642613328696319638916429668653460530672851350527143365771840615342441334861543358954530221850423267118978132694531920285996441405648817115665679467208529420581033380648125929278710243362082413411548049687503110600210611695033707458289357318878338400932402749772086458795532264459468634641430005769533586841717475259018745214030406845944365306587420565731945884892605690476568490218312813337724794750769285890859569422234088720918913333078861534548057088313119424972995719722771732100001707847820254955997764463325898030399946093640582813317770224416031609472552947815206841701329321484471380501841624819465944057092543977168317915977565348011198143627371265941893204061818385472208196498159053323898318745220919977929434415037318497921444082823946873555182530917758777746680295134618951640829950753773264778150738013915762108423589025548361120163011113279834772629954382855947854569891784363803908517318117642847996090176181216668593754630786916206188606780121404695465646038659373765648851084604311734590444361128481739360483038822659284550480164412837398377475319087038280821210353325865039607836213879789429493946787559286825797440593497486027971437669484873561674631290119722527828017107295546702490211522000832797049832641504083072767978582278310194515537074814335044746737127828793184015282794406323840482284893408224810953393451558600934855683231661226905662167791727635783457425164739978587941016966404115582520499656979593902119869106188659055510688769547417526914208041868044646830525178297279628256199121627986547671000466411806529221183986000342777990709696864330897426541735201672994925612999928301852798867973897928903258329196082295824327331726648215037120164588702063169850691149266616656588306677386043025203498488651818819604354255321989402813342914356225591942593000901822869215607468152653645317074376973011200408205026570724381468256504739120922860242703090480612881127688014874820088039078974410226198310614940557999430217675029331059388436374888599849851177949056886408864235661888956699399034820561774770391493453795587534455496476770675951061007227390696623929230487019797109902290673935653086327852235570488442185854834510889588208205134572351679447288700905904854895175457858842114312841089665345847315063531104428229532331805758922739784800214074647937060366534215174860212344890118760489325972421343147915381621392208837817342917539776480620401911703046937721159351967851142979232603277440527968462455953150373670987486308906194376801571762438223424266086051919381632053230506393407340906373959997711520210489630325767941121061989964503760608460574440380880389788754531243966891034073633701386150794397189337718879643402269591861935298538483853722127602848833007920501221956201153287316144031502265349353481416963731030247811654029113015041725521007688656534332515223780536383621939197199773412196697217666594506650943912849344384740813712922029709609806755740599468551668731595908298308649645849289693693668754818142124284335482107243358164474901249644472734814738507141480947490760632502841463646233211992696832775076354299620544367245253176489964402508365049439924413911224341366080546643572008934469991410781642105929101012642496906787535282197793443994904014649889780757834929484878025095562223526348593605468587029813773640961558472109883605548531415597528997635788561318416828666235098706348013002495494937326858942148399600069621102804845667992312008270505063899880779548142217205849246372572805496995815819646338393420466291256210067419429508018555058694166442971735460668178758768772824997430313579610255522398881255797376431011252957508243189392585233397472832425763625384925282772307781269604050661420579804368234806268544029762902165196522259303467297322256052273639883518904355143152054379650302542296974898917967846257011250084810238075943869321330337747553784829775516137779142499456104061768173460142044336474360452773085979311217465238231422273372420439048092692811948774761246086760623881211637710984656604699832101056846401961612300413910476076555509414269611215616132898660545880044830832993723432236350821975654718378436233512510257810792013417433153586303317918263120982229681806790685510073567419866005648876541546863431671849527542793048411062688810607228745903314834515937193758073318779916568776184173351031718517236337709071650776323512300232565690837542498360944669227348726647755445023411698625404350905064046152913597001697199613066731442625336972788934766030522294928636988400144416817036483692752400733575833639348152699279800141687516661927728787945372059672885816949368243313732097298625134650431080081554019255693883379616518116322114926161247016684978252820600859616308385302076761850238018643159897878380352856678334307547679792603912840046760438813822200997625812069649129462451377031972581017334865825748597410211441224188572261321261563049353539040023822656772081861041151917895307478725698023914223940604000282475654038223234886777357777518427860272910868577412495554751317544378683128177391846450356701296986253584510061534683331514156190038354825632820293405227098310912592970402202344813520983010960876518140874711450377160830690799772358555949842824718331672524775952227883336987436994257492986933288886859778429329322831961781659450351157007994599796616623360014680868093765956144339790185432609330724191083332297840462066410418217107713624313161649479846163320130889196264438746616643668425728141784304589305037366629572543438104960903047262136843077736118310892481255088907502622528704768146829403990826620151802002344772122180054764431937362543764978547489638434162392482427947423467177540858335157773601279275325096480158095615071679772354771647771599695133029181693262184014484518779168049849163477242402049225536435356961394750194639734399767089406617794368928923502732253039261314211021638415855877303143348905078397610471804957467770219458615685611172615510249214286064253712387470472204960480318342393689572543783523504960114112594634543060689401065046795719496714739968015956222548529641069846917649999369105756097597166732052669528724711028079590379145467650082477868269366979375005746452921691268708514240428485365139962779831136441886688411521942233022212929423709736239888164856987433808088784112101467520385776469519960699919730382969377702715634086879900924138310009890923436934794508186862150994003958639338497540423168395714349178381990059672636915922805597201485960522235859473769054762845305001149322443532218303344517648976242925751536020610773537378540385757822722213829983777764000508331806388209721061553583763467297233468876471461832357910413649613901275143600220736823815950971892629725990575337704606998294833309786505095778908921194318462811598405918854440394001522587495928518334775621278726103243392400208441882010076328133390463210689957485861973240721711718689531054554159332377432672508002506411265617441985302040889157270969859730428358927223165657738100552773909823558487090251402395723794680730280340466494381123055182985804118736631109295494193637153305464747055289233919126673455640505226713247388419503759647824088699548141956371404281589848698476409240498684575657351227781145129514402979069344630211698961975867493079673690245541402418892186392640630675299615592136893530022278713164926064563312135484695048631998271135514662791772456207916942651429719656328012246115117100600512734562312767663151753165634537221251728171385288785661228659518014480959244747360805420137101898930990859465767163488722867186812096847470305606878383103679191979750632213194460756667689959249643258422110139286463526482726993208029443866097457164769158175428095801732051971662782977254674806042916811072325125000127559599533733973080676898742791797462741130433533845279580406943708882593857141675686424276305955376122424319396255052981001142355825677580951090229789053707092420205473969765403134865351037526348227407298179486559951238323356741256283685654090229642263868464127642104489797603195084168995154841512892788148770361504944142157307584342746566092778983444728746068515672362138240379408209845889320087349516608854589769101376292232413745689726910769180234934807364559667066089894586248487739659758331776496846032108109042782590358184140649677381992553270542950848399948327928488708510622626821446057473380211585256392775388990220797686009955983588648690095384891544905634170278373892762365681011133533749526102142532997654958081114301393629039097665160885888020051335041321788063908048235305514396518757544031659215969309442496762455956139084646279501463672126946670514120047603276220200146924063994452614049623768915042491509669555616514312257069550674763207797276638627640163560258008896607990586842450564209109311828667037398902026488879695072488203046310701914657423883663357826204914547091275709767209803386278482754457468944269809149211272527065535939754124056882852550899429945898951693910474627717839251934689862814184123435200366987357415963705118523443625502678854031152420743014812286933922986319947997418744378925383329627053695429687388725756689919103779770784967218726790831149375012510770357050419088679137062728504881374699467023137778761398291921125539296539430694673259968698234601091072842249902624598635469613126824552398678606229705774435835072265584764737109043605755105426499545307918603638770042228078685398633526067136614604374655645212367481081941989068181961856934058223859258561566343342173837477888456972219200617360887632273682252841152428487194893338964495722642606965114291235851344919937657536566420007729204060892831501790159928667971333299679685589314024999617535278309544074484000137923566838602642185530949495479829783839422913117801437023815708469726959538811328654036582875762474925657765427491281580063759802294457409139804354123330241899214048085055295699945697383480348091027306284192541638781600248436833451686723894289764199124878424725463336019670513901856046591663437790534116046623107484080655049260125777263291956918099483885807231647614679526938410877692689989513207658292618361527082088471917626170740614098481691636259477114141167798724550382489374756604731121622172177393014257516560691026897617896019742316462825067126680299784348211519031473578328879628824483878579031472080391558972843901443584824087444265798679500079518602543350793580631851320213990379449272792058958765432707695278071710338801011590489812637966709217665450511774228428433564468435235056959775355912184800362103002027761227515129647266381670163536802218775078403594891250707673948798624324767428682218842380230990653533286436806408339179024484811865932953818907087672571309833170865759734263659026585159847961731944330765355647058741327862296103888842129223830640372069666370377880705770153737708654754457694593247377361157204228884236873944738899872315001465913208127216300324270035952801689921137456485653409377494950032425985354355689586815840568334891555075916149047322374363971226236865148500302290284760510645779187497148282825077843328353704330199315864615360083024327605045592262471617448426842779923807244724777379586638889752876178940376111976137408596000044621073930118228152016293288268473467721568083986313955304726531811712751724778102464401711004363998953818615930961705098721258167486892998479695640046217283664429245905781631412007645918197040241002427004294809023041017736019395175440970532799463894888131623992113491690176946294858555544657245144969418211451076036784211142711524625641557802873385385778360630081459482399823017139809738855750409293658166456573006783317440878524174451444078026547047277131998558055434576111225854793112645485053190053407079913923866838803146673395316565579985838242275131684671978852674836876150156097485535846523801485467502736735739024367560285752352935402974055783811391999451759778373496864334922522801437265289081132368531638503817759911818165125791508979119394142086752084884704899114767472742150740845071016487830361186057810683568675719048913861786859652274929129794301366451910205658778052134026080443057277715680439632937342751460419348772727849551503290055696622844744937490773657771497326370980393516018605243352889149665332701878829626679159814692929342348463517162663983533243824849072449578828789827122541917802278906903528752477135697489382063710294908078339713597896696485726468319986716365085201204308193584076821416499495848866864699085240143644183429180064235357895716582216003123810418647877162391271880850427923853317172755387309939768580716946356883441873561390960778041541081604165011777205348218578815588543004582224726248526401171433566813493950327700386231161347249194901854913431966015215391160777630746917518580376149636843348956198574576689284240243596507462098194425894417601545162235266171340399648014607566550715545734652524438235201071942186667781541236710038292780864085308367585079078963325083542335570027157150792022272262823469701358793806062679171235536352080180470404042393483714152512745604000342115226606842878788892822618911380704902666637614260083563686561354093661139903396092475429396696471814541903355094910134877501451177463494610889840923173393771056582888516810825938339189533500007855091221498992367421178235340451366959991673086823930916241415643711703924470712085658851984360194829842296939978292579925791188367209349369537261675127552955782125635709844780818081361564339941463951076888010799811057057498986622063957407973231303140055602745866432940314394428047860041516441009482943403409072462565291521585534194626260323105972542346142930432470230213074615986096066620065876926324409791334411714561813023892755864802541945431529283104690251945516599135222527677818776212725487576776235884802533548010875957277597602550634389688244454564956202699023510907325445945267999304970433530912032230056608405690992356720882158583614567071709507870455261571076369138500646318609566723148890152346779887447923242258632059049783568421707096920804328439335186871883381329307582442159168509870659772802272553063854873220064097575839511486748545664519297462869850160537605589544556036446790444416300362548893412388875623478078774769174598386425592391691514659199694853885188637027661993857945039445934195897202533725822305421174201442850750285737898237513304512877890693171802750176018407008538711583437047773571596987302259175400260979975249172656781965031822467082114573307109937238795648522899697957767439029148546549327033057963706603043895976651769716767242984464966814460203608978829232724659852680185532072117093525781218259787125688619978412863118959774052118859698021196661413307911094966538823872387232481921206386974554897565841964242540999781092908252714625747651475513262786207861456692585191969514381935584867760615960302350651280118485722765408102957340175291407529010878561764776117405265215165602027901275853723331098554018192569688628922954093129424316194038532277168678340854914526367253234376747211939558183382987056119721977190911532824267886551880573516692833803204106663046826160498100435849732394427064268562356073562118545484743801015031787098140926152641828951200062588075226274081738927808569797239155227784875791745433462055004004030180752371642972194039996340636063712842732587275949360634999177190920371257067464523329262188993170237654855985949137871907632221169976845743047919794582763850792835860527818726096878990184966531527331997041996548819077995213664478475480723727507985578746318656967877390652329273868076788604538105094618193423493901648221566516611029803620083263851041564947295409997028810548783383797603487021266707372931176095460212874436558798710031945123327874010739006986723650404949172174223542254298067518558030238776310050972767123654276170759370385033874006867305139653715246565174013798587279760967322878804488401095072465700747600857326158211058871706385386819480750823880619362766803398076826294897729415140685333049795605375203088549110207971990193431618999135455797391726783301331177788900642880357480371570588801359952856288762718357400409228027904043183922397715275841702007420920699226494524024947547102144134572856859335408707719761744580433541414601850070809400630713857999790268999127223044466394022120036483345370577756761856371461469382641324070291134888368330785435551647296478394521635600325792590190998112180913262089551199586176238834702238031274461791579316211262854619810682252100066281918786628241606713080682152998446675844893103184305629082672834036467627193594643283388797172315748831152474832594800137454190466545625495790905948479126169606832072651477841268081322146900325649048647453558847730425831046909246057065886550079685945748729597771508757260076629363405462457138822089434939994458685441038220188674344788172173335310482087203791855835735712034716245643201270761347128747868010945690086015756345613160155951616209000791713036496743115604092989327207103700175636359359867689831608705077040833903888718905263343949942328531689489993560045042431563272409360878683828817072837712648111571299425730426069655704061123189934335770689208604586695216711277109934381073712843090045489369403926338562954004259533022713548006904197017376864458732715520568222140628861897692137633497442261563724830863218689823090705796651155387236972589398859126540412283983127453725190328673874104709692400370879406563583152804723371674303992401372131713594540998800739233566701070234064537279967730508803674298894771912310784283430866098692759810097999996252901484211033256443344509601702049560988707539710299600350205271162530293363449249151845576142383578858168686211564196656854202436859956083881499214331596092943632164753416723859886875620713472220272124215844024167276468890571431385364033062066576479413880157457577785077364079744857112358945299634070611230346134725045319962436782342321720672818227982181769163000524819844210642722086191162905459603215178207510118920063573799841223297596596903277840317103538644890372060959968841574414336572333051713897010366637394198040134442429999457838211011683898019580448386191458666191516092670798799545482839487300813717686897783377485225640196296152989188225069635425745340410131935478297217101161062830207056802695447982613255060644315576496179918528992427359530604038027561948415931285474998249319745102697600576627548343837915566382307251322123483052368395187781929801385037317753403520132066598735173596613895438693857655445586375099220082744364166864557781094440575874347626764061164277835830694256065291768915127975011869634646725006899758719456413334108475486313392789482606669694497193858183017055704854680947851490463608605815421720445258669563196650890664207953173722683930334700358779139572096755048546222694146057939792478096822426192159970733398467357659382541107134452737078514462228458445933856133483422783381458518135317105439397958900870582474058451996484365814450633657705033085656150663880665455216321881016446697017278967901270700408293760857350910868581304240990666215590590076094278444197988792962130977270466484982556074700950309865540132671448348545670749798521264920411389784945705860170261631063945539484922451119964720614640512988990962881598222004136444189765987776196000139184258904238370725400703925083036574222684422468165388159138333297695686932599625197010339720621811649661612937327271566667132707650270174377674204454750473646510624354071167253436622960132609133087293640729665452924787672643471774241552373946732214741316869467293535716190829048807342967477635538766900951191547125769645753174560525329073231370476395776759387508460120300477823225317074599354975156206216848839509223613460110906472503044509854474375091245817678965255754100199406444787576049395240428764475324453708745442134803800061104394515883869879912007321008651652750008664148391870195606317226541676785603757940291068796851171158526780829195153490468786506200665842814237335752784275433361518870312623034808312065585047542587055332938230369987393391484518859664224737951423341932153817966851891656253026819404161346942656413691260499713055072965497135262225271736502836493857861754344413705290921888146910481232575599970264697952074229804814917399163522310839705730647074947303464630664553631149607514129714066492378002382238249181937212742263766305371007487518513021029978949599358382900443213499049579785406472171483614844679362598080012458887822456374373657431361795013578329399682066993427577220007115833997096792210835548651253919340850570692928385816491700816377294291083877372667791152202288916684156694611346411767665383299355639866371546361985047785887086168114267498216500964547591926354111589303135508611895031018418832063313518098602140940434389541213093158743744716953778512471713971978111877320501867335823806918323549328879526708977186300525731794959496187728996018116458975006860932759999281885246183425443510525564509983564551622911920927127347796144000736667456435773461830885529380223695836658354816221953720470459283001195685235888143075444414486022063875205962715495488302179541362534342893385305122747799136787419385111534139656273011561011553344368410061924708451690109506912142614005004250554262823114077685720564922222876024474884688631677254318337413211827675808194834388437704054415007475720257178109798338117143613211998700436995573683596012524055933505440998165147561868300700559041361402685008555619678995727152313224531884057790948705605142325664274883133499601107980790327729154090853116510441722439068316487698112556100594532912096296853397202255747707543116526084226477519442790036020651187818112229164941455416917384895016499884691528917740518555018897797369687141544093968447625255969219560067650750031721191192933184852870947869516616946903716593948995650193637563917233991156653060764788656925154284803264866938700160424304330986657057007910695841104976472315742580500695462880353005663597462843234891449357170395483108885520977623585000244938928948427884159215605779332867200555777378444719616219966189429200482524234507778182344882323322526304057801309780963703754861331069266114285317414869103203705150152078685641247051429184420946109007155240320260739150897867270804905851142904440721600796418069821945076996055433845256240940106782384479213069350778851133038106070596552635320884064772999052984343084106324990930005359829964758444957618986880777786444245811318973458069542310249257655809106575723725222081422403807270159870796790239691589971202538923893687264345783506898394350978922433560352218615284965244988603715859055089595281966416198592888046162945220745944181251575667069432694122072290019803561124588165866229017011639196241985992901067196598572528822953988646816011466120303496972981251765340161053987587167729960294968275172216885267395678132004390065528731363634781580142632819493775496392890313909210813131773928324334243869327991651779345588990972125363767201344670638869927274432509439862493851477708361173566590199245390255898283286161766773226529889154883004802337745663177854577201693186002362825601392403238291921608446375705346320403127069380815824345823497641749006677517896464832657275269348070595237744966641173309269992661146550274568411131847495978799804137559472029112370994350264748900725021964640565849999382186941688351851458702100733289930779405331711233878741915227303033166883939625122421256998418383144956415123856220566576049391495256928544397200477098709028770696278620524831318951274978131849744465167175259810090570862160380357810742363619520574653386183955760905931153209802800718617730165214086013450748912295163616588341943357901575651389790316757411049174511937818471163615857550191358048243817417882332072291288461150775680892297052911368544666046784701334922530294034869510067864269102802592087237541754740049450851438710278404550385655648271352568081498252287660873614394418821805690722757583360832378033449825795800123693517501358605916925277710462782144709119330075290980427274131979246405497621600039848038188857398682627165861599215178387697674136254367486143052595222773281178315415790384377977294665322314966510719719044408654990501572503107012812273078798046946117799631039669785864817498878817379288967658668655264003968250566587947213582105819168888725720054403345538256973092842320673533683066973958802982869534559520376960356095539871020637908235264538423812041023220862744354717407192392687870759803696695050887383865542235399082932672184351286114269970781396913562612341597323870020862360449569177424410779657416532475800994837481407466562066278189613823030251564012423335232577943355481645958656951463545667814977865428947029035327162203575013999005523030013144323465045000821795138145378710206469742794755822582854593739685841389985378190886640229269177742701592595505966855257916779430607948217135456632918569813461357931298734835968339618382916207943753298499022862248493284775424785385385957710046468626621677548000565279981520698113828953077535425115353012125625532590274026573192962376236596827367204518051092722906461837154857765034829262756505975282972294667862394109870430680291838553731993857952428827935699803065440399637210441756547659934380549826965557972025884125735339659661072506078605708990981793227742621768254639821015079534609292361489684429211548710201981167940725384733509224878751961502039427135609816041322355917922783045088866132211848676965278780882527526091662383635572403188771710604285055237017177249007387750945825801587694716772046817618414279234991059531731093580702045504713053325682601675721492478209782841339923085649012007688559255710680703417285133467847746422021686612747174268630453520229578484649350200599376011949607507051567287251559026857450198620555655207489018654874120355407169663926297739280217703000050979431133068678666818724365199636526889040991073095352489633980803891155133517572740403670295122038427901330228556551022476982182367086192190903876786719940878367633483791547174856370843944813023690786842237813837069420655573198475037343376762001939154161532771079630339498496260368733138891763512454427244924117680662477202986640590346320981590397260383238676440568655107180643449964734841491691117392779908641199417701466688707579980705081390728012074229314541493057545997379833172689786346209535646751417998950825270598087787284536771465800926123581917469788597394373609345301099096361606155806907004512303029898070563822819111281530266952322518327627283979373670681219550748451653940287863728420554464840249889508543362722271090458192669871972782677146646610461571567286540309210124596838431917527609635591528452870101023050533822942896495829200218304504895064620957763393966232309633916799681654702661659551066317764470207208087124978136043538934951191673082373221841051863333774249902605042146029954872698287019449484844471534961422018636015789807686701920574195061319261119151872175009360740056359867328017616393531120149984084464237982149365334074813023385150046316875140391275857545265693104287824844658251212345196730621437644670866701253433506610469262808332188021836927407607352110261302074796638903675144749844043455614066683725330184568064658684032474150187104459809230721648597553876575085311364171450053160822253291750886478013645670280699440417153482357591544973064803623753978299230820182547730868723574467704581057002190640381304488360650574571296708875822509825497392865874457065833954795265964050496750619946831174965893083046093564941165110030498975208687177983131927783647172078614345965720826707214145756379888169575697313092994257441334196402900813822980281734011186672001417300786594631184344978175966506276515667013660438364163755758982781117317270214269955628776042205200454695621874971360130164526575858201264141051014195452761939545006337914680348068935131569504874861029820176887084294427522280444729110417391468191979472177020837407940262916277998746967815350292281520782854687755858912735110295872189843569883193262818999786697865024547989915949591990039789245639886626305546839190713597887409811660988952297189797896168258363033113581696528861661575042599523742272735486898345572241464879499476189402889505488683710104117689027116061584450886220661669360981618262272256705541660726989956440825871620731604994204634419375082631999641794678252624840391380037300359178709690285337907865897411084507541245260763027563373695945316792359763585524303532996830243060640494505160726643616777025357410766074763476847452894625340973043638404550902747632336020624887869204738555674356948708798376154697773540293759885138334080923084358790958095420230752574359065193577779632702610521034312902159993834822089694030659685846484720865588159089636121410370072504406958754016078133735191586451046137121208156882502140527891626129820011806545238562598786497406130138332271574721903844885783163841200381780291700400352161070222644048104417132648775775821807398781793453774448227317529570139305173363957169581365243466616931994780128185284279807866418704111809055349243847709779702655958408515966547941709378556533893342800149459141089202543287102930540354652583585053603682747464627134839283511324599840219224272398261000139856782947064322229899738805188564476926663162659183615355738837668344909413216097698427354820389185695831786535457901102978420228558523373587155312280684352247745776249580079583659677715297066461781005159498257870334858570981965309566193373985189558376424773928206516265247224169134640899686628291622910753548465630811658713679745000441128108544154747517609895744073688179192376601428313139309447121197303730819414945652248040991276561647022020558794931925764136237503752928297950480920746972935793896758163831609436844275329622665423525252974391585227805765949987808401226321123034350697497164474654148466623493757200604870923445040308156756368635650909987210214582811817306963986812855658175325027240384836316951094776813191232703159690011978360032532927160689331203012600542418278420659345637314387890202387416471939195570115098084904334709869929571534288412377946896741598567876472455812552081969977827063885321553524668963096716514490148187185370382894066769235380020386744257804109193125999612030280152982520210213787812763300944886024993298346958632817775717827542014222728390505879800739927114190463697919618775038879537953440850420746221596491202015304919815149824227250512683111515486872076472351424256460780988574774081833980859636398778103266459627566692761027435631146703930340695101066738977346597176739143284665600308797683663814112715621533542261656252847008963886566755835968008732498593727089140683158026870776790876036737384347319637208746264056854121343271519612844135775726800518264306456775427990094985584175911351921736006616845378329167881162337621888184227463021467473496805322330284346669404615968734100477626904332298485110491696647696921435591691060421574888400627361300859055894792292280850551245363418157561739781577287632320678905316301305787924848243306333984173428023503032822902581075012780177231590857403236781068736955715390192314062753308846116342911487136340909857667542875125620704146339312061888354975161376316124130107730717985429403218386978568426354794117089218180079259554141523982554422668018161611564642627414948466017639198047807932426751957961102890156520848175822643041727874284014961652804984012304194882704767070331862640618275556294619599511526757424870441724324633565163291696088857058268703454758201845431635308816394364788644326735570318173848983354043706159295547447258978358302230750763274417705055973606367766215947405638825047069700903255525213919496269969784649917795724194974416668669958574105668088916798884029320221292190646818668928360874549387336346992287924426529784169010687964095432683922644823817245760702126455620996685279131261997283545136207395287195497801724196684489940252206686305490356421620004777839486360625244335745175111063237821226758044203395494314126621278370612314647716466571500264094346063546547379135959921565176179534097839450043800952087020685939891910866848706003572262178080510930506301318720677812555323834301060376078085311543513849557379508460000806337499765607644702007056255532161959798433031640085518584231272228290690621757286310243035108215298712393629764920880685364788891511790695669072759180637232684066651703207716460816388656541701314904570234674630297233280424973774298899950798667797613143466038458274032401050211193017723466542609326756090599835910549702443513379942863672814139628213380528099537265111947828712434764942783947221074905331507484207158196820371565252048308668028456276028904014036161276540946683899014384007966826996207053559473553366458943996811916180681332081098036530611662103672446189823742777414171190831902419446577253017406311385397298197466725746746302049291239673115804048903276372237761581807075928956333847582032119491856116722106976376466792905694169302547401695678427952218817240586504891105725499356825558827793857795112365143034158359417339701746129131963580604094531168162729244879927665806427079425966441298563574593632703708022604675827394129142495408839359495849753227307162815321530588764508812243703114115198150795065117306030411654791969793884310602092851186874113400010769008958208244799497283332410144997868135069554539782406702779654763922073489182806730280443523427395923093094900287934419695713522360499396677113797951600425401019560049694017792302508918612099579074513856802844947045030163647540262649761181256657024927197572996022664863783256073252207248108081545332481498693225792982832649478092079981273240218301063144383249120242053055243432806523892636470283404187744146612575035112475050727520658937188162531840303960625070110633914629897957448219352325186220611005694354616612928096274600568406219521109309035261342367562086153858993022967534544418303712442124748707832936276761321571808265228812976059895824332675995702826929362422367400100683039924531351375539619198878329026929941683828151301053509862878128764758896981084890669712662499643568950151881568240918036113208485401069278417561817847288305930110560500720023059849180243763309078244778512079373813782995068913286885621625875979591742796027707717451363315000349592936409839585503308733189373493248790264237367644765344953409251133428181990928704809028277171988796428339673529395047005180413284655387714268221947721895688948119589657044701726891153241164797098202116772336180076319945593511541548346019566839672487497271845797273255419873584469094499950462497561655457795386296052982875232472611478408578695230956909547424847447283966960824526088216542723813822681654508056110611639574418102782838508713248082305816612387127925405770457607392160673718937527058357366986898445817605794929588930137581306247984761075529085901153137191901917538555937783148617235371650747406634850478906300392911964253169808992767954715934865087613984891207760340612634546966855329571456484253760408472349470066560015366964141070322451269363025650838097514069012521379965049157732487777742473811526491419303138869091210731768128274222121948582362307912353862124518800546945899930457377403674490007494850854059013329382818190037755678332367417174817473810181509913887620661983625793838633202335705912372824197496960313375271447346667360621167717764687504086559960574574505130022172198862623570298813936525074845415127519545355664232127390065369793881305751440433301172927182107901449750798659247511371730073808116977740721329670369184738527942392119762379484024195180877118182012107093591115655740858212413604080429888516308652233087230291764716754212075298085300133863846854882240397263801167438280221852033706550137989446196338018587156020614365779943487706407231190942935737529618309850777349343262391671403901227411721918964618679228114137816595249394365671496014387979915552395616056355178235472979817667643055875777326027963853653224581806867556671525351895531192040399712444301662485175522834030487000147221175581163814147122204484293149240448386047792616845892200429033897247543045910519280658985969081575972506446848546935724717444885322253813289578027291313962653001277348882108248437223145766893165067590552600604941106778848466637269799522231381398135794939755121119950625024763292956121311512778411320721904408224869229578141878125368618242601137966365032298700552702604844003115440869866195280502496974537309519594557339267784381301738410050195528410146869052020326360421662813377037550563725788773471956658416054986417318957487865822403501071737317492144925992211769168760206095894148022027224586024894790825543398648156912578675795597606683146070340488973279784422228126301624527339595069367478692119563096053754195846112580257212194642018916738804560495338446421574250875866153633568130700360517653072668864686022337842242054948378616828172800982765250268897350301735912456648801350266028767968651353053961552019630592636694428667337713592515893652054639568360151106951480277053046337110666283971065223823217840391179755587929345370072482010997839494073747881575631914662494740335897720068068675184988708235807465198283586417109471209512600564586544574591503152077815477224675248794535490119830858974183098926165273300593634795853585225163017308533117031538501010121201619860450999077062735019351465735343439150039712589240897801902098093147011808014017861229513172432990570960627641067590349126303725784900293723094559686157074332108137930032319112382909402789107064471023182949108549921960097058577958079738899809814770058561633252259559055853786889404797856289031966675258179188458740101983446329991403022606580912452309086462031694280133881531578804136342280699223154653262670907566595585581812510099298369374128411692843818287603968914816037130034648711953799265343899288649609579458076503340265232133557007734651780374770314135127468377743863394962708725587143741170080984674763899148106045300495029368211180926893053844659313612535816449805968916636710285695702470102579677408547897193098121942314736411249578713022510584073492693700304096003078605381479061307836009500292261486728335184831043272166067728201050150123416458666517081383442579439540461602716031919580282476614676343893539548035106059901158842505908509883840731568347036174028007176802792693112402706505086084438107549044261715310012461292706140036986946945926956949795468902256967096973486559596931845796623405388137548653754185819059271908332826030436198685072191198970678680201075862112042230285686613483577781150574102093583485311059704462862680074032402147468664353059711868938170027958359406203080142788352056369857121213703894724530148729244716548575167221151770354403787026511343680560498541574428883705497296030210818989772363967690013983049877533280117802867713870080042865626015933081011942492121121512732107585894212136147425583970496797040852287853461789316683460167581819147048198582949815094116523431174446533466864744911927201914540020514992619031671761170331480854212394907585822321303039874987231015763496514902973648067891557517499309741114797647114928778783356721595124536404184736432250366403098084428823767813586111781202269933762868727198552897031096137186826633576146544423346581254358511326986183972993878588611888072558831185468749901629858861342144255470696628102825233202238621729968322335075189334639320873771389474972384130383770172177725910233677245042278334370889299357658725711060089490904050468030655561922875379013540552177070544463179233559297623466224869024688488521023853268582000587609660657015790278967140243667699191980019037149011339222124161784692731280186619825755867493941216667171502542180802982595747514373828840295732512892346304148031009589470254897897955237920013414450430555799116674651256199175490800137870109444534194236043004028522186866855543079454104794715825474241433887270914893700577261430636654038982341060293055969713015342011366306805472236155717464466946100426601051945588678185934840110442807134845649134749852759891390586948811768638892560298000494571661207313568190542637251113801772358188762134101816963212516499858930185010221132255149472389748266973902042186124673692535595032500855031018274755327593937432079927084513752057711978937711135526417166859692254379187197004074759122915340529875218866600337732270934659404817259550035221872071863855855841226281395149134691593119631213598369593847568705136230286817657712853968764213688358016174807758757990359692437469573972984916289879985720377291674121574341278386708260517770478573751453733981910179562344135204599595706062777758120329009741866254918889197018045219574756041365225029675680944583691550803868253269083168731262887416009109725453594802112529395617736370145909245212032206555156742277853163761163497700008823286202340131750316380416540416669134446942413397566354129066158516158754055354934929518334828775374557066593563436334667794098133905369775487884340150732925996201536842585866166248551363861521497077835234149401617600252272122656048656678755389639956385174022645505662305883961994089896297769264234788056307869383921975366188760923932352398934028317756872746477621390720284310348134382206441270161821298323799629491955211795469380920671658050592778627229425887956251545492253877692678561578349661789108933492408624886051880895109581831478085143715117624440144052078000836028545260926041074582403413926318102146327888581433116822381105100706839370513432445351959720330501997482817281946458776424242192698157944981988703784147470574077294565600932736873596940914759256876357041156280466118266222792583754998370685501610566347309577583204667228167830531337385473184457062668813624222759939265097418933754215443313668318087839016488083462913543009852411819928174335845205065618253835329182826498033414564705625382146391965614093844871406072167687210761475400654358207817696510027942437785125373472822609298984900941255101565439137969439640845167958348222912224116176226339313252816286958889863518345712712435752274916571239616202773923639982774554978371693243344588445666074509612881233304414232116097462194896257007381843640242507478239188142528170995463249435742503422651429819366232206858769692435006675280118093586714587699139872394730073515230804711379314363491789370293310190730852361780473886578471233379332307818099613318730393112062800844157607335722392188591669695619839547220052242838611561223084801401615902579024966562440260967658978627396976716875473023350479472347271754924457231066217306460915340318553860181167866593889922643138341038626801809805331824128118768706787096155094575938957923428067027567479681942741645021391551962063989771586888036601164059288021482115331412833454212489231906435164455959050761693413577919986336617238851871039372095354412741593011040666801785996181661547340116271287604579940925308998184615831013882948469676004924036492170562377771010189499404653838800736071131489914395158481820458705552451939664936110489705536894754721506814209013155155266724141236002770423046228110295532086132011270198994106024107089218730222168245871558765430203813683974370028561063391523875820772749857038571877031990184162451309567798108577397354704251660563245252961426043234110472455798895958965897396132954891470050951232278636631528669969804087270208402334313474522112733243756973823660946947816054127507350431673008051943015687691532502186547671191339862637711580867452916387835183322934079807043553625892074462967692578631912856383096845291033977706123901132316617934254849058410240725198912622752433643403441879189480650615550058874875290249955302059723988574877313337904119029219609455699760666743432748913408915473247078126520455154449958110551203719905015451907555995134923589811058094160442520475305412949295938266553583470406711157875511078603641883491977178910360458084043523760896691724501952524341010943734946199530999483501864318289772748355903899695040800146596213291232049723015607449765517023052617631905553316693503760326977124909368766870285940222578091854658327848160514839356008083729173059683195901782659756918685138369742447347605643069252550423964310831160115261854344508855383533649596622843411450219103086665812095948168467960555599081643379485720183469895331283637888759836581474075480494754509211211186297145532841758598267297449578114398715460933108674861075366765383710099815330833746259589648273970685021970928860640814601553639228480642685635569240539385748067957353679694089120502981985726776661949556092335318912445345564825611492801254693984922330741382427618068218562240537500242684082584029931167065647609022036950364835147565065785180415236498500680469353023330457999890413376241846081922461557169069976124989451377077104810404517519816764219357970204326906708205790847082505318884675251859214385394411942237745294000720505655534730836074925508780784092004749808789744782252689825525130671881608188805971828676290695935643123368038572811760937365445971547776966428264094456444224885580770413547581104716605980368397652023334025042531807964655217129715668605347505970821680100387675148287833625663014393553664169185923794150207878796511332343186459834183635382568743717876500723048187109642219294060407261885535249667865650193120449998903174532660946272078769736449484855002703189009858502550215406410149846911198284614706759864025950983315535847873781026713827343805327896291242583388543765205581239354356469505523819611679907735820487184123754557908986413918437877336203357249864727275361895896555071068076739949741793298437785714726300188673798658708489382908272454522394349555622575717562465710200535495555181488714020001084839497859445581104718449774079097272446375365953786226264195540075251442092422076313210529159767557707331207334464440619650542238901950421738284313460510396691098734522818332293034495679147873713309297085442555331539134977277860288533230046135009617894717236971474180619780320383031876346600467992405589325362607012799016053400761733884097398164931271495806725756817340719257916995573127755471423620681452882874117385561327369498098841410601813972695871294191260863741655162836546895129328724827428990762714784017506783958295667843360335671959407541399579811542748509233243499552959830039738907855537539250068678695533446395754505925335971618781411081316285022003830506103688088246822884875894129751900461094582933890442951645621937611579654090010971847601489722556259882558658840956031604995126847419541419259564470221845761740994634291761476041727478392273373335326734162620906202412449182955292578346128156668554071217092522734277787273414656002701479580061892525583432128051694927385448471850432018250052109725718504069858675738869869967539973400066815611979066201426637717747724767455207091804957052543174672725910446162812156831367919159567894433555600936534215438671580280588628195863933917132342463569142990278125331775052455260560310342178659787480988343027792848510659656426782126111729132878695388987272480351102510111676714309269321139754342109065710624728401178603076310575935567639750232389173528377228814166167714921122095113463212434779634093429563453636900495342034914243667956874025474958968227736585256859150317576140894486903153730413857253401936681589640134687108165690409909008997804717284108722649095931966727915599089818227838414065665193648433765949471617011709311127619629740556451229550182470643317687417167335659358677911779180284484282842832867962407802614776127371590077782052019702215591434372612822492978517904595551897559807802574243067245973741633971371939840145494675018099224262966557949469460563598728176910311707694242334021057084384903654460970398232529871355962198374808231819615856180477458167226180665910046905247174140116388555882624487940142447452524479099391125064988947755473726601074331496601787241610408425529587391273343035936553993325219028590888829368225207906935233863854457391063879832425927467473243861193637594513061276196689117769223689854557607274683975692042932542196278874781131350313052097821918907995494019604626790062911836608042420625831630831541651502313780691742070147303240524932848927154597944031795900776157132185272110841044907420305405425743484161456547405833818994070585939089302510584050405145762996655070367298715148152930856733142510611794404970531492985339573963990428139035627684648752314088080173493992871599048180186348335455842032473725877021055433265095237538513354664322082105295586948240289329787455862168063980787986181997778267941762478793005331954766181061154058628087908105894281587893000569580878380435530024112074038343067738541005464175308508319512903496752319367774644257285073778450336312520752535898492680349224327904639100153042823237530863955905693390314580742447985717047391938689003980659341299755850354159890940932709707138560102690651373481370204962185234914171334296443769218365121084811968336688144127246559209187476694189098122495459824332445303155546939472443412315411735478358905694910469302806156767902522173407136254185778263857367792019677265297179618287561098540592297976336786627658673028860892177748223360939373143009804444259643821163165366935866671759250872380874167453676845558053488822707523836696940590631863820299582782393398521838762536962279335275645656911485415375055583317640039246096447131044328036330620885620601100261623327199914666603259114516483616147440352832748671534319178504653481268621417326198752163305028779423073864938934946202581552765283309332671896787725993169892419155243992634476592014258556925108956500025700282632485108196383734006708444065470066927799374127351482721429831040829945566287869444667373842141019640391924728158356064443960704276321515069558212535987376533237392406274352864372099810469689501174832624250096409187552389005547286054965676891737752322883161584895387923680086303725053447771918585966285490685393061306508224353931081662821052999261462489782304692908549039535589910349414352651126175096495462576239710271870796724705834325501921281252742049803404533620907081064841576459593411629389268216868779598724113449900005509453649179612257499390295317515757892853234609673886560020522309840376106882633279819550508761865154710540412951368301834583830186573843334567820661690755204755064110439745018407327192699667876643345389152716747361998194707416919344073797852200383884569208653780203206070408807676938597674533060904456834209528208514622737883007439142995344770116583445550236193104923867568335954606744186377976647353845960417938884024840354488825460407274708580481723057710564598523415646513986771464756632723399862922154270749905763436959069741691625637325239845333306541527467821136375301158716645056215928164427388634838709477429803933707263871711639703080467746862512362604932340052730105320938753768510743887299726515831278252784997260843712725482671620229365655542920099026995969310131693865595902152777189044915471058065545144633945453615204674100155078079716839767828978358688088511147317699749086630684267109063667321099719895105465583832809162556748728329124015866273300490051551106252606093238953507331782729005892502427284013135413085032117441526776690927855099364080402464821202911320553614818776903719398041176766387885018322602328559493395282801722101288025459678628768722574179326586047235474660931938554576020549822738554448439376368739738301531853290632664800155296746753723411902395228667352859109854911828361926314608368071212855201192182710869262884419749145576289317801896823551220986112813232965769434416609012989282181273452775096698896907705357861239524644271260173091358903993701964833658588443326710235660091029398635153804682970030372979731566507897390744111336916933581492618275333787003399508895171542135622904979525741623459291101822140272640035345649093936894531912188536406620754083867756008459618970419938417288854791336927505954392242654695114632035641724502578762114737763354178886436412328978710523103960341258953110742528026150497431365567610980985731817408230698967308119125956236608121726912491139497594609593380711378395164708893935631573911944743870097606327274126719869406225927760146264603681999947237078579420543713756370083077050685919457305383129956947935896506501563123114901827872712251241242838903529732593178117647433229715067527457571043608334239905116617579232163485126251482560301322552667605129890440352224098187281587425264187752297941263880013383394124635646110668732487888160413081645530241962902968249282259639482746381561080577390950233414806814541514754384147272887504558634234885207748163519587154096176650642503118442627184962737389633383949887485509519820952976318922728084780501943272422625113609623867575560436008205608664724234122169477045738377371125472348962747023546114533044945598724282305997547837635493924950540616959049526662495342860455095158217238446678980562575413711374323710590963787215560208786207839198247172101043801373061168536680593217348937161792395207953930409355862365192787772611723169113447751188545404670847414189788088063242417938220197452719889506454489522898826392239360783524440568004399570158797113322724981107457151836440387297538997637726370152011563845963849202306063817875354488840718308120276226955398191657674242731566097888168005685425473515352765391227008466087038651802310477717014209151942426608034392129386108875262967366233642772676897267898393742619748597199781065253874878921963163375994739789233987870302103299334904306885142215183644961791495090826245989760278192438155808984747067893503672746837611479921108655350410361616482997283040781252411158433677004236852424287759106526583810043400481033431279297562323444868370082353696735760541375193135970656061547739930990850273911992650522052056000553094616370523298546719800251469229619315727805469727275356135813678446169105730635558410837272268928114093661613892740126235786055102313534023618254965282540088371085334320363025974427226825367773431641853721643202509057812858931510995369493419263202056376946410623806506868427888600771469675594376055277014016106007786680881453347144234716474750074308494958477891834933375002955678194047935165895092313912166311159882140703324060748866763090048057142751011947953043833614662116881102771178774665578465599614233921706527085691082629477298159988275959626356340682215227490991692106119718316353116054198754316875975355322521406726053145091054403123268727065363533691538633623462963009920351488352734719157830828417972418179406425448289504600449985827345010050747798111813634842847893878347758023963243718776301746161146048636117937599689526740821291864581878070417079526635518788873824416130252951843100543654794858770154366035021755415074101791469230119112613132348592854985416649698352801975520591972380171025772125578571992547991042948488097931745890913527991581555932816397270562172076688878041840528828209442514958479248652539406226353194568824133103660167539366932500885797240751920932190754752053587946561151135139812940744157222191065832113584380547118280454102044236896007871241449266809529892295026001106619450861389224097482449006163168693871253641100886954301885693462762927133077013568290446617892219579876315148410976126638181327378443203185298536423428146005031738858316903728519246279061664838405194597900616273876634322411693837481980042888334948223526800271639224782370347987368239027541628315707710449639535450277026891696203682692456261451171436321834452484379043146875719369656379711643573022771382083745583440785115459038223762277215917771004789778419197724394774956677128004190453180515374216710662302623486362600844411049541570738587371428160862285347626083231617521004225091644575055918084006734454304834511033326488096179684460041644778676889832187086892557428440369104160838578044630300128886801344207788918174556074203854670098419045090199037105900581159612530681849308924160897832784733107724438396436728338809773023600815408291133441990936853196429849003858924278282254990019742155478076524782376791609717080092547416940596346716657639614495173402754215567314456477959688072727879424863765812168185238202095498920811092577707853647268059415592233726322078605449248648101401940654210440551876026515920761194534852389279875050920284668055478212209717288953585569752553943154276472821602994495698383295265354306738715955102219840172681468639854531043007059614156445692931959481177156986229095506223866469818176282098310684218332881948692411290199476658518210265273597540441713232112927507979297352635891145128710807976095991086843678825737948353021932981265747880151258748028824733717423210101096708731439343664744924756160233310495849211445096619033164595900727703048000910344657743590470772734348222203610545420723045239999262470228945393605551964441552150873570137491694424223177682193419182124754603074799153074670558511346687644878254658211788838107226402985619173718919807965256105986557441743418560314597579535911748191031061308820354275873023904493091620835996408766987814101775261868245826888291165691137126725418013274523924851307060856197327916699420524923413405066623242136535993998112940167605249322390941504942932047236191317493543098126680005649320963114230702266837138363125387638199974607723716921641245191222946421067443644436128014923372584590530233551810547668789215235508828192725414695352675873681844901283405792263191088170127028851485508560253714442001458405726950288633304460140808930968391624095672285836351842448154021474350327330411170675901217801387546007348525805630558880152488603616063207236675214528853533557581934890332890973187711654227365452539750432927149193896677172698637952377176273653821384364977979148626321744727663350764320567908046199281573144859974370464928874924190967292076397368442527754221603001646003406637582817183098297547519126351385771251518112855780308222835261472078420291874352936138011048771418266959191998698284457057538866208040995721459318165804538334281454972467763084939968095698053396665165339251887272769189790820971346705489162914715675995747191045704657168568503159245642091381967525704179450639772616046525599378881371277018684852394032514545684555900201699952637956263928141021384233385454664290689517562794771004911460341064503631759971863923365507138635349405145190032913912258636130300365495060250159137877165921692871407557839084360830084108067506288383929513718722816277243270928423786376512359664729470708021488322383306706659983107911719868755930099210818364252137814416192460138319120554724133658372364398169567305604289768322107598165896434736179504923359419154376091377365311450954037640740231985149847181367124938178773822821343084457233346379588338738549258299099940715694593118753483293270063231072040238801083487018216290883265636411649806609907682121360533865899389682245703186334697214519163038099604674266808824667473967759407664505816008245701411021004468859848366510101718392380331543475918144006493044416989804393755905255788621612624141132341791341908394185475618897293688320324262197030275097215094094250959013948362078623443190570207662027789608873006069869476875142431677762591036334995869554089554781832764408333488739158907093721685859360720522361544073144440539985760226114929956337177494702547030356060497191804408995110996831295577956046766512657637866702705733402477414380021068362470152497859458130568651449612232791296291274772402621244926418332215210564566088548005380114982793021214379009895223402944664307588157253433398107339247557744307799929438394057234126726181983938611668588527601296099081977640471017156381169474844739046669008132052359160719752956866059918437373166433323441842409606347410552734270509649544269591537456655831035307542114344862833192420666498755408044123128545617749607915744082134336169174745827262396848490937514217593625480833588897236396045081417262096974446065388516148054821930979950036132064207965874162918949348801700175201672102808757455825549212932120479422197785613738709409144557358414682393054657904617290832920798108376652440278974784913275862178750913365277725960484040445331623521117997789683932806914371079591075251172361197682420501538812513193611896372928390017416073967790124001641344915983266475119511430713295032628636621178474654285869817547686129229841346712543423882279461321534191158613982410603173851968401969049880474069845498382133751228188599395152032663756345070459575095983025359752357587750662230232100929623920637512156038770108711034613706473270786083225507454860723476243232498528818997889671086691528707209472535195670459197710705816032213062226940365291965499161039264748091769143915250012405553305612783467790714758479406530654955987106875584524376729790028319798385448519004919716106599335359841228697336650128736617860164536900703134746340474771326086884938960506502670364963012052198237919917902768727707672559160582746761879762890664536027187830009864141506441347311684731438820175224750909212322059700434793242223386788719188440328196335551647090361445914478338040655688189557606696697011710896596237637825422462811092305209065022620327621029789104665153846689021721969484736566128193695776175980398430488408549050140913666752119826274118795372597919973234746468011876226846120805402800376740080369409430448082459706487436096302562889660212472819605669567161038669154477516429538352508300237604161785995428764890175353765473995172647403467748888289285465056136735268009150270120434184083551330470331816882528480020591822756498203384656415869956673808686869268952438668721402594924291834996144592036840223434014454431291874932478987243888921126802381118243138457243325651130378435107777091494333347070746768569593630408959096775772992294068390606355101994554177518891401765309737752070600171882066361044746461295992181003892798855121295875019489896019733640106036851794621951100669438615545152040441403523103112914826591558362209337069837872203487925399416985729288452544782881384694488507370533564761208009406796294796644812023656600574626727573605993359961479895574540190671253070777565962237880334680011726875208736314685562829115281629600870080943844148513759583141136171937376483649159911567598760857008693697283414628921523081949848281692662362341543810923914917077949248143941931700352925090110401909428572501201214000923980811019874385457296256884232030651026660485020244019057343602616759126151160665500492651004601069352882793925606053544553542964999113407284992494906693911142529009279472092307434416503587511999236859120729245702217011292211386435161260886879202625662985892650504556524745166306074343667109991449783397617276063260683974578023395783016459551766467126080288417231587573026971599119124409943390596294982187006864369875918866984496257706872586992464150135787634011689134838775923074422445109072854134640736212532336477191983733945949932933602793225865785837576190931647022216748949718322539616928829686122468441536361443351127657592844040107506914908638329288523020918832055414511060654827764344106261756986917918602172637411051842420518776013890613775043167753306895178997800103546488278144277706632918888567595838104709604997396502011720148557181362380282732230411436087071260703162931289820339595225811717451733884832953766092225122210964402572163817813941477489193173927026682864617044534068679196097550285203005614747471409215282573435116385193294485282419418808106537163462142107038687404387482472040181608008566179763105220165261686950409165386396757743864144586263327486041469114897271566800833819398312126703394824681130710952158216632317304810325983908950591464213241635013461022529907435330334790880707655094149366551949619842182170143568220661604862121985247208119739146569497352388453637243557402595900115632982696737464759696791628287939119069574395954894029583941109349037096609011754242535864397769368393700545957823991160227145341187613900794288417881986833435070668156410698116239177963538042040358583346958252061232651724295618271974679624114313017949444954212096313886943337483917877694426883246080237541727745046286977278154420214511611069384113091827633701059021462456707252365222020444222991593578253373560872214466931046927067693713250321237707508524222434866759318877531269220174809514083087255593282653289734605743686707985536575251900009878513563338791225846675810639079177920696061324690489422942692828950327224834280431730038273823913558529858955778454678833685142627433528997292037821700533225283973793948238699718518303619763788350811782283363026235284873738868400570106825547134204269060735801447577046565608967001059366301684160924896823579496336369691463623635947092124578979040549505207578206651372429226700249552846851897489616598098286896739611766020921524603423748482120116985469643996910000398134344002208559696157122522698335593098436818303747969451097997170303665545157989018553405948963166670569753396034823892322824542289399636569174709688259852832497554014869801377662479402327205216750803372993396206871130527609886701136274892735238120417409336972384323109638719609004167513740407405881733520222155415817643330894846947778298617234372828466355995569674895921038613490255461200760443065779890201256813385298708414149016119238975470271298984339853701756534061697053120412091518822249516085312047738847277002907175856147349303071079562767411248456986017476034556667602474728017038701942653634167082271311599281978700019525800412847917918375573611274489149043660442025056791663851077498636020628668389860873043898054311428745450444942089437111794572932095713361863175839076813934628570637258123182288208340771502316348732479922253186109218542026287482995671028751621127658789588005578317900744764805409134315691397945695670815567292346617444785876646832835998207840453427907149760581284670764008647684204935183450932648597589334839153588331992069694734774639922713659772442035644758681698407805894744019393885408398852973225212504368507236463936969699169606982729553897913140630108365799199458812211670013385588306943382221705472244317580008589126722342927188564316943698940415708795926317049458972207484507829004355699599039174631279705167553453181774282605172160028763367257811782925423634046146041507247685962413410838104916786224206480697929466632443751115634686131587520458447219556784435842550310680731735647121434767708870288827102927113620607170575081268196261178279638979845546759389607180448856323556374382436055833354439556322103430355956934053874480669743617119126935779927052726547167446890363305515255281566663380837848246759243362449785468212683840355118571300495490671982338655381096373165378304381684692335994144884423157494758224919108193195498828358433104506866066999871894313043827038047302431190035917870797256539675147603735935554222368492425451763345034386151971134619266703938437152543819672792247980218987299242016921200670290457752991606554769904574746144956483311196231120728470254481642768603287918819088225920172863027199406511496251653303159647205816643504449322449399446933288616802736330916927777032891466550457150416597733169487776700152093392296163989498153297541788629880709332314861053535424728878152162112969946245262389740307221254024086890522988568108094364133484614282509441198632071446390863163619489892740395290997584703571747677892560657218936868322815692229967597622136344146627587719069162370787543562220482505873861838577854454904180386145602587537773736445429607844205166056509076274948456462909625232235937541110148156045702459410960150530235800446058272444152983979547090233741669346090270614717103762779773036315137946711435408801179321761700812995413255476143037453297935949890241129414172319200612198583599000445265952008961773083542065892126309636467145078380648545291639422148938265335022211284391045022090856633951616737141089326154251845211311788487911846931625792273809810784081431113168582711088939995702267820363881189807253081744283979699647074849080520509011307845638740268381275548114826019988935471211876634578669901413502230312632820175955763733933416942543771852637238054665897577234874352565405575612384537253629837045623356549520755274557093220165955002371612064344756613658783070945221889772874581043122284438114583675785107845309916310456488256142526512365784397535186115824033822537062728496124435106799794735326794488710924284224052271688277325489700409633620351634808579791627230466221150731308138150480281050998583839081657401511030715659543576599382837028871865051407169438360360234104494479501110331829517609681766336869389149805208694845252932464879933689269388467127602563059648441717359492287809709828407539080864094004364150914786987506467818030180666875377203440891972111441260803137345497284408866802713132109668551018311510444593871480808454552756501564321048266895930862517025756401885116109598797350568666937020594960086294237967030488118690884601618461291224482045227074792389316634468277870136589991172870717594459451011163940031205471911137475895245233208907271048112427755711655355600576093992523647690875659347503750953746501262049117477219422007843396966140803586603797807691989623275120784788681537302225997476291396393106367547873705630964768231635231069791743959230527917145943723523300446596140615539512432173710640248172099811030533233273191346992458498337445899909795755181298595708501840220502174871886855622292946700232187409771516941213971348590029332370504467458451094915310415702977613745293506647987042940740697317493898543059387483299940696641804946018059584694506462228077477956999124588156176838915127530949308766010965190119143843203719647031197841197868919395503480052005232574835571877071140675796371980666326569839904129779532554347633188572252522944569902764702284271050995296008505007465208977945414896827616562159535691691658876477792222849092270941731728689205086861999062838201095404607873788932333865780610634804235013998913935850134187645891274897971279094247705441351913675984955185704263854183920937391468110588034787309953330009711284638745819925774987232064770232121134201053639583881591129819371333659837350693206823137178352357390652749687106536387699028828753611450682863816008396206147931047102509791108507557188834257134303258469506916540048092241274637827208446750020705177261998761529479226592913623252858676744397116133774872350934652325965558395177122171962862454526911931036451790135156509731178276114319489818336430076266361108012152188536071078200697949921919545105463780757390734485044464469960870379934550950281879599407304081903597711603271369499554990327364177673749757401903065762890990038673876533960570024582495081228863838205357252846899887888236126646994739553015469101378124121995514776565693885461370541246942215005353022972260535858830472239739118962312951455373744011979817259823921984678862418655173191397574564815634151817399236280435148089852980888590633105187109570896716243950376840122889555896228140055357150811323898562146166304120065945000668739945485651955210074675453137464998737962704677827939929591148125992126658736337380338488200340033014748687097262423640312573071023918614932798117220739717443078760164287072415469875629483112037992692518800262708942512013780643335078481473421818407693483820491568915621885127821373741798719247728499013481195735778397810800612296233715317857134769991471365593754271523350115066669239037283298923099894279919325233125519685206527141124725427776839063192970946501691642591090340922437683948565514551652879757402013639415000431396729491845546579794148780108005053150210373964934137473716577652296749871521445694962930062239289902644964784049919200292394418971763576149824461875815286186173511098158974092440455802500790271688059130456463831725500304926241508022546824017059715801939069995325105185656342474414291509137961597794110037521877673254701196151978025133428299120137995337931893379959547470666728294527188037713440970437898671775723632064281867681829382307199245120296206150971148192017553328210761148438316554130315034027719822407990940235937604606087966902449410245883849071717258796761722269275904747100496588673600785363301627100843608388006214668270529574630347867425120670855235878985655337570422488210833366626789094408637624540366275000423367092472091054590433621325719775881222305364808313377243063074497202222420759783229985360197991016195286452630011540171310546787367621573729116304234321973534730830365116876674517597067943738469108161732006134128584570011193224243531728804213628603976099964827750770546946271002063766274962674195039307966339781827606890594388686391796460493105399430270125022584653731926456407362076849155738508958613283176503778158628312960384806256446232136973125849089756157280620239217141421367461540051461441482644711757884870085861759577751143510809274474863540834917142012103090105022488943617053740473881579504862918607378692478230604381720528382702913117866602517195230349343052725241152197557604001289355041961274702050995192846080272932849987128639341534041009694731891843590092546956390286607705717418045422374270143447500697904417347105407023078065288041082887778293408228641413535681235512240330546899222039692861807164722406659175085773386777813696711535556907030660359289210493598902233156763918202509657728114838473526829379242753616975228708391839615905761719132757996162936088295941497248392299549309831565041476802250705744494154224280398261484998671389881242680312422833156803819377567407294649997802461176127004296324038894472277655599066210826454256136222946882184380094378980875493488864978197530880684996640274380148129123482668364504352646619488720762367552218142031454127696962308423994146695285181170348414895073082525230834632482702417700519341755788812100070965890585541452906118898923386596164934112335086001361311606494543477895171244701088824387348527556584820213236650476399560714298400925718970975418660180779464475924833282100687460228403397136843211979126566668960404081763216540067843252550945954425346466527756274659186035069086308985158790194735362504430061591863751987573750953606601427248348333353832563804522602014519208589118498837282736519072866830346078515203327521399583801208366994081116693104438026933907342641583194661809420378014856533333879309943363133491202794910612424914002294933118635208792208981467980704122695266370903811154592266032982431901817671719035016481766383407587672707305722993076650800284378032297191172540739488109172732171203959517138871730104122396444578173782138588990204525909744041341186994432076869842357756106073465486737016995742231818609035950187227331224222538745436324158929393165939368703425470707869103566975527727686011745392503877795839005080141922415779841992375554236201485868615951153574884523168395130017373080470735845641316935995109035882076489411213923638828060710237039162753473935145403221355886898611802946280036181065991917226940314939383171138476999583400871529997853199069962284680709082613370484141864305390686256676235649462802252609289990687236378512000078725466564730517184738960478504320105430705963632965633304435643163408711528599803408274551780052313694766391739205843816983931998695619517935371071307264911192426784884416689327333801090597940715967741248680630696548729918844802714900625925230473506220096681272086994256549289379088115364536381363214180068963757088269949620295453242778871207029412779792197437799514465798009891675084328278268789836481742721827555045809945129619371045895882230199573641394111006956014216101933176780310878608760874627960767649270613296597606129021032818480485016018129149309433107080614662447772471107434954642899317086910905093447108269200910950112096846970981072575480981629680986642758690584317056118930451418268625024662567234967944155478707512045318686905577074163297876383575675693037177528488954940808493434926717537516550581831302056914133238811502284540554029526044157266061632464528552580244272671429785909426663935210569521658099850360250349315063337486091774142725812492307678240953987943273001899176663940305816078306839417684190046721053514293550895314700463441843254500698156713014229839016404398348398476202646017605297432532206142119163659518660660674756732832529567904708963234756192885366399880859333208784610252281180280161168731441005047809009639220159084408261511735670895460345006865220545587534246817905016679581975991164546537769101197297761217352089955306513191493027612225901355619795774300895774999175407582094390215408885953415912856868747905869563316562499768213781678719598037651773780469937736205210818945867138943238235546672028735352860822349634032496476550086380557363539118734071120820710284053564647134547669602806727279666137952390532357013282241913820639132279043309137348968350842900671386845027666254204878546257941123524448111698185287109869591416943570523921343923313369944787810404505100611017488052029373136856579412144905228266787404963950488649879551943828036331208354271162085451515067945021817039685125565041880660386686685108533893402922066250310769633156198841087260497959480188426831362762074004822664174136536937724986160843517696023216268480695440408211579446175335351895660910132132995847328187115469600567602578212163757838481863247958380446598662302338045720118665761768032643555797939829986853305069057616200028882040820121411591661567203330346336356859409102521824441684225663763461867721450742362015221966311648959242335258537840615184533212951881287155699681389199450752250495471594495141333382860154206305235415356125659867251989236087246959605033871331935416704709152286540553590616189849504008867661575570647555500184081984132143227397778356835047601811302281007203179428068914708964090606817019506222490673906966478905241304295360875307568452346159370097712407981036747320498740069135476688063140237475615752073691608137945983472010605913159199288555547127175578184557458291571400922271370633176297145474019662589192427514357275241654037656780567288027304400976895830965114375094371582301743819189949207303665088668917466952484093410205464777685270977591610502490874931232035368551267745812187524752795613393448155112758271581416886596112082762919056027357928061873669749657844485937627207110932523133716944189442576768453608781947408707551647002559884255097988954436195524344447636163010739532346735827043925384060561100058872880896198907854561617954923708206977717797591491723437465485072402296511892725828852344579567356581216551723423846203098421582909817099655053349300917327034577575629304346360518415087764539735764254155154016744875878855298586867934727174268968337925999038334746082685025670438769134423971518665421379438918208471141571439609660422709476301037912610159158991719769170876947073181947209418098221607796339089850398117188012047132696482860907781811999036436393423318963294508082155516993672351871865656414351181759693079938957575459694585910480396893042225974602238187686737412309640910908795056304799441093717461878997834228875930322177681665602267643451831216923033665133500386301438989430552940827043113039706776433649580289816899845574416931468569254581233024790395749831781721589428333836208831429302659431922156244530755075035440492133106075754845745697036657749452145690779053581569591963991162539639944598004047175296811320166007597389004087631137135648406118092926118222175886427669019102894323776066557985952999873966820561450644784718282994011151405379378236927464327810485764734396785622285427495825036085926510303521438670480590005837914849301809770830793561252022907465831331796831953720837221664341039096748831147359244228124773348898336691389720411768662575409082270480948803387296682234155352539963914080813704778933156736179572213213025027336593840356158637890026784789263622208181268786441678524878421742277273193910916680019354815460191713667988648587828922087417726230764197385785105287999233588368763079731949319068243088063223368763067709561017084649504922352065520164670301295833334030429892224825643351024666672894580606747616464597592234741172733066603464851132731351710883370564961942121695210435258528400177278843889914254407429825088914632802434801354653663351650756938414675922938494932533539106963593271707464992733567299802762566999390461451946844151816507123038196377644687839600203840778440193139034422257778882596364775221192032707500315256776845780493784192895260661213131965023002712592664393040380431249968993085234879115087587243803752061791033348771494940256899596292604639801266647861025401902551444673187972532096627043518329531896076077456704432038576107067898946846497965408538081226429208950149498536908351014972385991638149825637985188848286721567051395028421224451420081700155881666014761245967981259628953542989677308399694983332522334311401166082812197374308750736673977492197901709777040312270952343593675854484559249669060665465499328223481833303737837831613296933380204958945502205072712682077849192528118197768286617204601149967504062603912790674280284110193099600660336180903632552150400459369707710790801667813846052599434381559079479166068464456861764601843344348019659869232048501555922442056580568033656858659579527816901320853980955075945176663239692923480013718099234476443597821267018716403677328448375676128833867068988539109200351623757145188812347458129877390841155671338831529397922061108576638574367119221660136342574959158147289225148770060481185146049528069974393354042716314535459634232485951296230820422277277089638127637166047128508621819255850238718639738750933513154631197743537392981616094249454607599978003082928281213033424696277443905463934815501732429161362629063783391539909496614022357061080517546049878789250126308600764584589551820455895038347234883793926193333289310409886738119992976622182069959673680303132725796079520565342864499666121944014928210102648693116937355571588004086623371071205872710769875108820851588459874897424041987900906561722026643178020766051375742900624869860320068524741871596084174916083419083447205411918500889967657837873399872525969322588930824348827104645806042942427909783428317196959444037153408372973440528378555657598520324745237276655089741628133639443658687755509556293117561336214558645928826926666411628964928729618412891275610689480728313578365761308191305939438828764126924117914920291518007284380986406619456391843995305880453808359305613641168458760677600284482828892385361649352135487996761641711208762379642472915423284905335281077444170547754965175900411767432392409079325437402676812687065562884970668249087798748240557257359132060182596151109189520928085856047652863491238977457548507792181393628414000493188499490997018486547130894444629074962932305173764289321181558497273423828564318722451393038189198703634847662907609615010907775081601477896384479483815087518089194044401284792679008164823033930048844748050744381394051746909678846875507957718837989317916940424716700221959213569749727925745366307480733890966079818911127437256190530777441786777756061177156081244669412035407614527324920184951123564779207917627524721417791884099834084510844499945229991142464804708699601111905261349929217225326220500698149797986398382231116748995924762378266556557911009674391664250895742737998156685706363623437727577851865939219638000738117967511563039860071197019862932702012363257305618872916879428488175722513443772517662473240354518086094185273074436340967769986819177031493294799682060396803523163407971967297845571203289743355278216719628251930130700897230577384708523028645022823792903136723509909908278603726695013660589356300562934888585723140243055450938460920412625821683627092368749370094434332130789466841177072741225461441832874187544524738357195413586106653272218068574442185131826485000215928522517522051252428355313328519999498235455751434053159819869383229907108514129109096227505327347084250230958059174515629575439999366564855718473287526760464244953787094827689806816500543519006818046601973210648758088517780591416992344583647631344907945650870814450034420797275236967035014470910369452601426872027899498609906655976555248489422431841029794020456786525997961809830131538627996032712524006185594532395347972486626896368376293387345747756991838065911370029570783887592006065292094101426052138458527233762415946308682864429254255725277370987043697595919340976763589898848981700909503168080675147269610023810566427996136509243345157250699840306994965797067890421535620414325785763402766010944473946620101281937812841112823204250543046350200546955859275305607268791167985466149552250638605847638136154385583525624809362941453299466338354117888368344780956226555247895136546246033142821763401677097298338020362483958829665097108358601174927966499449843504557171064158147978293049153707759550253845667427231153595946950908639368715579644226298581389031163369591102915756348155347479157901332536536122693913685957158366942020982386606226283043775326646950939341834515018589932231723421311347957244831405599644262480957894863012428978765113840541619754399437381785458032366319236598774980416580479346007439905441565210039872832483083601777023605261261210088240728732270357578393948310758645057271446800441399816715642215340810893240828047841027549227654607563576087938308856113775791905647719045250547301844938045290828402176619127397458854047098734719466053802014645558686453259909929829398836393168722477008504923730014278433883596543099252863059649007165541148000124443981563293828055738362106201852121858463057265013687626230869992038573285429253232729994214880782220516198866583174324447465806085259266116463145570379519226504083361691902753944941302562813556141576210920133597078082416099134857472900280652954653623114360490012135220732496530779224975897790490880025984960973056037153446853044112732006121070114354397299912739835405450268311197775432171607394683167159406570906592617038556855527939241362990644545364445073180218464963432648898071149078382068235235798809682833737145134098960613364096195939135065193220386316480889091295960171238273672140158316971595597214650992307582763176645712058540043537443992750226230584695603540333923233401320244489630090294501223128119100018315099355834035057795820085496506390674042510425330494429079702532095456790298266971422649456802622882729693637557763032649434131466528114202806815937353688668758976396645279613889484882501053023830938384371207669946411833483937243767479240270897420974776408326973613134410090847662612332581519418940091005381617684224615359229575780816343907412401663385167597610630961340150765776003067890426111831879242549952445970398755017211464334271073475510047875307757846222918384841827546031219396882931579226908688974925824629073931424037777814151738612998758312047684180965868442450547487777291434879973234507456076973837529952355049080959234731480309107068650976272069407668170148701293125856398531717287469676109566543223241707864757240487497727900852855190679112038657946705585390344883181524982878028438280933859654470157355271007827366956770190415230445892517185849165130192894375283847265163456251797148147104511648951598436738887170957176697334865590808771518497426462623916678641493822596752576855108216146223417560960800672173706537368838793682162802751167242335801196167624652095786018246473871256502857540399052338548432499565873136310746415238830893269195508639051157463437956928712962641071081330500933524150618201885898351071725703525016831330264633435170335634382086938542874831879774458042269960200031827885141649579042342728047340059575553045914142050491823478052491474574620413049426046909876153307678496802231232577909736792316749796674142017721240338241714201721974216634210115529224360420074070807959457803795698725159412116219734028515210057523070511673696921061006601821909595518093769545815186600338091573434724229742445107818635041074482720528966029937868027952098638654851097041535374808695041098023220855953368135689188722390752324784557358827040509252943396820625419456791456848512283253025806228581005565042664282887714670410661016836668099922242732613938657490479280523817381178473691522597076008781226026188106460947081813959369565688062675571480964338253170826697913906850719184427478688674152182155761512512732103804709875391472083736549718450769777789761885603394801371261138109194010162234130180376994422585787298451408743492598671443287485165356043421637481017538809560311055856998274440479043160061090814054424704411539344246178716271949685734680768360626976329078106756657375382426078030169309366372712744083134424067935508949043234431676586077919229500966627954801128933492951332675724887120533123584015763562832130044311757160789110473566845711930316685411165020351316436353195711121107773012810088468929713894536337263506288369420895613849574112409136974793894349239652794173341953393363504330865898023483932475287515010383075382717000780698262876273519542441307903326394572901587500736932268098139047203921569048824777253559785627573216803572042026689574611037173331990565897371286011772002447515158574412896406862718420417780379927711182880298165363831097667813973289371807404109978541987995326056182305259726577429563860206838876158057125716367464143169658384857777726194581752901489451872292968482309095954592488096667261685786778221194186571553571213478230634859294135211453295638211359962092524734234249644547121549848163613594644508260248844840185887075320346592029713596538393733718551145500179170953512007001974322559602964807998665769172171946756234240564261545534837120642419769134505804874863008451895567433569357460706309612822992689273920825386118139567533015036624099702379315058145731069024089811654739712475076694374096414118849217582820096184109208533453266404120417030998574685799988082017162155241199308149875886884017086282964808442580485233044130688204537725591216504845557447849027751822294980505558685153205988827268228563051633148264516602765769105357101539554131905604206262827846868794509548454326513448268156915225947193062763510526316446304559035955430146331343491337025973559285600058569779355621048624250190962464273450492636243075261596654929792776026066476572991611661211758123394083662557503993539124923217778160727116985618825605089584287629185691993891413068043693738864982307458151197586854524728456129113091710437158660862439914342277192429692365204499892761203322610320864372836990895844988230248604322932167136174353244355565450299980106409304648148430520118126158943475728510092336879631343363414578470560840071639838574070136191095643227773748820444468026385317491048043010531054604630087166514743939691114815788153157363991061676274953092808385176509574518493517646288566374311097200586176343402686519807633826178669790632539465394944708752723422965734228401473708383982258042982734564036219680457955484227857622684112971863710392912414073173847018284361280804238689410087957118329685021159564502787701860929849247088834921788069083563264991233361552335046878567153317510112007723939733473315663455548022994354618847905302288012231093729070498634468826399600585436378175110496162935584434400781139026782239160717581688134109408056116822997062174754415636259272935648143178728561611070746622788250245970271917524963963475905218826192814034176190036275998726119341484527742386259183357201198419469759505746822786274196640596067022138945945308266422060434499824970888129208666707379379492342355213153493065778996638392919209657312377196202436863587009317307701328000671733113562051975287055273586741794391456028974664729055758064697819664539802971267207682766449607972136793114729568953010793335427601119823354506725871544354662985904983170452070713673149534945936095795132303546630114677938017739153179622272522766347451222268359355420812653221292179081747369130829092991405229213047680909161101545981101779030844613504805840064097895798979823402879014478649393608431589997636352281021905648379864882077134687272892937291127090516973034665876720647004118996894701634763806227184896016049345549987473681762047415627595403652033683616189983182413124056440475300265353602908231872106417581399213299265858945622685576762380082849525668142176246469494361275513982079350258741806646575810508901714471518218328003180382030801828843144006024238267746233911100839755141741601385920577659830515342111666352442446917899715003251375917297664551863198446992191408170299138171222037921893924815005368054146098141706406513934536146119165475495075879188713863387258372024131244721435751736308931615441777331820479748238789136052732979039831303410628785084893324194177448032282830653769175777297191280180123736870435717415884012883583366915401405753133929323275017938248736381292677851232926647565053687266678614832605031263236831716762525988925254340667213852999575561518265037907225975375013924122940552403280495700355817274360081950334488106362337057929820108482210541874122918313358854569454727348992269259051267094434800983525669525376550603332585343489223454577357527118232166252348349636681615298907419753329411963966928507859250889495758232072692804686591395893724178141251291643903583000978137503666301817931862625227762974095641879954701928762839852798232435577443873709112166057234290512388538254042990825921834929786043545916256108022589914708516869454874771637865857234294351553860409901907922743171757189056396641183470502364185484639383969962836348324991518849430657715335951590967438996207205600263153200687742976